Postings
Keeping the lights on
Having spent years running 24×7 internet-facing production systems, I find that the monitoring element of an application delivery environment is often the last item to be addressed and built outside of the application delivery architecture. As we continue to build our application delivery infrastructure in the cloud, having a good monitoring strategy will allow us to arm ourselves with the information we need to make intelligent decisions.
So exactly what should be monitored?
Availability
The first element in a monitoring strategy is to determine whether the application is accessible. The most simplistic form of determining availability is ping. However, as most applications are obscured behind a load balancer, a ping response doesn’t necessarily mean that the application is responding to requests. Use a monitoring system that can speak application-layer protocols to ensure that the application is indeed healthy and responding to user requests. It’s best to leverage a 3rd party solutions that can assess availability from multiple networks and provide an unbiased view on the availability of the application.
Resource Utilization / Load
Next element in a good monitoring strategy is to determine how healthy a system is. Tracking the load of various system components will enable us to uncover bottlenecks within the application delivery environment. Leverage SNMP to capture and record utilization statistics on CPU, memory, disk IO, network IO, threads, and so on. Graph these stats to establish baseline and find correlations between each monitored element. (more…)
Filed under: cloud & virtualization,web X.0 — Tags: architecture, availability, clustering, infrastructure, load-balancing, monitoring, performance — appgirl @ 9:15 amComments (1)
Cloud scaling considerations
Amazon’s new Relational Database Service (RDS) has generated quite a bit of buzz as of late. This move propels Amazon forward into the application services provider in the cloud computing arena. I’ve briefly written about different types of cloud services in an earlier post and outlined differences between Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), Software-as-a-Service (Saas), and IT-as-a-Service (ITaaS). As cloud-based services gain maturity and adoption, the lines between different “as-a-Service” offerings to blur as providers evolve their service offerings.
Under the covers, RDS instances are essentially EC2 images with MySQL with added services to automates the backup and scaling capabilities. Scaling, or elasticity, has been one of the lures in placing workloads in the cloud. Cloud computing will reach nirvana when compute resources are automagically provisioned and de-provisioned as workloads increase and decrease.
Today, cloud resources provides a mechanism to scale resources in a linear fashion:
- add another server… in the case of web & application servers where workloads can be divided amongst a pool of servers;
- move to a bigger server… in the case of database servers where a single server is responsible for processing all the workloads;
However, is linear scaling the right approach to servicing workload increase? (more…)
Filed under: cloud & virtualization — appgirl @ 7:09 amComments (2)


