Welcome back to Reasons to Deploy in the Cloud! In this series of posts, I'm discussing some reasons for choosing a cloud platform. Previously I've talked about managing costs, and the power of scaling, and now I want to dive into application management – how using the cloud makes application monitoring, resource management, and analysis easier and more cost effective.
Infrastructure as a Service (IaaS) providers offer a wealth of tools for automatic scaling, resiliency, and monitoring. A well designed cloud app can be managed effectively with fewer hands in less time.
Alerts and Metrics
Scaling and costs, covered previously, are important aspects of cloud management, and both operate though alerts and metrics. Alerts and metrics give you real-time insight into the state of your application and infrastructure.
Metrics are periodic datasets published by the application's assets in a central location. Metrics can be numeric values such as disk input/output bytes per second, network latency, or CPU usage. They can also be on-off states such as “server online” or “backup in progress.”
Alerts are push-notifications of the states of an application or application component. An alert generally comprises a metric and a threshold for that metric that should cause the alert, for instance if the free memory on a server drops below 500MB. (photo credit: Amazon Web Services)
Failure recovery and resiliency
Configured to take an action when an event or threshold occurs, alerts drive automatic management features of cloud applications. Many such alerts can enable different infrastructure behaviors such as auto-scaling or administrator notification, and these can be refined throughout the life of the app.
Crucial to application failure recovery, defined alert behaviors can respond to dynamic events without human intervention. When a resource enters a failed state, the platform can shut it down and clean up while seamlessly configuring a replacement.
Dashboards are visual representations of metrics, including real-time cost analysis, traffic, data throughput and storage, or CPU usage. This allows for active management of the application. Administrators see events as they happen in real-time and can respond accordingly. These insights can drive marketing, new automation features, and changes in application design to mitigate potential risks.
Development, continuous delivery and deployment
IaaS providers include cloud integrations into the development process. Microsoft Azure offers tight integration between their Visual Studio development environment and cloud management tools. Amazon Web Services offers managed continuous integration, delivery and deployment tools. This allows significant management tasks often handled by IT staff to be included in the application's behaviors. These services in the cloud facilitate an immediate cycle of code, test and deploy to define not just the application but the infrastructure as well. Applications can evolve rapidly in the cloud and with near-zero downtimes.
As you can see, the cloud is suited to automating many management tasks, and simplifying others. This combination allows fast, responsive adaptation as the application meets the real-world, with fewer people needed to keep things running. This article has really only scratched the surface of cloud management techniques which also covers things like identity and access controls, containers, and much more. Leave a comment below if I left out your favorite cloud management tools, and thanks for reading!