Q&A with AppDynamics on Joining the Node.js Foundation
Q: In your own words, tell us a little bit more about what AppDynamics does?
AppDynamics monitors software performance. Technically speaking, we have agents that you install into your various runtimes, such as Node.js and V8, JVM, PHP, or even your database or mobile app. These agents then all speak to a central controller where all the magic happens in piecing together the performance metrics of your software ecosystem. AppDynamics monitors some of the largest software deployments in the world and helps ensure their optimal performance. With the help of our platform, consumers can book a hotel with no slowdown in page load, or transfer money to their loved ones without interruption, or stream their favorite shows without experiencing annoying buffering times.
Q: Why did you join the Node.js Foundation? How does that align with AppDynamics’ objectives/common goal?
Early in our growth phase, we invested heavily in our Node.js monitoring solution. We found a significant portion of our customers were adopting Node.js, and so we made a decision to add an agent to our core APM product line. So naturally, you can imagine how a successful future and longevity of the project is aligned with our interests as well as our customers.
We are proud to employ contributors to the Node.js project itself, including Dmitry Melikyan, who was the founder of the Nodetime project and joined us post-acquisition. We were especially excited to hear of the convergence of the io.js and Node.js project with the new foundation taking over as stewards of the project. Immediately, we began researching ways in which we could contribute to help and became members of the foundation.
Q: In your opinion, what are some of the biggest positives for Node.js technology since it came under the Node.js Foundation?
The technical achievements are something we are excited about, including the advancements to the platform by upgrading the V8 engine and bringing us out-of-the-box support for ES6. Features aside, we are happy that the project has been entrusted to such a reputable organization as the Linux Foundation. This new governance model, combined with the resources of the Linux Foundation, gives Node.js an easy fight to excel at what it does best.
Q: What are some trends that you see with developers that are using Node.js?
The advantage of working with so many enterprise customers is that we gain insight into best practices and patterns of development for large scale deployments. We think it is fair to say that Node.js is adopted across the web primarily for high-traffic, front-end web layers and APIs interfacing with various devices. As companies face the challenge of scaling for more traffic, they are decoupling their existing architecture into multiple service layers internally. Whether fitting Node.js into their existing SOA or leveraging the new Microservices architecture pattern, Node.js has found a home in extremely distributed environments.
Of course, the backend systems are still a mix of various technologies fitted for their specific purposes, including Java, .NET, queue & messaging servers, or even native applications trying to maximize computational speed. Another interesting trend we are beginning to notice is the adoption of Node.js in drone and IoT ecosystems, which spells success for the longevity of the Node.js project as it becomes more prevalent in emerging markets and technologies.
Q: You have special tooling for Node.js, can you tell us a little bit about that, what it does, how much it has grown?
Our Node.js agent is part of our core APM offering. From a high-level, customers install our agent and monitor the performance of their application. The agent captures performance metrics and reports them to the AppDynamics controller including latency to third party APIs, database bottlenecks, network and disk I/O, and the myriad of other KPIs that can affect the performance of your application.
Our agent includes proprietary native code that instruments the V8 engine. We recently released some tooling around diagnosing memory leaks. Specifically, we can track object instances in memory using our OIT feature. In 4.2, we released our patent-pending Allocation Snapshots feature which provides a call graph with memory usage displayed by the method. All of these features are the product of the past few years of research and development.