SlideShare a Scribd company logo
1 of 46
Download to read offline
Application
Modernization
and Migration
Journey to the Cloud
oc whoami
$ oc whoami
rmarting, jromanmartin
$ oc describe user rmarting jromanmartin
Name: Jose Roman Martin Gil
Created: 41 years ago
Labels: father, husband, friend, runner, curious, red hatter,
developer (in any order)
Annotations: Senior Middleware Architect @ Red Hat
Identities:
mailto: rmarting@redhat.com
GitHub: https://github.com/rmarting
Twitter: https://twitter.com/jromanmartin
LinkedIn: https://www.linkedin.com/in/jromanmartin/
APPLICATION MODERNIZATION &
MIGRATION
DevOps !?
DON’T MIND ME
JUST SUPPORTING MY
DEVS
Devs Ops
Application Designs
Monoliths Microservices
Application Designs
Monoliths Microservices
Java and JavaEE still very relevant !?
Source: DZone 2017 “Java Development and Evolution” whitepaper
What does AMM mean?
APPLICATION MODERNIZATION & MIGRATION
What does AMM mean?
APPLICATION MODERNIZATION & MIGRATION
Focus on business workloads and solutions.
What does AMM mean?
APPLICATION MODERNIZATION & MIGRATION
Digital transformation. Journey to the future.
What does AMM mean?
APPLICATION MODERNIZATION & MIGRATION
Making old new again.
APPLICATION
Application Servers
Framework / APIs
App
Middleware Services
Operational Platform
App App App App App
Persistence | Security | Transaction | Messaging | HTTP
Deployment | Management | Monitoring | HA | Logging
Virtual Machine | Operating System
RUN
Brownfield
TRANSFORM
Greenfield
GROW
VIRTUALPHYSICAL PRIVATE & PUBLIC CLOUD
Complex &
heterogeneous
Lack of
common
standards
Inconsistent
automation
& governance
Typical Landscape Today
New problems to resolve
Without
adding more
complexity and
inconsistencies?
MODERNIZE
EXISTING APPS
DEVELOP NEW APPLICATIONS
THE MODERN WAY
MODERNIZATION
Why Modernize?
DISRUPTION
CUSTOMER
EMBRACE
BUSINESS
ADAPTS
DIGITAL
TRANSFORMATION
Why Modernize?
● Every business is a technology business
● Code has no business value until it’s deployed
● Scale and Speed challenges
● Competitive challenges
● Gain Business Agility
● Growth enablement
MIGRATION
Why Migrate?
There is not a “off button” for your Business
Applications
Why Migrate?
● Optimizing and streamlining existing application usage
● Unlocking more value from your IT investments
● Consolidate application instances
● Rehost or replatform the application to newer infrastructure
● Develop new application code to extend the life and utility of the legacy
application
● Convert and update existing code into new development languages
● Restructure application code to support a more modular, loosely coupled
services architecture
● Retire the existing packaged application and migrate to a new application
JOURNEY TO OPENSHIFT
Where would like to be?
● One platform to support you today and tomorrow
TRANSFORM
Greenfield
GROWRUN
Modernized brownfield
COMMON HYBRID APPLICATION INFRASTRUCTURE
BETTER
SOFTWARE
ARCHITECTURE
AGILE
INTEGRATION
STREAMLINE
APPLICATION
LIFECYCLE
CONTINUOUS
INNOVATION
MODERN APPLICATION CONCEPTS
OpenShift is the new Application Server
Runtime
App
Cloud Platform
Data
Build | Deploy | Scheduling | Scaling | Elasticity | Metrics | Logging
Security IMDG Messaging
Runtime
Svc
Runtime
Svc
Cloud Provider
How do it get it?
● How do we build and run applications in the new world?
● Strategy and methodology
● Containerization is not the only step
STRATEGIES
The 6 R’s
Source: https://aws.amazon.com/cloud-migration/
Decision Tree
Rehost (lift & shift)
Replatform (lift & reshape)
Repurchase
Refactor (rewrite & decouple)
Assess, review,
prioritize. Retire
Retain as is (for now)
?Existing
App
Out-of-scope application for the
migration.
End-of-life application and will not be
migrated.
Replacement planned for the application.
Enhancements on top of the
minimal changes.
(e.g. tech updates, mavenization,
re-architecture)
Minimal migration (as few
changes as possible).
Not a target
Highly scaled and
high rate of change
apps are candidates
Smaller or frozen apps
are candidates here
Patterns in Modernizing Applications
REHOST
(lift & shift)
● Containerize existing
workloads
● Deploy them on a PaaS
● Keep external integrations
and data on legacy
● Legacy applications have to
be well written and suited
REPLATFORM
(augment)
● Legacy remains intact
● New layer - new capabilities
● Deploy on PaaS
● New integration points
between legacy and new
layers (Need for Agile
Integration)
REFACTOR
(rewrite & decouple)
● Legacy is totally replaced
● New interfaces and data
● Use PaaS to run
● Some data and features can
be re-wrapped, but mostly
are retired.
Patterns in Modernizing Applications
Cost of Migration
Time
REHOST
(Lift and Shift)
REFACTOR
(Rewrite and Decouple)
REPLATFORM
(Augment with new Layers)
Generally the most
expensive and longest
Modern Application Concepts
Future-proof applications
BETTER
SOFTWARE
ARCHITECTURE
Modularize
“Fast moving monolith”
Microservices
Clean technical debt
Speed up your business
STREAMLINE
APPLICATION LIFECYCLE
Accelerate time
from idea to production
Continuous Integration &
Delivery (CI/CD)
Automation & self-service
Container technology
Foster an agile culture
CONTINUOUS
INNOVATION
Agile methodology
DevOps principles
Collaboration
Bridge old and new
AGILE
INTEGRATION
Decouple, expose & integrate
APIs, services & applications
Need hybrid-cloud-enabled
integration platform
Enhancing applications, platform and processes
CLOUD-READINESS
Cloud-Readiness
● “Cloud-Native”
○ Distinctive architectural characteristics
● “Cloud-Compatible”
○ Represents the minimum viable product
● “Cloud-Ready” / “Container-Ready” / “OpenShift-Ready”
● Not every application should / can / must be made “cloud-native”
○ Container-Ready is often enough
○ Primary focus on OpenShift adoption instead on high re-architecturing efforts
Cloud-Native Application Ideals
● Ability to handle dynamic scaling, load configuration in flexible ways, and
aggregate logs
● Dynamic discovery of dependencies
● Load balancing of requests to dependencies
● Enable application monitoring and distributed tracing
● Circuit breaker and and bulkhead patterns
● Feature toggles and health checks
Journey from Cloud-Compatible to Cloud-Native
● Start with Cloud-Compatible changes
○ Create support from external configurations
○ Remove IP bindings
○ Run on Linux
○ Ensure logs write to console/stdout
● Progress with subsequent iterations
● Actual end state should be dictated by the
needs of the business
CONTAINERIZING APPLICATIONS
What is Containerization?
● Packaging of a configured application and all its dependencies into a light,
portable, cloud-ready sandbox.
Containerization Challenges
Beyond the code
APPLICATIONS
Dependencies
Concurrency
Log and file system
State and persistence
Environment independance
Backing services
Port bindings
Automation
Admin processes
Configuration management
Application aggregation
Availability and reliability
Elastic scaling
Security
INFRASTRUCTURE
Application lifecycle
Application discovery
Log management
Monitoring and health
Knowledge governance
PROCESS
DEMO TIME
Demo Time - Show me the code
● Standard JEE Application
○ JPA + Hibernate to manage an external MySQL Database
○ JMS Queues to add more information to the application
○ MDB to load data from JMS Queues to store information into MySQL Database
○ Initial Servlets consuming extra startup time
● Main issues
○ Extra time to be ready after redeploy it
○ Monolithic architecture
Demo Time - Show me the code
● Migration
○ Package using Wildfly Swarm
○ Deploy using Maven Fabric8 Plug-In
○ Automate
○ Monitoring
○ Scale up/down
Demo Time - Wildfly Swarm
● An innovate approach to package and run Java EE applications
● Just enough App Server: package your app with required runtime
dependencies (but nothing more)
● Based in Wildfly Application Server
● Packaged as an Uber Jar (self-contained, executable Java archive)
Demo Time - Maven Fabric8 PlugIn
● Brings your Java applications on to Kubernetes and OpenShift
● Provides tight integration into Maven
● Focus on two tasks:
○ Building Docker Images
○ Creating Kubernetes and OpenShift resource descriptors
Demo Time - Show me the code
● Modernization
○ Deploy Messaging Services
○ Deploy Integration Services
○ Deploy CronJobs
○ Remove old operations in monolithic application
○
Questions?
Thank you!

