Creativa - Fotolia
Editor's note: This article is part of a two-part series on cloud-native applications. To read part one, click here.
When it comes to cloud-native applications, development is only half the battle. Organizations must understand how to manage, monitor and scale their apps once they're in production.
The management of cloud-based applications relies heavily on automated tool sets and workflows, as cloud vendors handle the underlying hardware and infrastructure. This removes much of the guesswork and manpower around provisioning resources, but it also means you need to rethink the traditional concepts of scaling, storage, configuration and monitoring to adapt to the ephemeral nature of the cloud.
The reality of cloud-native application management is that users can't manage what they can't monitor. If users don't know how much traffic they're getting -- or how that traffic impacts the stability of the infrastructure -- it is nearly impossible to properly scale or react to problems that may arise from inside and outside of your cloud architecture. Furthermore, the rise of containers has changed the way enterprises manage large applications in the cloud. In this tip, we'll go over the basics of cloud-native monitoring, logging and alerting, as well as how container orchestration fits into cloud-native management.
Cloud-native monitoring vs. logging vs. alerting
One of the biggest advantages of cloud-native application development is the access to cloud provider management and monitoring tools, such as Amazon CloudWatch, Azure Monitor and Google Stackdriver. The ability to monitor, log and receive alerts about both applications and the services they rely on is a foundational piece of cloud-native management.
However, there are significant differences when it comes to monitoring, logging and alerting.
Monitoring: Monitoring is mainly concerned with collecting and analyzing metrics about a given piece of infrastructure -- such as CPU load, request latency or memory usage.
Logging: Logging is less about metrics and more about data. It logs details -- such as who, what, where, when and why -- so users can know what is happening at any given moment.
Alerting: Alerting focuses on the reaction of that data, rather than consumption. Users need to identify the thresholds that the application can safely run and set alerts when it crosses those thresholds.
Proper monitoring, logging and alerting practices enable users to see, track and react to problems as they happen, which can be the difference between degraded performance and a sustained outage.
Containers orchestration tools in the cloud
Containers can add consistency to a range of IT processes, whether it's development, testing, deployment or hosting. And while they're a great place to put application code to build applications, they also offer cloud-native management benefits for apps.
Container orchestration tools, such as Kubernetes and Docker Swarm, are heavily cloud-driven, even though they also can be used on premises. When paired with the scalability of the cloud, these services can be used to automatically scale infrastructure as needed. Also, cloud providers -- like AWS, Microsoft and Google -- have direct support for container orchestration, which can reduce the amount of overhead necessary to get started.
These container orchestration tools can tie directly into cloud-native services and their monitoring metrics, so users can react in an automated fashion, directly within the application infrastructure, when issues arise. As a result, large applications are easier to manage and users gain more control over how individual services interact.