Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments

786 visualizaciones

Publicado el

Digital transformation includes replatforming applications to streamline release cycles, improve availability, and manage apps and services at scale. But many enterprises are afraid to take the first step because they don’t know where to start. In this webinar, Rohit will provide a step-by-step guide that covers:

● How to find high-value modernization projects within your application portfolio
● Easy tools and techniques to minimally change applications in preparation for replatforming
● How to choose the platform with the right level of abstraction for your app
● Examples that show how Java EE Websphere applications can be deployed to Pivotal Cloud Foundry

Speaker: Rohit Kelapure, Pivotal Consulting Practice Lead

Publicado en: Tecnología
  • Sé el primero en comentar

Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments

  1. 1. © Copyright 2018 Pivotal Software, Inc. All rights Reserved. Rohit Kelapure Pivotal Consulting Practice Lead Pivotal Labs App Transformation Fast Follow for Migrating Your Apps to the Cloud: How to do it and What to Avoid Tools and Recipes to Replatform Monolithic Apps to Modern Cloud
  2. 2. Cover w/ Image Agenda 1. How to find high-value modernization projects within your application portfolio 2. How to choose the platform with the right level of abstraction for your app 3. Tools and techniques to minimally change applications in preparation for replatforming 4. Examples that show how Java EE Websphere applications can be deployed to Pivotal Cloud Foundry 5. Q+A
  3. 3. Where Wild Things Are
  4. 4. Your Application Portfolio is a Mix of Things CONTAINERS EVENT-DRIVEN FUNCTIONS DATA MICROSERVICES Batch MONOLITHIC APPLICATIONS ESBJEE COTS MAINFRAME .NET
  5. 5. Applications Journey - Java
  6. 6. Applications Journey - .NET
  7. 7. Microservices Evolution Microservices, Events, & Breaking the Data Monolith with Kafka https://bit.ly/2UJXyPi
  8. 8. Business Factors Tech Feasibility Funnel PROGRAM DECISION Scaling Reverse AI aka “Think” 1 2 3 4 X X X Journey Markers runs runs well optimized rehost replatform refactor rebuild 1 32 Business Tech M I E T Matrix Prioritization Business lowhighTechnical low high 4 1 2 3 $$$ $$ $ $ 4 VSM
  9. 9. Moduliths Stateful Persistent file systems caches No work Spring Boot Spring Framework Microservices Java EE Microprofile Fat jar packaged Reactive Stateless Self-contained Java EE Web Profile war packaged Java EE Full Profile / J2EE ear packaged app server dependencies Multi non-HTTP comm. protocol Ingest Canonical Data Model Thick Java Clients Custom Packaging Transactional Strong consistent ESB/BPM Monolith System of Systems OS Native Mainframe extensions Small Large How far can we push ? Amount of rewrite ? Microliths Simple Batch Request-Response Messaging Medium XL Java Workloads > Effort To Migrate to PAS
  10. 10. .NET Core Web API ASP.NET MVC ASP.NET Webforms .NET Console App .NET Windows Service Windows Presentation Foundation Windows Workflow Foundation Windows forms Windows Communication Foundation IncompatibleSmall amount of rewrite Large amount of rewrite How far can we push? No rewrite to run on PAS .NET Workloads > Effort to Rewrite on PAS
  11. 11. Abstractions are your Friends
  12. 12. Application Transformation Strategies Re-Host Containerize aka “lift and shift” Re-Platform Minimal efforts to run natively on PAS Re-Factor Convert to Cloud Native aka “Modernize” Re-Build Decompose and rewrite from the ground up Application Portfolio Funneling Process
  13. 13. Modernization CLOUD NATIVE REFACTOR CLOUD READY REPLATFORM CLOUD HOSTED REHOST • Microservice Architecture and Principals • API First Design • Design for failure • Apps unaffected by dependent service failure • Proactive testing for failure • Metrics and Monitoring baked-in • Cloud Agnostic runtime implementation • Adherence with 12-Factor App principles* • Horizontally scalable • Leverage platform for HA Containerize to gain infrastructure, platform and operational benefits • No file-system requirements or uses S3 API • Self contained app • Platform managed ports and addressing • Consume off platform services using platform semantics * We believe there are more like 15 “factors” that exemplify a true, “Cloud Native” application 0 Factors = Runs on PKS 4 -7 Factor = Runs on PAS 12-15 factors, Modern Microservices (App + Data); Runs well on PAS and/or PFS
  14. 14. What workloads should run on this abstraction ? CaaS(PKS) ● Stateful workloads ● Packaged software ● Short-lived apps / workloads ● Software distributed via Helm chart ● Apps using non-standard port behavior ● Legacy, zero-factor, apps PaaS(PAS) ● Custom-built software targeting Win or Linux ● Docker images ● Web applications ● APIs ● Batch jobs ● Streaming applications FaaS(PFS) ● Data change synchronization ● Static sites ● Simple APIs ● Real-time stream analytics/ enrichment ● Audits of infrastructure changes ● Notification engines IaaS(vSphere) ● Apps that need installed drivers, app/web server config ● Packaged software ● Virtual appliances ● Apps migrating from physical hardware ● VDEs ● Application platforms
  15. 15. Tools & Techniques
  16. 16. SNAP
  17. 17. App Foundry Automated suitability assessment and decisioning framework. A free tool from Pivotal to help accelerate good decision making along the path to PCF. Upload binary or map to source control Parsers for most common languages (Java, .NET) Extensible rules (100s available currently) UI dashboard to help triage decisioning Understand technical effort to move your app
  18. 18. Build Program Artifacts
  19. 19. Why is PCF the Best Place to run Spring Apps ?
  20. 20. Technique: Spring Bootification > Java Build Pack 1. For new Projects start with Spring Intiializr or Backup existing project 2. Review or Restructure Project Structure > Package as fat jar or war 3. Dependency Management to inject the right spring boot and spring cloud starters and the spring boot maven and gradle plugins 4. Create Spring Boot application by adding java main method in class annotated with @SpringBootApplication 5. Remove explicit dependency versions and rely on Spring Boot’s starter modules 6. Externalize Environment, Remove file Loggiing, Expose Actuators 7. Dependencies wired correctly in the cloud using Spring Cloud Connectors 8. Fix Spring application context startup errors - rinse and repeat 9. Get Tests working > Deploy to cloud > $$$
  21. 21. Build DockerFile based on WAS/WLS traditional image Code changes to enable a legacy application for CI/CD Migration from JDK 1.6 to JDK 1.8 Externalize Service, Logging Externalize WAS/WLS web app configuration Seamlessly deliver application updates Dockerization Volume Mount Externalization Websphere traditional helm chart
  22. 22. Technique: Java EE Buildpacks Liberty Buildpack ● Supports Java EE 8 and 7 applications ● Supports different application types Java EE archives (.war, .ear) ● Liberty archives that can include configuration data along with applications ● Standalone applications (.jar), etc. ● Runs on IBM SDK and supports OpenJDK ● Supported by IBM & available in the services marketplace JBOSS/Weblogic/Custom ● Runs JBOSS and WebLogic apps with minimal changes ● Support for autoconfiguration of resources ● JBoss buildpack kept in cadence with Java Buildpack ● Weblogic buildpack is a bit old in the tooth. Use K8s WL Operators instead to deploy to cloud. ● Create your own custom buildpack for an opininoated CI way to build a conatiner image with no app changes ● Fat jars to wrap your app server in the app and run it as a java app TomEE Buildpack ● Stages and runs Java EE compliant apps ● Supports EAR archives ● Supports autoconfiguration of Tomcat resources ● Updated in regular cadence with the Java Buildpack ● Minimal changes to the app
  23. 23. Tooling Links Dockerization Jib Cloud Native Buildpacks Spring Boot Migration Guide Redhat Application Migration Toolkit Migration Toolkit for Application Binaries IBM WebSphere Migration Toolkit IBM Cloud Transformation Advisor IntelliJ Dependency Analysis mvn dependency:tree Code That Writes Code with Atomist and Snyk
  24. 24. Demo
  25. 25. Monolithic Application : DayTrader https://github.com/WASdev/sample.daytrader7 ● DayTrader is an end-to-end benchmark and performance real world stock trading application. ● The application allows users to login, view their portfolio, lookup stock quotes, and buy or sell stock shares. ● DayTrader can be used to measure and compare the performance of Java EE servers with Apache JMeter ● The app contains a set of primitives used for functional and performance testing of Java EE components and common design patterns. ● DayTrader's design spans Java EE 7, including the WebSockets specification. ● Other Java EE features include JSPs, Servlets, EJBs, JPA, JDBC, JSF, CDI, Bean Validation, JSON, JMS, MDBs, and transactions.
  26. 26. Sleeping Demons
  27. 27. Cloud Programming Simplified: A Berkeley View on Serverless Computing https://bit.ly/2SAWSyD
  28. 28. Cover w/ Image Replatforming enables app and data movement Problem: Multinational consumer bank exploring hybrid architectures to do multichannel banking but most existing apps are on-premise, data monoliths. Solution: Modernized to microservices, and applied an Event mesh using PCF and Solace as backbone Solace bridges on-prem instances to temporary deployments in AWS to offload peak traffic Benefit: Enables new apps to access data from legacy & vice versa, supporting gradual modernization Reduces annual cost footprint by leveraging public cloud via hybrid-cloud architecture on demand Solace : Messaging with Purpose on Pivotal Cloud Foundry https://bit.ly/2JqUPZZ
  29. 29. Transforming How The World Builds Software © Copyright 2019 Pivotal Software, Inc. All rights Reserved.

×