Commercial vs open source for app monitoring
|Richard Harris in Analytics Wednesday, January 2, 2019|
In a conversation with Stela Udovicic, we chat about the importance of performing analytics early in an application's development cycle, as well as the pros and cons in choosing commercial or open source monitoring techniques within your cloud-native applications.
In 2019 you might already be asking yourself, "Should we go with open source or commercial monitoring for our growing cloud application?” This question is as old as open source software itself, but with the rapid growth of cloud-native applications (software that utilizes services and infrastructure provided by cloud providers like Amazon EC2, Azure, IBM, VMWare, etc), it's becoming more critical than ever - especially because not all monitoring suites can cover every potential break in cloud native apps.
When building a SaaS product with a tight budget from the engineering team, turning to an open source monitoring tool such as InfluxData's TICK Stack, Zabbix, or Graphite deployed in-house may look like a great option. Though, with scale for user growth, the decision to turn to open source tools could negatively impact everyone in the chain for any number of reasons.
We spoke with Stela Udovicic, Senior Director, Product Marketing, for Wavefront by VMware to discuss the key elements for team leaders to consider when determining the right monitoring tools and the changing landscape of cloud cloud-native.
ADM: Why is it important to instrument modern applications for monitoring and analytics from day 1 of development?
Udovicic: The number one goal of instrumenting an application is to assess and assure the overall health of a cloud-native application, as well as its environment. To improve an application, it’s important for you to know how all the underlying layers of application cloud services are operating, and monitoring is key to ensuring optimal performance and reliability.
ADM: What are the types of things that need to be monitored to ensure the health of an application?
Udovicic: It’s essential for teams to monitor both historical and real-time performance metrics – after all, they’re the basis for understanding your application and system environment. While historical data allows baseline comparison, forecasting, and impact assessment, real-time data fuels proactive monitoring and reactive troubleshooting of your code in production. One thing to note is that deeper and more granular monitoring has now become critical for continuous application delivery and has rapidly increased the pace of application releases to production clouds.
Custom business metrics are critical for modern cloud services. As a result, it’s important to have a high performing, reliable and consistent observability platform to measure the success of these services, answering questions like “Was the release successful? Do we have 5xx spikes? How are services doing from a DevOps perspective?”
ADM: What are the scale challenges that monitoring and analytics solutions are dealing with these days?
Udovicic: One challenge that exists – particularly with open source monitoring tools – is scaling the tools as your business starts to grow. As an organization begins to rapidly grow, so does its metrics volumes as engineers add more and more necessary telemetry. Teams, and organizations must decide between investing in larger and more complex open source infrastructure or focusing their efforts on innovation and scaling the overarching business. The former may require investing up to six months of an engineer’s time to re-architect the open source implementation for scale up.
ADM: Where should development teams start when evaluating a commercial vs open source monitoring solution?
Udovicic: My perspective is that developers and DevOps leaders must consider a series of questions to determine moving forward with a commercial or open source monitoring tool. A few of these key questions include: How important is the high availability of my monitoring platform? Should I invest in engineering resourcing in building and maintaining this tool? If so, how much am I willing to invest? How will I scale my monitoring tool? Will I need to pay for scale? How easy will it be for my team to get up to speed and use this monitoring tool?
The answers to these questions will help team leads understand and make sense of what they actually need and how much time and money they’re willing to allocate towards it.
ADM: What are some of the misperceptions of using commercial versus open source monitoring tools?
Udovicic: One of the biggest misperceptions I’ve come across lies with teams moving forward with a commercial monitoring tool, as they think it’s the better and more reliable option. The truth is, when it comes to metrics monitoring, making the decision to go open source or commercial requires careful and well-thought-out consideration. While commercial monitoring tools are optimal for some teams, open source tools may be a better option for others or in the long run. The decision to choose a commercial monitoring tool or an open source monitoring tool will ultimately be driven by the unique needs of teams and overarching business goals.
ADM: What are the benefits of choosing a commercial monitoring tool versus an open source option?
Udovicic: If a team decides that a commercial monitoring tool best fits their current needs, the benefits can be astronomical. Benefits - which we’ve seen first-hand with SaaS organizations - include the ability to meet high availability requirements of customers, the ability to scale and directly grow business value, minimizing the complexity of system implementations, and simply reducing the onboarding and ramp-up time for engineers and teams.
ADM: How are cloud-native apps changing the dynamics of monitoring and analytics?
Udovicic: Cloud-native applications are often built as a collection of loosely coupled small, independent services named microservices. Microservices can be built quickly without dependencies and can be optimized for change and reuse. Often, microservices go hand-in-hand with containers.
ADM: How should a monitoring approach shift as developers leverage serverless applications (functions), which are stateless with an average 1-minute lifespan?
Udovicic: While there are fewer worries about operating your code, you still have to monitor your functions, detect anomalies, and troubleshoot issues before the customer experience is impacted. Serverless functions, in general, are particularly more challenging due to their 1-minute lifespan. Therefore, it’s essential to instrument your serverless functions and fortunately, there are tools that can make it easy for you.
It’s important for developers to consider monitoring offerings that provide integrations with serverless computing platforms (like AWS Lambda), which are lightweight, metrics-based, and easy to implement. Tools like this can combine metrics automatically gathered from platforms like AWS Lambda, plus the custom applications metrics you can instrument in your functions that can be sent directly from functions – all viewed on a single dashboard.
ADM: Where are the areas we can expect to see continued improvement in monitoring and analytics?
Udovicic: Extracting real-time, actionable insights from modern applications and microservices with hundreds, thousands and even millions of critical KPIs and complex relationships among them can be overwhelming. I expect to see continued improvement in the area of automated observability, Machine Learning and offering automated insights to developers about potential bottlenecks in the code and in production.
With the growing popularity of Service Meshes and with all the communication paths between microservices, it becomes important to understand microservices communication, at scale, per second or sub-second, in a very light and easy to use manner. This is another area I expect to see continued investment.
Learn the best ways to organize your app development projects, and keep code straight, clients happy, and breathe a easier through launches.
Write and run code every step of the way, using Android Studio to create apps that integrate with other apps, download and display pictures from the web, play sounds, and more. Each chapter and app has been designed and tested to provide the knowledge and experience you need to get started in Android development.
How to create a profitable, sustainable business developing and marketing mobile apps.