Services

MIGRATING JAVA APPLICATIONS TO CLOUDS

Description
MIGRATING JAVA APPLICATIONS TO CLOUDS White Paper May 2012 Abstract As Platform-as-a-Service (PaaS) and Cloud Application Platform (CAP) technologies become more and more feature-rich, migrating existing
Categories
Published
of 9
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
MIGRATING JAVA APPLICATIONS TO CLOUDS White Paper May 2012 Abstract As Platform-as-a-Service (PaaS) and Cloud Application Platform (CAP) technologies become more and more feature-rich, migrating existing applications to clouds, whether private or public, makes economic sense since it allows enterprises to leverage existing investments in the technology, people and processes while tapping into the benefits of agility and scale of clouds. Migration makes even more sense for organizations with substantial investments in Java technology that are looking to develop modern applications on clouds. In this paper we make the case for using PaaS and CAP and as key components for cloud adoption and application migration, and highlight several methodologies and tools available. 1 Table of Contents Why Migrating Applications to PaaS...2 Productivity... 2 Efficiency...2 Time-to-Market...2 Platform for Future Applications...2 Application Migration Process...3 Identifying Target Clouds and Application Platforms...3 IaaS or PaaS...3 Identifying Application Architectures, Dependencies and Migration Feasibility... 4 Scale-out Versus Scale-up Architecture...4 Application Dependencies... 4 Infrastructure Configuration... 5 Storage Architecture... 5 Authentication and Authorization... 5 Migration Feasibility... 6 Packaging Application Payload for the Target Cloud...6 Beyond Application Migration...6 Conclusion... 7 About CumuLogic...7 2 Executive Summary Migrating existing applications to clouds, whether private or public, makes economic sense since it allows enterprises to leverage existing investments in the technology, people and processes while tapping into the benefits of agility and scale offered by clouds. Application migration from on-premise datacenters to clouds requires thorough analysis of business drivers, technical requirements and feasibility of deploying applications to the new platforms. There are several methodologies that technology vendors offer, including migrating the entire virtualized images of running applications to the clouds, and some introspection tools which promise to discover, catalog and re-create application environments on clouds. Although, these methods of application migration achieve the short term goal of moving applications to the cloud, they fall short in advantage of a number of opportunities. Most migration projects provide the opportunity to re-architect the applications to benefit from scale-out architectures and to decouple application code from the underlying application infrastructure. Decoupling application code, in turn eliminates dependencies on various systems to make applications more agile and modular and take advantage of next-generation application infrastructure to build agility and usability for long term. As opposed to Platform-as-a-Service (PaaS), which focuses primarily on development, Cloud Application Platform (CAP) provides an integrated application infrastructure stack optimized for applications to run on virtualized environments, allowing developers to write applications which are independent of the underlying infrastructure stack. This enables applications to be portable and easy to maintain. PaaS or CAP solutions which support traditional middleware components can help migrate existing applications with little effort or code changes. A robust PaaS or CAP provides the functionality to monitor, manage and autoscale infrastructure resources to maintain pre-set service levels for applications, in addition to providing single click deployment option. CAP solutions, such as CumuLogic s support a variety of NoSQL database servers to enable developers to use the same platform for developing scale-out applications. In this paper we make the case for using PaaS and CAP and as key components for cloud adoption and application migration. 1 Why Migrating Applications to PaaS There are several reasons that make it compelling to migrate applications to the cloud: Improved developer productivity, plus opex by an estimated 35%. Delivery of a higher ROI for the cloud Time-to-market Support for next-gen application frameworks, such as NoSQL databases Productivity PaaS eliminates the need for developers or IT Ops to setup, install, configure, monitor and manage the application infrastructure and simplifies the deployment of most applications on clouds. Depending on the PaaS provider, developers may be able to simply package the application artifacts and push them to the PaaS layer to deploy and manage it completely. This simplification of deploying applications, according to some estimates improves developer productivity by 30%, and opex by 35%. Efficiency PaaS solutions are designed to improve efficiency of resource utilization by design and will help deliver a higher ROI of cloud adoption. Given the complexity and topology of existing infrastructure in datacenters, a chosen PaaS must be easy to integrate with rest of IT assets, business tools and processes. PaaS solutions for private clouds are tightly integrated with virtualized environments such as VMware vsphere or IaaS clouds such as CloudStack, OpenStack and Eucalyptus and can manage the complexity associated with setting up resources for deploying applications and managing their entire lifecycle. Time-to-Market Since PaaS virtually eliminates the need for setting up infrastructure and managing resources, applications can be quickly developed, tested and deployed on clouds. Developers can develop applications which are virtually agnostic to the underlying infrastructure and are more agile, and can be modified and redeployed in the shortest amount of time. Platform for Future Applications PaaS provides next generation application infrastructure support such as new application frameworks, NoSQL database services and integration with private and public clouds. Enterprises can develop new applications to take advantage of next generation cloud architectures for new applications while using the same platform to migrate existing applications to the cloud. 2 Application Migration Process The application migration process starts with identifying the applications that should be moved to the cloud with ease. The application migration process starts with identifying the applications that should be moved to the cloud with ease and can be managed on the cloud with little effort. The decision to migrate an application to the cloud should be based on the long term plan for this application, existing investments and business benefits whether operational benefits or agility. Once an application is identified, there is a three-step process to migration: 1. Identify the target cloud and application platform 2. Identify the application dependencies and migration feasibility 3. Package the application payload to deploy on the target cloud These three processes are discussed in the detail in the next section. Identifying Target Clouds and Application Platforms The target cloud is the deployment platform, and can be a public cloud such as Amazon, HP Cloud Services or Rackspace, or a private cloud such as Citrix CloudStack, Eucalyptus or OpenStack or a virtualized environment, such as VMware vsphere. The target cloud is the deployment platform, an IaaS cloud with a PaaS. It can be a public cloud such as Amazon, HP Cloud Services or Rackspace, or a private cloud such as Citrix CloudStack, Eucalyptus or OpenStack running CumuLogic PaaS, or a virtualized environment, such as VMware vsphere. Organizations with existing investments in infrastructure can deploy a hybrid cloud model to leverage existing IT assets, developer skills, tools and processes while benefiting from on-demand resources of public clouds for specific workloads to meet peak demand, or non-security sensitive applications. IaaS or PaaS Enterprises must evaluate IaaS or PaaS based on the types of applications to migrate and the long term strategy for new applications. Most public PaaS offerings provide limited flexibility to accommodate the application infrastructure enterprises use for their existing applications. They are typically black-box offerings, and the applications must be written to that specific platform. Such platforms will most likely limit the portability of applications between clouds or platforms. Enterprises that require or choose hybrid cloud models may need to first set a private PaaS strategy since using a combination of private IaaS clouds and 3 public PaaS would add complexity to the overall cloud computing strategy. Private PaaS solutions such as CumuLogic Cloud Application Platform enable the deployment of applications on both private and public clouds with the same level of ease and functionality. IaaS clouds alone provide choice of infrastructure but require developers or administrators to manually setup, install, configure, monitor and manage their infrastructure and applications, therefore limiting ROI for developers, App Dev organizations and DevOps equally. If existing infrastructure is already virtualized, there is limited value provided by IaaS clouds without PaaS. Enterprises must analyze the applications, infrastructure configurations and application source code to understand dependencies and evaluate the feasibility of migrating such applications. Identifying Application Architectures, Dependencies and Migration Feasibility Scale-out Versus Scale-up Architecture Traditionally, applications are developed with scale-up architecture which assumes availability of certain amounts of CPU and physical memory in the system to scale the applications. The network topology of systems is hardwired and certain network infrastructure connectors are assigned to certain modules of applications. In some cases, the application infrastructure, such as application servers and databases are configured to start only on specific IP addresses. Enterprises must analyze the applications, infrastructure configurations and application source code for such tighter dependencies and evaluate the feasibility of migrating such applications. For long term strategic applications, it s possible to redeploy such applications in clouds with some effort of reconfiguration and code changes. Such applications may or may not benefit from the scale-out nature of clouds, but will still benefit from the flexibility and low operational cost of cloud environments. Application Dependencies Applications don t necessarily work in silos and are usually dependent on either other applications, data or infrastructure shared between applications. Enterprises must evaluate such dependencies and draw a dependency map to decide if other applications and data or database servers must be moved to the cloud, or if such applications should be reconfigured for modularization to deploy on clouds. Depending on the nature of the application, there may be certain amount of effort involved to reconfigure the applications, or to modularize it with code changes. Dependency maps help in identifying any potential pitfalls of migrating applications to clouds or may help explore benefits of re-architecting or rewriting certain modules of applications, for example, using web services instead of web applications. 4 Infrastructure Configuration Configuration charts that list the configuration settings of infrastructure such as JDBC data source, JMS, etc. are useful tools in migration projects. Enterprises should also consider using configuration charts to list the configuration settings of infrastructure such as JDBC data source, JMS or other messaging server with message queues, topics and other configuration settings, JNDI naming trees, ORB cache settings such as hibernate or JPA configurations, database, security settings and any other optimization parameters for entire stacks. Storage Architecture Storage architecture plays an important role in the ability to migrate applications to the cloud, and applications may have to be modified to use the storage resources available on the cloud. Storage architecture plays an important role in the ability to migrate applications to the cloud. Traditionally applications were designed to expect availability of filesystems or persistent storage or NFS filesystems for applications to use as data store or temporary file store. Such applications may have to be modified to use the storage available on the cloud. In most cloud providers and even on private clouds, there is a default ephemeral or local disk store available on the virtual machines (also referred as instance storage) which is non-persistent. Persistent storage options must be configured so applications can use persistent storage, such block storage, NAS or SAN whichever is available for the virtual machines. Performance characteristics of storage types must be evaluated to use a suitable one for applications. Ephemeral storage or instance storage may be used for temporary data files, buffers and caches as it is usually optimized for sequential I/O capabilities compared to block storage (sometimes referred as Elastic Block Storage or EBS volumes). Ephemeral storage can usually be configured for RAID 0 stripping only. Block storage must be used for database, filesystems or as raw block devices which provides persistent data store as well as storage optimized for faster random I/O operations. Block storage can usually be configured for RAID 0 or logical volume manager (LVM). Authentication and Authorization If applications are being migrated to public clouds, steps should be taken to consider replicating the authentication database or using mechanisms to use existing user database. Applications typically authenticate and authorize users from the corporate Identity Managers, LDAP or Active Directory servers. If applications are being migrated to public clouds, steps should be taken to consider replicating the authentication database or using mechanisms to use existing user database. Security and compliance sensitive companies may consider using private clouds for applications which use such services, while leveraging public clouds for certain workloads such as QA/Test/Development. 5 Technical Feasibility Considering the application architecture and application dependencies, enterprises must evaluate if it s technically feasible to migrate such applications. Considering the application architecture and application dependencies, enterprises must evaluate if it s technically feasible to migrate such applications, and if re-architecting or rewriting part of the application makes business sense. Migrating applications along with their existing operating system images and associated infrastructure components may be an alternative. Migrating applications with their virtualized server images may be a good strategy for applications which may have short shelf-life. However, the complexity in migrating virtualized images may present issues about compatibility of hypervisors, performance and management tools, which make it less feasible to migrate to public clouds. Additionally, migrating server images brings the same set of issues associated with managing the updates, patches and monitoring responsibilities to clouds. Also, server migration requires maintaining the network topology of applications along with consistent IP addresses which may be required to simulate on the cloud environment. Packaging Application Payload for the Target Cloud Depending on the PaaS cloud, it may be relatively easier to deploy the applications as PaaS simplifies the configuration management, monitoring and management. The final step after applications have been identified and reconfigured or rewritten with dependency maps and configuration charts is to package the application artifacts along with its metadata and deploy them on the target clouds. Deploying on IaaS target clouds may be as good as trying to replicate the entire application environments on the clouds. Depending on the PaaS cloud, it may be relatively easy to deploy the applications as PaaS simplifies the configuration management, monitoring and management. Additionally, PaaS provides the integrated infrastructure so users don t have to install and configure application infrastructure. However, packaging of applications and defining metadata is highly dependent on the target PaaS clouds. Beyond Application Migration Once applications are migrated to the cloud, enterprises must plan for configuration and integration of existing developer tools, build environments, backup/restore, testing tools and process tools. Once applications are migrated to the cloud, enterprises must plan for configuration and integration of existing developer tools, build environments, backup/restore, testing tools and process tools such as defect management systems, documentation systems to integrate with their clouds and cloud applications. Such tools are covered in a separate paper (check cumulogic.com for updates and availability of more white papers). 6 PaaS must be flexible enough to be customized to accommodate existing applications for example, PaaS must be easily extensible for supporting additional frameworks or services such as database and messaging services. Conclusion Migrating applications to clouds provides economic value, improves efficiency and lower the overall cost of managing applications. Enterprises must evaluate the readiness and feasibility of migrating applications by developing dependency maps and evaluating appropriate PaaS solution which can provide the flexibility and accommodate various enterprise requirements of security, compliance and investment protection. CumuLogic Cloud Application Platform provides support for migrating traditional applications to clouds, private and public, eliminating vendor lock-in via an abstracted multi-cloud support, and has frameworks to extend the platform. For more information, please visit cumulogic.com or contact us via , at About CumuLogic CumuLogic is a Platform-as-a-Service (PaaS) software provider that enables enterprises, cloud providers and ISVs to develop and deploy Java applications in public, private and hybrid cloud environments. CumuLogic is redefining PaaS to include a complete platform for developing, migrating, running, managing, monitoring, and metering applications in the cloud. CumuLogic was founded by ex-sun Microsystems employees passionate about cloud computing. James Gosling, the creator of Java, Bill Vass, former CIO of Sun Microsystems and President of Sun Federal, and Bud Albers, former CTO of The Walt Disney Company lead CumuLogic's Technical Advisory Board. For more information, please contact us at CumuLogic, Inc Stevens Canyon Road, Cupertino, CA USA Phone Web cumulogic.com 2012 CumuLogic, Inc. All rights reserved. CumuLogic, CumuLogic logo, and PaaS are trademarks or registered trademarks of CumuLogic, Inc. in the United States and other countries. 7
Search
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks