SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Migrating a Monolithic App to
Microservices on Cloud Foundry
Brian K. Martin, Bluemix Architect,
@bkmartin
Tony Erwin, Bluemix UI Architect,
@tonyerwin
Agenda
• Introduction to the Bluemix UI
• Bluemix UI Microservices
Architecture
• Features for Cloud Foundry to
Support Microservices
@bkmartin @tonyerwin
Agenda
• Introduction to the Bluemix UI
• Bluemix UI Microservices
Architecture
• Features for Cloud Foundry to
Support Microservices
@bkmartin @tonyerwin
IBM Bluemix
• IBM Bluemix:
– Open-standards, cloud platform for
building, running, and managing apps
– PaaS layer built on CloudFoundry
• Bluemix UI is the front-end, providing
an alternative to the CF command
line
Bluemix UI
Home
Solutions (Marketing)
Pricing
Dashboard
Catalog
Orgs/Spaces
Bluemix UI Monolith
• Single-page application (SPA) to provide
desktop-like experience in the browser
• All HTML, CSS, and JavaScript loaded
within single web page and served from
a single Java app
• State-of-the-art not all that long ago
– Dojo + J2EE was the most common stack in
IBM when Bluemix UI dev started
– SPA still popular (AngularJS, Ember.js etc.)
Monolithic Architecture
HomeHome SolutionsSolutions CatalogCatalog DashboardDashboard PricingPricing
Orgs/
Spaces
Orgs/
Spaces
CF Cloud Controller (and other APIs)CF Cloud Controller (and other APIs)
SQL DBSQL DB
Bluemix UI Server
(Java)
Bluemix UI Server
(Java)
Bluemix UI (Client)
Bluemix PaaS
Challenges of Monolith
• How can we improve performance?
– Volume of client-side requests create
bottlenecks
• How do we integrate code from other
teams using different stacks?
• How can we push smaller changes as
they are ready?
• Where do we find developers with Dojo
experience?
• How can we improve SEO?
Agenda
• Introduction to the Bluemix UI
• Bluemix UI Microservices
Architecture
• Features for Cloud Foundry to
Support Microservices
@bkmartin @tonyerwin
Promises of Microservices
• Aids migration to more modern, lighter-weight stack without
starting over
• Improves performance and developer productivity
– Small services optimized for speed and page size
• Use simplest approach that works
• Bare bones HTML, CSS, JS
• Node.js w/ Dust.js server-side templates
– Easier to find answers on Google, easier to find skilled developers
• Allows more regular updates as loosely-coupled services can
deploy at their own schedule
– Teams use stack of their choosing
– Teams don’t have to wait on others
• Leads to improved SEO
– Proxy facilitates “clean” URLs
– Server side generation results in crawlable content
• Improves cross-team UI consistency via microservice
Phase 1
SolutionsSolutions
CatalogCatalog DashboardDashboard PricingPricing
Orgs/
Spaces
Orgs/
Spaces
CF Cloud Controller (and other APIs)CF Cloud Controller (and other APIs)
SQL
DB
SQL
DB
Bluemix UI Server
(Monolith)
Bluemix UI Server
(Monolith)
Bluemix UI (Client)
Bluemix PaaS
ProxyProxy
CommonCommon
Session
Store
Session
Store No SQLNo SQL
Msq
Queue
Msq
Queue MonitorMonitor
HomeHome
Composition w/
Microservicesheader
footer
inline
combined
CommonCommon
HomeHome
End Goal
HomeHome SolutionsSolutions CatalogCatalog DashboardDashboardPricingPricing Orgs/
Spaces
Orgs/
Spaces
CF Cloud Controller (and other APIs)CF Cloud Controller (and other APIs)
Bluemix UI (Client)
Bluemix PaaS
ProxyProxy
CommonCommon
Session
Store
Session
Store No SQLNo SQL
Msq
Queue
Msq
Queue MonitorMonitor
New Challenges
• More moving parts, more complexity
• Collecting federated status,
monitoring health of the system
• Seamless navigation with existing
monolith
• Developer skills (need to learn new
stack, but will ultimately be more
productive)
An Approach for Blue-Green – Just Change
Route on Proxy
Home
home-XXX.bluemix.net
Home
home-XXX.bluemix.net
Solutions
solutions-XXX.bluemix.net
Solutions
solutions-XXX.bluemix.net
Bluemix UI Server
classic-XXX.bluemix.net
Bluemix UI Server
classic-XXX.bluemix.net
ProxyProxy
Common
common-XXX.bluemix.net
Common
common-XXX.bluemix.net
Home
Home-YYY.bluemix.net
Home
Home-YYY.bluemix.net
Solutions
solutions-YYY.bluemix.net
Solutions
solutions-YYY.bluemix.net
Bluemix UI Server
classic-YYY.bluemix.net
Bluemix UI Server
classic-YYY.bluemix.net
ProxyProxy
Common
common-YYY.bluemix.net
Common
common-YYY.bluemix.net
RouterRouter
console.ng.bluemix.net console-YYY.ng.bluemix.net
Agenda
• Introduction to the Bluemix UI
• Bluemix UI Microservices
Architecture
• Features for Cloud Foundry to
Support Microservices
@bkmartin @tonyerwin
Context Path Routing
• bluemix.net/login ->
login.bluemix.net/login
• bluemix.net/account ->
account.bluemix.net/account
• To efficiently share user state
and allow individual
microservices to be updated
independently, we need a built-
in ability to bind context paths
to apps and have gorouter
Application Versions
• CF has no formal concept of an
application version
• Would it be helpful to add a formal
concept of version so that a given
application name can have many
versions installed formally
• Current way
– myapp-1.0  myapp-1.1
• The app name may be constantly
changing which is harder for mgmt,
Advanced Routing Policies
• When rolling out new versions
of microservices how can you
control which users are routed
to the new version?
• Advanced routing policies could
allow policies like random
selection of a percentage of the
popultion, specific user groups,
etc
“Private” Applications
• An ability to hide microservices
applications from public routing
• Applications to be declared
public or private
• SDN for a space or org
• How to authenticate/grant
access for routing
Composite Applications
• What if you want to understand the
health and status of your complete
microservice based application?
• A composite application could allow
applications to be grouped for status
and control (the latter seeming less
useful)
• Could simplify blue-green deployment
if multiple functions could be selected
simultaneously
Service Registry
• Need a new way to discover
the active endpoints for the
microservices rather then hard
coded paths and/or application
names
• Service registry should have live
status to allow fast failover to
alternative services
Performance and Monitoring
• When your application is broken
into many components,
monitoring the performance and
response time of each component
becomes even more important to
diagnose problems
• Common dashboards that can
aggregate stats from many
applications are required
Log Analysis for Problems
• Common log aggregation
platforms (ELK) solve most of
the problem but it has been
hard to correlate across
applications for a given user
• Solution: use common
correlators across your
microservices to track individual
users
Testing
• How to insure compatibility of
microservices as they are being
deployed
• Integrated to your CI/CD
pipeline, but is there anything
else that could be done?
IBM Bluemix
Free 30 day trial at http://www.bluemix.net
Email: bkmartin@us.ibm.com
Twitter: @bkmartin
Email: aerwin@us.ibm.com
Twitter: @tonyerwin

Contenu connexe

Plus de VMware Tanzu

Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchVMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - FrenchVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootVMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeVMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsVMware Tanzu
 
SpringOne Tour: Doing Progressive Delivery with your Team
SpringOne Tour: Doing Progressive Delivery with your TeamSpringOne Tour: Doing Progressive Delivery with your Team
SpringOne Tour: Doing Progressive Delivery with your TeamVMware Tanzu
 
SpringOne Tour: Make the Right Thing the Obvious Thing: The Journey to Intern...
SpringOne Tour: Make the Right Thing the Obvious Thing: The Journey to Intern...SpringOne Tour: Make the Right Thing the Obvious Thing: The Journey to Intern...
SpringOne Tour: Make the Right Thing the Obvious Thing: The Journey to Intern...VMware Tanzu
 
SpringOne Tour: An Introduction to Azure Spring Apps Enterprise
SpringOne Tour: An Introduction to Azure Spring Apps EnterpriseSpringOne Tour: An Introduction to Azure Spring Apps Enterprise
SpringOne Tour: An Introduction to Azure Spring Apps EnterpriseVMware Tanzu
 
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...VMware Tanzu
 
SpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and BeyondSpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and BeyondVMware Tanzu
 
SpringOne Tour 2023: Let's Get Streaming! A Guide to Orchestrating Spring Clo...
SpringOne Tour 2023: Let's Get Streaming! A Guide to Orchestrating Spring Clo...SpringOne Tour 2023: Let's Get Streaming! A Guide to Orchestrating Spring Clo...
SpringOne Tour 2023: Let's Get Streaming! A Guide to Orchestrating Spring Clo...VMware Tanzu
 
