Journey to the Cloud with IBM Cloud Pak for Applications
Total Page:16
File Type:pdf, Size:1020Kb
Journey to the cloud with IBM Cloud Pak for Applications Constant innovation IBM Cloud Pak™ for Applications is a set of tools and technologies that enables an organization to modernize its application portfolio on top of Red Hat® OpenShift®. IBM Cloud Pak for Applications helps organizations quickly build and deliver new solutions by enabling users to containerize their workloads, develop cloud native applications using microservices and leverage continuous integration / continuous delivery (CI/CD) capabilities. The application modernization journey Many organizations may have a portfolio of existing Java™ applications created over the last 20 years. Depending on the size of an organization’s application portfolio, the application modernization journey can be a multi-year process. Currently, only 20% of workloads are in the cloud1 due to the effort and complexity of the modernization journey. Cloud Pak for Applications can help these organizations maintain those applications in traditional WebSphere®, move applications to WebSphere in a container, move to WebSphere Liberty in a container, refactor existing applications, and build new cloud native applications in a variety of runtime environments, such as NodeJS. Transformation Advisor Included in the Cloud Pak for Applications is the Transformation Advisor that helps organizations along their modernization journey. Transformation Advisor analyzes existing J2EE applications from WebSphere and assesses the effort to migrate an application to WebSphere Liberty. The output report from the Transformation Advisor allows an organization to figure out which applications can move easily, and which ones are better left on WebSphere. Based on the level of difficulty, users can decide when and which WebSphere applications can move to WebSphere in a container. Throughout the modernization journey Cloud Pak for Applications licensing allows organizations to continue to run their traditional WebSphere without incremental charges while transitioning to Liberty containers. For applications that are being moved to containers, organizations may choose to refactor into micro-services. Organizations developing new applications can design their applications to be cloud native using the latest tools and modern runtimes from Cloud Pak for Applications. Figure 1, The Application Modernization Journey, shows the Transformation Advisor’s role in application development and management that Cloud Pak for Applications provides. The journey starts with the Transformation Advisor to help identify which applications are best containerized through 1) replatforming, 2) repackaging, or 3) refactoring. Then Cloud Pak for 1 https://www.ibm.com/blogs/cloud-computing/2019/03/05/20-percent-cloud-transformation/ © 2020 IBM Corporation IBM IT Economics Consulting & Research Application provides tools to build, deploy, and run the applications in a containerized cloud environment as traditional, cloud ready or cloud native applications. Replatforming versus repackaging Replatforming entails taking an application, such as a traditional WebSphere application, and putting it in a container running the same environment. Putting the application in a WebSphere container does require some Python code to set up the WebSphere application configuration during container build time, but it is a simple way to leverage the security, reliability, and scalability benefits of a modern container platform, without needing to create a WebSphere Liberty profile. When an application is replatformed into a WebSphere container, the benefits of cloud operations (ease of provisioning, availability, and scalability) are immediate. Repackaging involves taking an application, such as a traditional WebSphere application, and rebuilding it to run in a WebSphere Liberty container. Repackaging requires even less effort than replatforming an application, and it offers many benefits for small agile development, microservices, and multi-cloud Figure 1 The Application Modernization Journey illustrates three migration approaches, replatform, repackage and refactor to transform applications for a containerized cloud environments. WebSphere Liberty provides a light weight, composable application server designed to run in a container environment. Because Liberty servers only install and run the features requested and/or needed by the application, less compute and storage resources are consumed. WebSphere Liberty is ideal for a container environment because its configuration can be changed with environment variables. Refactoring for cloud native development Refactoring is the process of taking a monolithic application and breaking it down into microservices so it can be rebuilt as a cloud native application. Cloud native development builds and designs a new application based on a microservices architecture. A microservice provides one business capability. Each microservice can be managed separately by a dedicated team member. Microservices can be scaled individually and, when running in Cloud Pak for Applications, can be auto-scaled based on demand. This allows for more agile development and continuous delivery. New services can be developed by leveraging the organization’s set of micro services. Cloud Pak for Applications supports cloud native applications by providing many runtimes for popular programming languages such as Python and Nodejs. © 2020 IBM Corporation IBM IT Economics Consulting & Research Getting started Applications using WebSphere 8 and above can leverage its migration report that details what alternative platforms a WebSphere application may be migrated to, for example, Liberty for Java on IBM Cloud™. Both the Cloud Pak for Applications Transformation Advisor and the WebSphere migration report estimate migration time and complexity. This enables an organization to identify easy-to-move applications as first migration candidates for replatforming or repackaging versus more complex applications that may require a more involved modernization effort. Once the replatforming and repackaging candidates are identified, the process is simple through the use of build and configuration files provided by the Transformation Advisor in Cloud Pak for Applications. Transformation Advisor generates WebSphere Liberty configurations based on the application’s specific dependencies such as JDBC drivers and JNDI data sources. It also generates the necessary artifacts for the application to be deployed using containers. Transformation Advisor uses the Cloud Pak for Applications runtimes, such as WebSphere Liberty with Eclipse MicroProfile support, and the associated container images it provides. Steps to replatform Here are the key steps to replatform a WebSphere application in a container. 1. Download code to create a WebSphere container image 2. Put Installation Manager on a Web server 3. Build Base WebSphere Docker images from download2. 4. Edit Sample Dockerfile to set a WebSphere version and specify app 5. Edit WebSphere config Python code to add App and JNDI database resources 6. Run Docker build to create image 7. Create Deployment YAML file 8. Deploy on Cloud Pak for Apps Replatforming savings To determine how difficult or simple replatforming is, we compared the time it takes to create a business as usual, tradional WebSphere environment in a data center versus the time it takes to put a WebSphere application in a container. IBM testing found that replatforming a WebSphere Application Server in a container using IBM Cloud Pak for 2 Keep in mind that containers are immutable so the WebSphere configuration must be created at build time. Also note that any runtime changes will be lost when the container restarts. © 2020 IBM Corporation IBM IT Economics Consulting & Research Applications takes 36% less time than installing WebSphere Application Server in a compared x86 virtual machine.3 Steps to repackage Here are the key steps to repackage a WebSphere application in a container. 1. Download sample code to create a WebSphere Liberty container image 2. Edit Liberty config file (server.xml) from Transformation Advisor 3. Edit Dockerfile from Transformation Advisor 4. Run Docker build to create image 5. Create Deployment YAML file 6. Deploy on Cloud Pak for Applications Repackaging savings We also measured the time it takes to build a traditional WebSphere application in a virtual machine versus repackaging the application into a WebSphere Liberty container. IBM testing found that repackaging WebSphere Application Server to WebSphere Liberty in a container using IBM Cloud Pak for Applications takes 66% less time than installing WebSphere Application Server in a compared x86 virtual machine.4 CI/CD efficiencies after application deployment Once applications are deployed to Cloud Pak for Applications, the benefits of cloud operations and CI/CD can start to reduce IT operations costs. Automated testing and delivery of incremental changes shorten the time and the cost of testing. A single developer can decrease WebSphere Application Server unit code validation time by 33% when using WebSphere Liberty containers in IBM Cloud Pak for Applications compared to redeploying a WebSphere Application Server Application in a compared x86 virtual machine.5 Microservices also contribute to less test time and cost. Since a microservice component has fewer capabilities it becomes easier to test in isolation, and with a smaller REST interface, there is less to test. This allows features to be rolled out more easily when each service is isolated rather than potentially changing