Enterprise Ready Rapid Delivery Platform for the Cloud
Date: Sunday , August 09, 2009
Cloud computing is like that pot of gold at the end of the rainbow for IT. The potential for solving day-today problems in IT is very enticing, yet so hard to achieve due to so many unknowns. The promise of cloud computing brings with it increased IT efficiency, reduced capital expenditure and lowered barrier to entry while providing scalability with infinite computing power. The issues, on the other hand, are numerous. Three of the biggest questions that need to be addressed when making a decision to migrate to the cloud include:
* How do you build your application to leverage the underlying computing resources by auto-scaling, auto-healing and auto-provisioning?
* How do you address the increased need for security and governance as the application extends its footprint outside the boundaries of the enterprise?
* What about the development cycle of the application on the cloud, do personnel need training or do you need to hire different experts?
An enterprise ready cloud platform built with a focus on rapid delivery helps address these three issues and more. The following article delves into how to evaluate cloud platforms when moving your enterprise applications to the cloud. The right cloud platform helps ground your IT infrastructure by leveraging all the advantages of cloud computing and making that pot of gold at the end of the rainbow a reality.
The Promise of the Cloud
Cloud computing holds the potential to solve a host of IT problems that are traditionally solved by throwing more money and resources at them. By allowing massive computing power to be available on demand and on a pay-per-use model, IT can now:
Improve IT efficiency : Most large enterprise IT departments recognize that they effectively use only about 30% of their available infrastructure resources. This is because most application deployment topology is designed to handle peak loads leading to large disuse of resources during average load. Cloud computing helps IT organizations do more with what they already have. It allows applications to expand and shrink to leverage the cloud on an as needed basis. This improves IT efficiency during regular operating hours.
Reduce Capital Expenditure :
Using the pay-per-use model, enterprises only pay for the resources they use. This reduces capital expenditure and enables rapid application deployment at a low initial cost. This aligns budget to actual demands.
Lower the barrier to entry : Because there is no software to install or hardware to procure or provision, cloud computing significantly reduces the barrier to develop and deploy new applications. In most large enterprises it takes an average of three months to provision a new server. In a cloud environment, resources can be tapped in real-time.
Introducing the Cloud Platform
What does it take for an enterprise application to run on the cloud? Typically the cloud infrastructure is laid bare to the application developer. Any application that needs to leverage the cloud for scalability needs to be cloud-aware and be elastic. More specifically, the application needs to automatically shrink and grow based on demand. In addition, the application needs to be provisioned on this new cloud infrastructure and managed and monitored on an ongoing basis.
Enterprise information is the biggest strategic asset for any organization. The fear of compromise can throttle the transition of enterprise applications to the cloud. For an application to be well governed, enterprises need to be able to answer the 4 W’s - Who can access the application, data and resources? What permissions a specific user has? Where are the applications and its associate data? When was the application accessed? To exercise this level of application control it is mandatory to have a well defined mechanism to define these security, auditing and compliance policies. So Governance has heightened importance, as the infrastructure resides within the IT boundaries of a third party provider. And lastly, there has to be visibility into the application’s performance, service level agreement (SLA) management and analytics in order to demonstrate value and return on investment (ROI).
To address these issues, cloud platform players have emerged in the typical middleware sense of abstracting issues and solving them universally across applications. Cloud platforms can function in a variety of ways. Some provide bare bone functionality when it comes to abstracting the underlying infrastructure while others provide end-to-end management of the enterprise application and much more. Outlined below are the requirements found in an ideal cloud platform.
But what about my SOA?
Service Oriented Architecture (SOA) took the industry by storm when it first made its appearance. Slowly and steadily over the years, it has since lived up to expectations by transforming IT for efficiency, reduced cost and reuse. As a result of large scale adoption of SOA, several technologies have emerged to solve traditional IT problems, ranging from the concept of an Enterprise Service Bus (ESB) to governance to service performance management and more. The industry is now poised for the phenomenon of cloud computing, which offers the promise of delivering incomparable scale using massive computing power. The question now is how SOA will exist on the cloud. None of the traditional problems that motivate IT to adopt SOA disappear with the introduction of the cloud. If anything, new problems arise with the introduction of the cloud. In simple terms, a cloud platform needs to enable SOA on the cloud. SOA is an architectural pattern that is critical for Cloud applications as well. Cloud application characteristics do demand an underlying platform that is service enabled. Cloud Computing is the next logical enabler of SOA adoption. Cloud Computing offers a new form of service delivery option for SOA applications.
Rapid Application Delivery
Quick onramp for applications to the cloud : The ideal cloud platform will provide a quick onramp of applications onto the cloud with no additional expertise or training. The developers should be able to write code in their language of choice. The design-test-deploy cycle should not be altered significantly and should be simple and continuous. The administrators should not have to learn about the underlying technology and constantly tweak and manage to leverage the scalability of the cloud. The platform should provide end-to-end manageability, reliability and availability for the hosted application. Architects and managers should get end-to-end design visibility of their applications across the cloud.
Cloud Opacity : The cloud platform should keep the underlying infrastructure completely opaque to the application while still allowing the application to leverage the elasticity of the cloud – to grow and shrink based on demand; as well as providing a choice of cloud infrastructures. It should manage all the underlying problems of deployment and management on the cloud infrastructure with minimal human and application level intervention.
Standards based : The platform should be standards based (SCA, OSGi, WS*, Java, Spring, Ruby), so the application can move between cloud infrastructure providers as well as between platform providers without vendor lock-ins.
Self Aware Elasticity
Grow and shrink (Elastic Fabric) : The classic definition of elasticity in the context of the cloud is to grow and shrink computing resources to meet the demands of the application. Cloud infrastructure typically comes with the availability of a flexible model where users can leverage computing resources on an as-needed and pay-by-use basis. However, to have an enterprise application that resides on the cloud leverage this flexibility, the application needs to have built-in elasticity so it can grow and shrink as needed. Elasticity then is not just about whether computing resources can grow and shrink, but it is about the enterprise application itself being able to grow and shrink to leverage the underlying cloud infrastructure. The issue does not end there, the ability for the application to grow directly correlates to the money spent on underlying resources in a pay-per-use model. Lack of real-time visibility on the correlation between the two could result in IT over expenditure. An ideal cloud platform will provide built-in elasticity so any application that resides on it can scale and shrink based on load. It will also provide real-time monitoring and allow load distribution based on a user defined combination of cost and demand parameters.
Distributed Application Aware : The cloud platform should be aware of the underlying cloud infrastructure to lend the application a distributed flavor. It needs to provide auto-scaling, auto-healing, auto-provisioning and end-to-end manageability for the application. For example, if a service is on the verge of under performing, the platform should initiate new instances of the application for auto-scaling and load balancing. For this, it should automatically bring up the new instances of the application by auto-provisioning.
SLA –Aware : The cloud platform itself should be aware of SLAs (Service Level Agreements). This way the business user can set SLA goals for the enterprise application. The cloud platform will scale and load balance the services automatically to meet the SLAs set for the application. Performance of services on the cloud platform can be directly tied to SLAs driving a direct impact on value-based payment for leveraging the underlying cloud infrastructure. This will allow users to know exactly which services and customers are the most expensive resources. This also allows direct correlation between infrastructure usage and payment.
Many organizations are reluctant to move forward with a cloud strategy, because of justified concerns related to security, compliance and control.. In the cloud, governance must be treated as a first class citizen. The threats are greater and the stakes are higher when information is not in direct corporate oversight. Commitment to the rigors of governance will bring freedom in leveraging the advantages of the cloud paradigm. There are two aspects to consider in governance on the cloud:
Lifecycle Governance on the Cloud : Lifecycle governance focuses on the entire lifecycle of an application or service, from design to development to test to deployment and maintenance. It also involves assessing and managing change impact on SOA operations and services. When you factor in the cloud, this involves end-to-end lifecycle management across distributed computing boundaries.
Operational Governance on the Cloud : Designing and managing policies should be decoupled from the development of the service and the underlying distributed cloud infrastructure so they can change independent of each other. The actual enforcement should be part and parcel of the actual application so there is reduced chance of breach of contract. These seemingly contradictory requirements need to be met for successful governance of the enterprise application in the cloud. For this, policy enforcement should be built into the cloud platform itself.
As enterprises migrate their applications to the cloud, several requirements need to be evaluated before ultimately choosing a cloud platform. An ideal cloud platform will be enterprise ready and offer the following capabilities:
* Rapid application delivery
* Elasticity and built-in SLA management
* Cloud governance
Picking the right cloud platform will allow you to deliver on the dream of leveraging cloud computing for your enterprise applications to deliver on scalability and reliability.
The authors of the article are Sriram Chakravarthy a Senior Product Manager and Mala Ramakrishnan,Product Marketing Manager at TIBCO.