I already listened to a couple of talks on the cloud. The whole cloud topic start to grow up, meaning more and more application scenarios for the cloud are appearing.
Yesterday there was a very useful classifcation of cloud services. The differentiated cloud services at a couple of different levels.
- Infrastructure as a Service – providing computing power or storage
- Stack as a Service – providing infrastructure plus an application stack like J EE based on e.g JBoss
- Platform as a Service – providing a whole development stack including services like messaging, storage (examples are Google App Engine or GigaSpaces)
- Software as a Service – provding a whole stack like salesforce Apex.
In a talk by Gigaspaces, who reside in the Platfrom as a Service space a very concrete application of cloud based application development was shown. They showed how to outsource complex computations to the cloud. While infrastrucutre on demand was a driver to move to the cloud. The main point are value-added services like messaging, data storage, identity management, monitoring and infrastrucutre management.
So the cloud seems to be the basis for novel software and application model. I also have been to a presentation where they showed how Hudson can be used move Continuous Integration and testing into the cloud. Sun’s project Kenai even allows to move your whole application development environment into the cloud. Browser Mob an interesting start-up for example provides on-demand load testing in the Amazon EC2 cloud based on Selenium.
In addition to these public cloud service there are also the private clouds. Meaning virtualized, flexible data centers within companies. The reasons are obvious – efficiency and costs. This very much supports a trend we have been observing. Applications and their dynamic management is getting more and more in the focus of IT operations. The underlying infrastructure is seen as a prerequisite and a commodity. If you need a new server instance, you just start it up. You “just” have to know, whether to start it up or not. And there the tricky part comes in – Application Service Management in dynamic environments. Randy Shoup – Distinguished Enterprise Architect at eBay – showed in a talk on high performance web application for managing this issue and how they built their own infrastructure to do that. I am more than conviced that the other big players like Amazon, Google, Facebook, Yahoo, … have done right the same thing.
As not all of us have the engineering power to do so, there must be other solutions than building these things on your own. We as dynaTrace have already been asking us the question how we can provide a solution to this more than one year ago. What we came up with was a full fledged solution for the management of dynamic infrastructures cloud-like environments. The key aspects we saw and implemented are:
- Automatic managements of newly appearing application instances and automatically applying the necessary monitoring and tracing
- Tracing all requests 24×7 to continuously monitor and understand service performance and dynamics to immediately react to new requirements
- Ability to invoke custom code as part of the monitoring to react to service load changes.
- Visualize what your current service interactions using Application Dependency Mapping as other you have no clue how services are actually used by other services
- Ability to provide feedback to architects to understand how the scalability behavior of their applications in the cloud
Cloud computing – or utility computing in general – is very much about better utilization of assets. Otherwise we end up as what we have learned to not work – throwing more hardware at a problem to scale. As a famous german tire commercial says Power is nothing without control. The power is out there in the clouds or in our datacenters, controlling and managing this power is up to us.