Tanzu Developer Connect | Public Sector | March 29, 2023.pdf
Tanzu Developer Connect | Public Sector | March 29, 2023.pdfTanzu Developer Connect | Public Sector | March 29, 2023.pdf
Tanzu Developer Connect | Public Sector | March 29, 2023.pdfVMware Tanzu
 

Plus de VMware Tanzu (20)

Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 
SpringOne Tour: Doing Progressive Delivery with your Team
SpringOne Tour: Doing Progressive Delivery with your TeamSpringOne Tour: Doing Progressive Delivery with your Team
SpringOne Tour: Doing Progressive Delivery with your Team
 
SpringOne Tour: Make the Right Thing the Obvious Thing: The Journey to Intern...
SpringOne Tour: Make the Right Thing the Obvious Thing: The Journey to Intern...SpringOne Tour: Make the Right Thing the Obvious Thing: The Journey to Intern...
SpringOne Tour: Make the Right Thing the Obvious Thing: The Journey to Intern...
 
SpringOne Tour: An Introduction to Azure Spring Apps Enterprise
SpringOne Tour: An Introduction to Azure Spring Apps EnterpriseSpringOne Tour: An Introduction to Azure Spring Apps Enterprise
SpringOne Tour: An Introduction to Azure Spring Apps Enterprise
 
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
 
SpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and BeyondSpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and Beyond
 
SpringOne Tour 2023: Let's Get Streaming! A Guide to Orchestrating Spring Clo...
SpringOne Tour 2023: Let's Get Streaming! A Guide to Orchestrating Spring Clo...SpringOne Tour 2023: Let's Get Streaming! A Guide to Orchestrating Spring Clo...
SpringOne Tour 2023: Let's Get Streaming! A Guide to Orchestrating Spring Clo...
 
Tanzu Developer Connect | Public Sector | March 29, 2023.pdf
Tanzu Developer Connect | Public Sector | March 29, 2023.pdfTanzu Developer Connect | Public Sector | March 29, 2023.pdf
Tanzu Developer Connect | Public Sector | March 29, 2023.pdf
 

Dernier

QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 

Dernier (20)

QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 