More Related Content

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

Featured

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

OpenShift Meetup - Application modernization and migration

  • 2. oc whoami $ oc whoami rmarting, jromanmartin $ oc describe user rmarting jromanmartin Name: Jose Roman Martin Gil Created: 41 years ago Labels: father, husband, friend, runner, curious, red hatter, developer (in any order) Annotations: Senior Middleware Architect @ Red Hat Identities: mailto: rmarting@redhat.com GitHub: https://github.com/rmarting Twitter: https://twitter.com/jromanmartin LinkedIn: https://www.linkedin.com/in/jromanmartin/
  • 4. DevOps !? DON’T MIND ME JUST SUPPORTING MY DEVS Devs Ops
  • 7. Java and JavaEE still very relevant !? Source: DZone 2017 “Java Development and Evolution” whitepaper
  • 8. What does AMM mean? APPLICATION MODERNIZATION & MIGRATION
  • 9. What does AMM mean? APPLICATION MODERNIZATION & MIGRATION Focus on business workloads and solutions.
  • 10. What does AMM mean? APPLICATION MODERNIZATION & MIGRATION Digital transformation. Journey to the future.
  • 11. What does AMM mean? APPLICATION MODERNIZATION & MIGRATION Making old new again.
  • 13. Application Servers Framework / APIs App Middleware Services Operational Platform App App App App App Persistence | Security | Transaction | Messaging | HTTP Deployment | Management | Monitoring | HA | Logging Virtual Machine | Operating System
  • 14. RUN Brownfield TRANSFORM Greenfield GROW VIRTUALPHYSICAL PRIVATE & PUBLIC CLOUD Complex & heterogeneous Lack of common standards Inconsistent automation & governance Typical Landscape Today
  • 15. New problems to resolve Without adding more complexity and inconsistencies? MODERNIZE EXISTING APPS DEVELOP NEW APPLICATIONS THE MODERN WAY
  • 18. Why Modernize? ● Every business is a technology business ● Code has no business value until it’s deployed ● Scale and Speed challenges ● Competitive challenges ● Gain Business Agility ● Growth enablement
  • 20. Why Migrate? There is not a “off button” for your Business Applications
  • 21. Why Migrate? ● Optimizing and streamlining existing application usage ● Unlocking more value from your IT investments ● Consolidate application instances ● Rehost or replatform the application to newer infrastructure ● Develop new application code to extend the life and utility of the legacy application ● Convert and update existing code into new development languages ● Restructure application code to support a more modular, loosely coupled services architecture ● Retire the existing packaged application and migrate to a new application
  • 23. Where would like to be? ● One platform to support you today and tomorrow TRANSFORM Greenfield GROWRUN Modernized brownfield COMMON HYBRID APPLICATION INFRASTRUCTURE BETTER SOFTWARE ARCHITECTURE AGILE INTEGRATION STREAMLINE APPLICATION LIFECYCLE CONTINUOUS INNOVATION MODERN APPLICATION CONCEPTS
  • 24. OpenShift is the new Application Server Runtime App Cloud Platform Data Build | Deploy | Scheduling | Scaling | Elasticity | Metrics | Logging Security IMDG Messaging Runtime Svc Runtime Svc Cloud Provider
  • 25. How do it get it? ● How do we build and run applications in the new world? ● Strategy and methodology ● Containerization is not the only step
  • 27. The 6 R’s Source: https://aws.amazon.com/cloud-migration/
  • 28. Decision Tree Rehost (lift & shift) Replatform (lift & reshape) Repurchase Refactor (rewrite & decouple) Assess, review, prioritize. Retire Retain as is (for now) ?Existing App Out-of-scope application for the migration. End-of-life application and will not be migrated. Replacement planned for the application. Enhancements on top of the minimal changes. (e.g. tech updates, mavenization, re-architecture) Minimal migration (as few changes as possible). Not a target Highly scaled and high rate of change apps are candidates Smaller or frozen apps are candidates here
  • 29. Patterns in Modernizing Applications REHOST (lift & shift) ● Containerize existing workloads ● Deploy them on a PaaS ● Keep external integrations and data on legacy ● Legacy applications have to be well written and suited REPLATFORM (augment) ● Legacy remains intact ● New layer - new capabilities ● Deploy on PaaS ● New integration points between legacy and new layers (Need for Agile Integration) REFACTOR (rewrite & decouple) ● Legacy is totally replaced ● New interfaces and data ● Use PaaS to run ● Some data and features can be re-wrapped, but mostly are retired.
  • 30. Patterns in Modernizing Applications Cost of Migration Time REHOST (Lift and Shift) REFACTOR (Rewrite and Decouple) REPLATFORM (Augment with new Layers) Generally the most expensive and longest
  • 31. Modern Application Concepts Future-proof applications BETTER SOFTWARE ARCHITECTURE Modularize “Fast moving monolith” Microservices Clean technical debt Speed up your business STREAMLINE APPLICATION LIFECYCLE Accelerate time from idea to production Continuous Integration & Delivery (CI/CD) Automation & self-service Container technology Foster an agile culture CONTINUOUS INNOVATION Agile methodology DevOps principles Collaboration Bridge old and new AGILE INTEGRATION Decouple, expose & integrate APIs, services & applications Need hybrid-cloud-enabled integration platform Enhancing applications, platform and processes
  • 33. Cloud-Readiness ● “Cloud-Native” ○ Distinctive architectural characteristics ● “Cloud-Compatible” ○ Represents the minimum viable product ● “Cloud-Ready” / “Container-Ready” / “OpenShift-Ready” ● Not every application should / can / must be made “cloud-native” ○ Container-Ready is often enough ○ Primary focus on OpenShift adoption instead on high re-architecturing efforts
  • 34. Cloud-Native Application Ideals ● Ability to handle dynamic scaling, load configuration in flexible ways, and aggregate logs ● Dynamic discovery of dependencies ● Load balancing of requests to dependencies ● Enable application monitoring and distributed tracing ● Circuit breaker and and bulkhead patterns ● Feature toggles and health checks
  • 35. Journey from Cloud-Compatible to Cloud-Native ● Start with Cloud-Compatible changes ○ Create support from external configurations ○ Remove IP bindings ○ Run on Linux ○ Ensure logs write to console/stdout ● Progress with subsequent iterations ● Actual end state should be dictated by the needs of the business
  • 37. What is Containerization? ● Packaging of a configured application and all its dependencies into a light, portable, cloud-ready sandbox.
  • 38. Containerization Challenges Beyond the code APPLICATIONS Dependencies Concurrency Log and file system State and persistence Environment independance Backing services Port bindings Automation Admin processes Configuration management Application aggregation Availability and reliability Elastic scaling Security INFRASTRUCTURE Application lifecycle Application discovery Log management Monitoring and health Knowledge governance PROCESS
  • 40. Demo Time - Show me the code ● Standard JEE Application ○ JPA + Hibernate to manage an external MySQL Database ○ JMS Queues to add more information to the application ○ MDB to load data from JMS Queues to store information into MySQL Database ○ Initial Servlets consuming extra startup time ● Main issues ○ Extra time to be ready after redeploy it ○ Monolithic architecture
  • 41. Demo Time - Show me the code ● Migration ○ Package using Wildfly Swarm ○ Deploy using Maven Fabric8 Plug-In ○ Automate ○ Monitoring ○ Scale up/down
  • 42. Demo Time - Wildfly Swarm ● An innovate approach to package and run Java EE applications ● Just enough App Server: package your app with required runtime dependencies (but nothing more) ● Based in Wildfly Application Server ● Packaged as an Uber Jar (self-contained, executable Java archive)
  • 43. Demo Time - Maven Fabric8 PlugIn ● Brings your Java applications on to Kubernetes and OpenShift ● Provides tight integration into Maven ● Focus on two tasks: ○ Building Docker Images ○ Creating Kubernetes and OpenShift resource descriptors
  • 44. Demo Time - Show me the code ● Modernization ○ Deploy Messaging Services ○ Deploy Integration Services ○ Deploy CronJobs ○ Remove old operations in monolithic application ○