Cloud Foundry Summit 2015: Migrating a Monolithic App to Microservices on Cloud Foundry

  • 1. Migrating a Monolithic App to Microservices on Cloud Foundry Brian K. Martin, Bluemix Architect, @bkmartin Tony Erwin, Bluemix UI Architect, @tonyerwin
  • 2. Agenda • Introduction to the Bluemix UI • Bluemix UI Microservices Architecture • Features for Cloud Foundry to Support Microservices @bkmartin @tonyerwin
  • 3. Agenda • Introduction to the Bluemix UI • Bluemix UI Microservices Architecture • Features for Cloud Foundry to Support Microservices @bkmartin @tonyerwin
  • 4. IBM Bluemix • IBM Bluemix: – Open-standards, cloud platform for building, running, and managing apps – PaaS layer built on CloudFoundry • Bluemix UI is the front-end, providing an alternative to the CF command line
  • 6. Bluemix UI Monolith • Single-page application (SPA) to provide desktop-like experience in the browser • All HTML, CSS, and JavaScript loaded within single web page and served from a single Java app • State-of-the-art not all that long ago – Dojo + J2EE was the most common stack in IBM when Bluemix UI dev started – SPA still popular (AngularJS, Ember.js etc.)
  • 7. Monolithic Architecture HomeHome SolutionsSolutions CatalogCatalog DashboardDashboard PricingPricing Orgs/ Spaces Orgs/ Spaces CF Cloud Controller (and other APIs)CF Cloud Controller (and other APIs) SQL DBSQL DB Bluemix UI Server (Java) Bluemix UI Server (Java) Bluemix UI (Client) Bluemix PaaS
  • 8. Challenges of Monolith • How can we improve performance? – Volume of client-side requests create bottlenecks • How do we integrate code from other teams using different stacks? • How can we push smaller changes as they are ready? • Where do we find developers with Dojo experience? • How can we improve SEO?
  • 9. Agenda • Introduction to the Bluemix UI • Bluemix UI Microservices Architecture • Features for Cloud Foundry to Support Microservices @bkmartin @tonyerwin
  • 10. Promises of Microservices • Aids migration to more modern, lighter-weight stack without starting over • Improves performance and developer productivity – Small services optimized for speed and page size • Use simplest approach that works • Bare bones HTML, CSS, JS • Node.js w/ Dust.js server-side templates – Easier to find answers on Google, easier to find skilled developers • Allows more regular updates as loosely-coupled services can deploy at their own schedule – Teams use stack of their choosing – Teams don’t have to wait on others • Leads to improved SEO – Proxy facilitates “clean” URLs – Server side generation results in crawlable content • Improves cross-team UI consistency via microservice
  • 11. Phase 1 SolutionsSolutions CatalogCatalog DashboardDashboard PricingPricing Orgs/ Spaces Orgs/ Spaces CF Cloud Controller (and other APIs)CF Cloud Controller (and other APIs) SQL DB SQL DB Bluemix UI Server (Monolith) Bluemix UI Server (Monolith) Bluemix UI (Client) Bluemix PaaS ProxyProxy CommonCommon Session Store Session Store No SQLNo SQL Msq Queue Msq Queue MonitorMonitor HomeHome
  • 13. End Goal HomeHome SolutionsSolutions CatalogCatalog DashboardDashboardPricingPricing Orgs/ Spaces Orgs/ Spaces CF Cloud Controller (and other APIs)CF Cloud Controller (and other APIs) Bluemix UI (Client) Bluemix PaaS ProxyProxy CommonCommon Session Store Session Store No SQLNo SQL Msq Queue Msq Queue MonitorMonitor
  • 14. New Challenges • More moving parts, more complexity • Collecting federated status, monitoring health of the system • Seamless navigation with existing monolith • Developer skills (need to learn new stack, but will ultimately be more productive)
  • 15. An Approach for Blue-Green – Just Change Route on Proxy Home home-XXX.bluemix.net Home home-XXX.bluemix.net Solutions solutions-XXX.bluemix.net Solutions solutions-XXX.bluemix.net Bluemix UI Server classic-XXX.bluemix.net Bluemix UI Server classic-XXX.bluemix.net ProxyProxy Common common-XXX.bluemix.net Common common-XXX.bluemix.net Home Home-YYY.bluemix.net Home Home-YYY.bluemix.net Solutions solutions-YYY.bluemix.net Solutions solutions-YYY.bluemix.net Bluemix UI Server classic-YYY.bluemix.net Bluemix UI Server classic-YYY.bluemix.net ProxyProxy Common common-YYY.bluemix.net Common common-YYY.bluemix.net RouterRouter console.ng.bluemix.net console-YYY.ng.bluemix.net
  • 16. Agenda • Introduction to the Bluemix UI • Bluemix UI Microservices Architecture • Features for Cloud Foundry to Support Microservices @bkmartin @tonyerwin
  • 17. Context Path Routing • bluemix.net/login -> login.bluemix.net/login • bluemix.net/account -> account.bluemix.net/account • To efficiently share user state and allow individual microservices to be updated independently, we need a built- in ability to bind context paths to apps and have gorouter
  • 18. Application Versions • CF has no formal concept of an application version • Would it be helpful to add a formal concept of version so that a given application name can have many versions installed formally • Current way – myapp-1.0  myapp-1.1 • The app name may be constantly changing which is harder for mgmt,
  • 19. Advanced Routing Policies • When rolling out new versions of microservices how can you control which users are routed to the new version? • Advanced routing policies could allow policies like random selection of a percentage of the popultion, specific user groups, etc
  • 20. “Private” Applications • An ability to hide microservices applications from public routing • Applications to be declared public or private • SDN for a space or org • How to authenticate/grant access for routing
  • 21. Composite Applications • What if you want to understand the health and status of your complete microservice based application? • A composite application could allow applications to be grouped for status and control (the latter seeming less useful) • Could simplify blue-green deployment if multiple functions could be selected simultaneously
  • 22. Service Registry • Need a new way to discover the active endpoints for the microservices rather then hard coded paths and/or application names • Service registry should have live status to allow fast failover to alternative services
  • 23. Performance and Monitoring • When your application is broken into many components, monitoring the performance and response time of each component becomes even more important to diagnose problems • Common dashboards that can aggregate stats from many applications are required
  • 24. Log Analysis for Problems • Common log aggregation platforms (ELK) solve most of the problem but it has been hard to correlate across applications for a given user • Solution: use common correlators across your microservices to track individual users
  • 25. Testing • How to insure compatibility of microservices as they are being deployed • Integrated to your CI/CD pipeline, but is there anything else that could be done?
  • 26. IBM Bluemix Free 30 day trial at http://www.bluemix.net Email: bkmartin@us.ibm.com Twitter: @bkmartin Email: aerwin@us.ibm.com Twitter: @tonyerwin