SlideShare a Scribd company logo
1 of 21
Cloud-Native and Microservices
Accelerate Process Improvements at a
Major U.S. Airline
Shahir A. Daya | IBM Distinguished Engineer
DeveloperWeek 2020 | 14th February, 2020
Email: sdaya@ca.ibm.com
Twitter: @ShahirDaya
2
• What are Microservices and why use them?
• The American Airlines challenge
• Our transformation journey is yielding results
• Lessons Learned
Agenda
3
What are
Microservices and
why use them?
4
An engineering approach focused on decomposing an application into
single-function modules with well defined interfaces which are independently
deployed and operated by small teams who own the entire lifecycle of the
service.
Microservices accelerate delivery by minimizing communication and
coordination between people while reducing the scope and risk of change.
Microservices is an architectural style
5
Benefits of the
Microservices
architectural style
Microservices provide value benefit
through:
1.Selective granular scaling provides
optimization across all layers of the
stack
2.Componentization isolates risks,
defects and outages, resulting in
greater fault tolerance
3.Designed for fast & frequent change;
unleashed polyglot programming
2Fault Isolation
Resilience
1 Scale
Scale at Size
3 Agility
Innovation
Lightweight SW code, focused on doing
one function well
Functionally & operationally self-contained
Minimal interdependencies with other
components
Deployed, Maintained, Managed, Scaled
independently
“Open” - can be run on bare OS,
Container, Foundry etc
Interoperability – REST API is typical
interfacing mechanism
Every Microservice can be developed in a
different programming language
With thoughtful implementation of well-accepted design
patterns, enables highly resilient systems
4Polyglot
Flexibility
5Teams work
independently
Distributed
6
Tenets of the Microservices Architectural style
Large monoliths
are broken down
into many small
services
Services are
optimized for a
single function
Communication
via REST API
and message
brokers
Per-service
continuous
integration and
continuous
deployment
(CI/CD)
Per-service high
availability (HA)
and clustering
decisions
Each service runs in its
own process
One service per
container
There is only one
business function per
service
The Single
Responsibility Principle
(A microservice should
have one, and only
one, reason to change)
Avoid tight coupling
introduced by
communication through
a database
Services evolve at
different rates
You let the system
evolve but set
architectural principles
to guide that evolution
One size or scaling
policy is not appropriate
for all
Not all services need to
scale; others require
autoscaling up to large
numbers
7
The American
Airlines challenge
8
The Problem Statement
The AA team
wants to adopt Agile
methods but is
hampered by the
technology used in
the website, the
complexity of the
applications, the
difficulty to perform
regression tests on
the applications,
and the
organizational
structure of the
team.
The current AA.com
website is a
monolithic Java
application hosted
on 80 Tomcat
servers. The same
feature/functions
were developed
separately for the
various channels
that resulted in
duplicate code.
The applications
are difficult to
extend and not up
to date with modern
application
development
frameworks or
approaches. 80% of
effort to maintain
current Apps.
Their hosting
provider(s) were
reaching EOL on
their hardware
platform, and AA
was facing a huge
capital cost just to
keep doing the
same old thing…
©2018 IBM Corporation 15 February 2020 IBM Services9
This is what we set out to do… Transform
using an Agile method and DevOps approach,
the existing AA.com, mobile apps, and kiosks
to a more modern application architecture,
running on IBM Cloud, enabling agility in
continuous innovation and at the same time
transforming the current AA siloed
development organization to a modern one.
This is what we set out to do…
10
Microservices Patterns
11
The Strangler pattern is used to transform existing monolithic
applications incrementally towards Microservices
Transform Coexist Eliminate
Create a parallel new
site (for example, in
IBM Cloud or even in
your existing
environment but
based on more
modern approaches).
Leave the existing
site where it is for a
time. Redirect from
the existing site to
the new one so the
functionality is
implemented
incrementally.
Remove the old
functionality from the
existing site (or
simply stop
maintaining it) as
traffic is redirected
away from that
portion of the old site.
12
Site Transition and the Strangler Pattern
13
Transitional Architecture
14
IBM Garage Method for Cloud Organizational Practices
• The project followed the IBM Garage Method for Cloud based on XP and Lean Startup (e.g.
squads, pair programming, TDD, etc.)
• A Squad in the is a small, autonomous team that has responsibility for the development and
delivery of major features (described as Epics)
• A Squad has a Squad Leader who has overall responsibility for the functioning of the Squad.
They serve as an Anchor Developer and (in new squads) also as an Agile Coach.
• We have the following structure
– Multiple Build Squads to own and develop the site functionality including logging, automated tests, monitoring
definitions, and runbooks
– Build Squads will also be responsible for support and enhancements for the epics they develop
– One Platform Run Squad that Monitors and Manages the ongoing site operations
– One Leadership and Coaching Squad to provide architectural and subject matter guidance
15
Build Squad Structure
16
Service Management Tool Chain – High level solution
17
Our transformation
journey is yielding
results
18
https://www.youtube.com/watch?v=t1PgNr8VMLc
19
Lessons Learned
20
1. Designing the squad is just as important as designing the product
2. Keep build squads small - ideally 8-10 people
3. Start with 3 pairs of developers and increase to 4 only when mature
4. Pair programming only works when the “experienced” person pairing has the
personality and inclination to teach the “newbies”
5. Squad Leads must be as much a teacher and coach as they are dev lead
6. Have an SRE pair as part of the squad
7. Give these full-stack co-located squads end-to-end ownership
8. Fail-small, fail-fast
9. Automate everything
10. Always deploy
11. Just enough architecture
Lessons Learned
2121 21
Thank you
Shahir A. Daya
IBM Distinguished Engineer
—
sdaya@ca.ibm.com
+1-416-670-3448
ibm.com

More Related Content

What's hot

Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...MuleSoft
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...Sanjeev Sharma
 
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...Angel Alberici
 
Automating and Accelerating Application Deployments to IBM WebSphere without ...
Automating and Accelerating Application Deployments to IBM WebSphere without ...Automating and Accelerating Application Deployments to IBM WebSphere without ...
Automating and Accelerating Application Deployments to IBM WebSphere without ...XebiaLabs
 
Building a World-Class Software Product Team in India
Building a World-Class Software Product Team in IndiaBuilding a World-Class Software Product Team in India
Building a World-Class Software Product Team in IndiaSanjeev Kumar
 
Leading DevOps Application Release and Deployment - Best Practices for Organi...
Leading DevOps Application Release and Deployment - Best Practices for Organi...Leading DevOps Application Release and Deployment - Best Practices for Organi...
Leading DevOps Application Release and Deployment - Best Practices for Organi...IBM UrbanCode Products
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesIBM UrbanCode Products
 
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackAccelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackBob Sokol
 
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with BluemixAdopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with BluemixIBM UrbanCode Products
 
Rapid Application Development using FOSS
Rapid Application Development using FOSSRapid Application Development using FOSS
Rapid Application Development using FOSSSanjay Patel
 
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm KeynoteUnicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm KeynoteSanjeev Sharma
 
Improving Software Delivery with DevOps & Software Defined Environments | The...
Improving Software Delivery with DevOps & Software Defined Environments | The...Improving Software Delivery with DevOps & Software Defined Environments | The...
Improving Software Delivery with DevOps & Software Defined Environments | The...IBM UrbanCode Products
 
Security and DevOps - Managing Security in a DevOps Enterprise
Security and DevOps - Managing Security in a DevOps EnterpriseSecurity and DevOps - Managing Security in a DevOps Enterprise
Security and DevOps - Managing Security in a DevOps EnterpriseClaudia Ring
 
Hybrid Cloud DevOps with Apprenda and UrbanCode Deploy
Hybrid Cloud DevOps with Apprenda and UrbanCode DeployHybrid Cloud DevOps with Apprenda and UrbanCode Deploy
Hybrid Cloud DevOps with Apprenda and UrbanCode DeployClaudia Ring
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleSanjeev Sharma
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...IBM UrbanCode Products
 
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode DeployContinuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode DeployIBM UrbanCode Products
 
Applying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesApplying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesKartik Kanakasabesan
 

What's hot (20)

Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
 
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
 
Automating and Accelerating Application Deployments to IBM WebSphere without ...
Automating and Accelerating Application Deployments to IBM WebSphere without ...Automating and Accelerating Application Deployments to IBM WebSphere without ...
Automating and Accelerating Application Deployments to IBM WebSphere without ...
 
Building a World-Class Software Product Team in India
Building a World-Class Software Product Team in IndiaBuilding a World-Class Software Product Team in India
Building a World-Class Software Product Team in India
 
Evans Data DevRel 2016
Evans Data DevRel 2016 Evans Data DevRel 2016
Evans Data DevRel 2016
 
Leading DevOps Application Release and Deployment - Best Practices for Organi...
Leading DevOps Application Release and Deployment - Best Practices for Organi...Leading DevOps Application Release and Deployment - Best Practices for Organi...
Leading DevOps Application Release and Deployment - Best Practices for Organi...
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT Challenges
 
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackAccelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
 
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with BluemixAdopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
 
Rapid Application Development using FOSS
Rapid Application Development using FOSSRapid Application Development using FOSS
Rapid Application Development using FOSS
 
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm KeynoteUnicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
 
Improving Software Delivery with DevOps & Software Defined Environments | The...
Improving Software Delivery with DevOps & Software Defined Environments | The...Improving Software Delivery with DevOps & Software Defined Environments | The...
Improving Software Delivery with DevOps & Software Defined Environments | The...
 
Security and DevOps - Managing Security in a DevOps Enterprise
Security and DevOps - Managing Security in a DevOps EnterpriseSecurity and DevOps - Managing Security in a DevOps Enterprise
Security and DevOps - Managing Security in a DevOps Enterprise
 
Hybrid Cloud DevOps with Apprenda and UrbanCode Deploy
Hybrid Cloud DevOps with Apprenda and UrbanCode DeployHybrid Cloud DevOps with Apprenda and UrbanCode Deploy
Hybrid Cloud DevOps with Apprenda and UrbanCode Deploy
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scale
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
 
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode DeployContinuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
 
Death to Manual Deployments
Death to Manual DeploymentsDeath to Manual Deployments
Death to Manual Deployments
 
Applying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesApplying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomes
 

Similar to DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improvements at a Major U.S. Airline

Automation, Audits, and Apps Tour
Automation, Audits, and Apps TourAutomation, Audits, and Apps Tour
Automation, Audits, and Apps TourChef
 
PureApp Hybrid Cloud - Mark Willemse ING Presentation 11th September 2014
PureApp Hybrid Cloud - Mark Willemse ING Presentation 11th September 2014PureApp Hybrid Cloud - Mark Willemse ING Presentation 11th September 2014
PureApp Hybrid Cloud - Mark Willemse ING Presentation 11th September 2014IBM Systems UKI
 
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?Phuong Mai Nguyen
 
Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020VMware Tanzu
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final finalgaurav shukla
 
Automation, Audits, and Apps Tour
Automation, Audits, and Apps TourAutomation, Audits, and Apps Tour
Automation, Audits, and Apps TourChef
 
Introduction to Cloud Native Computing
Introduction to Cloud Native ComputingIntroduction to Cloud Native Computing
Introduction to Cloud Native ComputingSaju Thomas
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.PLovababu
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIvravi123
 
AmaleswaraRao_DOTNET
AmaleswaraRao_DOTNETAmaleswaraRao_DOTNET
AmaleswaraRao_DOTNETAmal J
 
Application Darwinism - Why Most Enterprise Apps Will Evolve to the Cloud
Application Darwinism - Why Most Enterprise Apps Will Evolve to the CloudApplication Darwinism - Why Most Enterprise Apps Will Evolve to the Cloud
Application Darwinism - Why Most Enterprise Apps Will Evolve to the CloudSkytap Cloud
 
Enterprise DevOps Transformation
Enterprise DevOps TransformationEnterprise DevOps Transformation
Enterprise DevOps TransformationBart Driscoll
 
Naveen_Resume1
Naveen_Resume1Naveen_Resume1
Naveen_Resume1Naveen K K
 
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)Serena Software
 

Similar to DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improvements at a Major U.S. Airline (20)

Automation, Audits, and Apps Tour
Automation, Audits, and Apps TourAutomation, Audits, and Apps Tour
Automation, Audits, and Apps Tour
 
PureApp Hybrid Cloud - Mark Willemse ING Presentation 11th September 2014
PureApp Hybrid Cloud - Mark Willemse ING Presentation 11th September 2014PureApp Hybrid Cloud - Mark Willemse ING Presentation 11th September 2014
PureApp Hybrid Cloud - Mark Willemse ING Presentation 11th September 2014
 
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
AWS Community Day: From Monolith to Microservices - What Could Go Wrong?
 
Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final final
 
Automation, Audits, and Apps Tour
Automation, Audits, and Apps TourAutomation, Audits, and Apps Tour
Automation, Audits, and Apps Tour
 
Introduction to Cloud Native Computing
Introduction to Cloud Native ComputingIntroduction to Cloud Native Computing
Introduction to Cloud Native Computing
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Enterprise Agile at Lockheed Martin - 4th February 2014
Enterprise Agile at Lockheed Martin - 4th February 2014Enterprise Agile at Lockheed Martin - 4th February 2014
Enterprise Agile at Lockheed Martin - 4th February 2014
 
Deploy tools research
Deploy tools researchDeploy tools research
Deploy tools research
 
Resume
ResumeResume
Resume
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITI
 
AmaleswaraRao_DOTNET
AmaleswaraRao_DOTNETAmaleswaraRao_DOTNET
AmaleswaraRao_DOTNET
 
Application Darwinism - Why Most Enterprise Apps Will Evolve to the Cloud
Application Darwinism - Why Most Enterprise Apps Will Evolve to the CloudApplication Darwinism - Why Most Enterprise Apps Will Evolve to the Cloud
Application Darwinism - Why Most Enterprise Apps Will Evolve to the Cloud
 
Giri_WCS
Giri_WCSGiri_WCS
Giri_WCS
 
Enterprise DevOps Transformation
Enterprise DevOps TransformationEnterprise DevOps Transformation
Enterprise DevOps Transformation
 
Naveen_Resume1
Naveen_Resume1Naveen_Resume1
Naveen_Resume1
 
MohamedSalah-Resume
MohamedSalah-ResumeMohamedSalah-Resume
MohamedSalah-Resume
 
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
 

Recently uploaded

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 

Recently uploaded (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 

DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improvements at a Major U.S. Airline

  • 1. Cloud-Native and Microservices Accelerate Process Improvements at a Major U.S. Airline Shahir A. Daya | IBM Distinguished Engineer DeveloperWeek 2020 | 14th February, 2020 Email: sdaya@ca.ibm.com Twitter: @ShahirDaya
  • 2. 2 • What are Microservices and why use them? • The American Airlines challenge • Our transformation journey is yielding results • Lessons Learned Agenda
  • 4. 4 An engineering approach focused on decomposing an application into single-function modules with well defined interfaces which are independently deployed and operated by small teams who own the entire lifecycle of the service. Microservices accelerate delivery by minimizing communication and coordination between people while reducing the scope and risk of change. Microservices is an architectural style
  • 5. 5 Benefits of the Microservices architectural style Microservices provide value benefit through: 1.Selective granular scaling provides optimization across all layers of the stack 2.Componentization isolates risks, defects and outages, resulting in greater fault tolerance 3.Designed for fast & frequent change; unleashed polyglot programming 2Fault Isolation Resilience 1 Scale Scale at Size 3 Agility Innovation Lightweight SW code, focused on doing one function well Functionally & operationally self-contained Minimal interdependencies with other components Deployed, Maintained, Managed, Scaled independently “Open” - can be run on bare OS, Container, Foundry etc Interoperability – REST API is typical interfacing mechanism Every Microservice can be developed in a different programming language With thoughtful implementation of well-accepted design patterns, enables highly resilient systems 4Polyglot Flexibility 5Teams work independently Distributed
  • 6. 6 Tenets of the Microservices Architectural style Large monoliths are broken down into many small services Services are optimized for a single function Communication via REST API and message brokers Per-service continuous integration and continuous deployment (CI/CD) Per-service high availability (HA) and clustering decisions Each service runs in its own process One service per container There is only one business function per service The Single Responsibility Principle (A microservice should have one, and only one, reason to change) Avoid tight coupling introduced by communication through a database Services evolve at different rates You let the system evolve but set architectural principles to guide that evolution One size or scaling policy is not appropriate for all Not all services need to scale; others require autoscaling up to large numbers
  • 8. 8 The Problem Statement The AA team wants to adopt Agile methods but is hampered by the technology used in the website, the complexity of the applications, the difficulty to perform regression tests on the applications, and the organizational structure of the team. The current AA.com website is a monolithic Java application hosted on 80 Tomcat servers. The same feature/functions were developed separately for the various channels that resulted in duplicate code. The applications are difficult to extend and not up to date with modern application development frameworks or approaches. 80% of effort to maintain current Apps. Their hosting provider(s) were reaching EOL on their hardware platform, and AA was facing a huge capital cost just to keep doing the same old thing…
  • 9. ©2018 IBM Corporation 15 February 2020 IBM Services9 This is what we set out to do… Transform using an Agile method and DevOps approach, the existing AA.com, mobile apps, and kiosks to a more modern application architecture, running on IBM Cloud, enabling agility in continuous innovation and at the same time transforming the current AA siloed development organization to a modern one. This is what we set out to do…
  • 11. 11 The Strangler pattern is used to transform existing monolithic applications incrementally towards Microservices Transform Coexist Eliminate Create a parallel new site (for example, in IBM Cloud or even in your existing environment but based on more modern approaches). Leave the existing site where it is for a time. Redirect from the existing site to the new one so the functionality is implemented incrementally. Remove the old functionality from the existing site (or simply stop maintaining it) as traffic is redirected away from that portion of the old site.
  • 12. 12 Site Transition and the Strangler Pattern
  • 14. 14 IBM Garage Method for Cloud Organizational Practices • The project followed the IBM Garage Method for Cloud based on XP and Lean Startup (e.g. squads, pair programming, TDD, etc.) • A Squad in the is a small, autonomous team that has responsibility for the development and delivery of major features (described as Epics) • A Squad has a Squad Leader who has overall responsibility for the functioning of the Squad. They serve as an Anchor Developer and (in new squads) also as an Agile Coach. • We have the following structure – Multiple Build Squads to own and develop the site functionality including logging, automated tests, monitoring definitions, and runbooks – Build Squads will also be responsible for support and enhancements for the epics they develop – One Platform Run Squad that Monitors and Manages the ongoing site operations – One Leadership and Coaching Squad to provide architectural and subject matter guidance
  • 16. 16 Service Management Tool Chain – High level solution
  • 20. 20 1. Designing the squad is just as important as designing the product 2. Keep build squads small - ideally 8-10 people 3. Start with 3 pairs of developers and increase to 4 only when mature 4. Pair programming only works when the “experienced” person pairing has the personality and inclination to teach the “newbies” 5. Squad Leads must be as much a teacher and coach as they are dev lead 6. Have an SRE pair as part of the squad 7. Give these full-stack co-located squads end-to-end ownership 8. Fail-small, fail-fast 9. Automate everything 10. Always deploy 11. Just enough architecture Lessons Learned
  • 21. 2121 21 Thank you Shahir A. Daya IBM Distinguished Engineer — sdaya@ca.ibm.com +1-416-670-3448 ibm.com

Editor's Notes

  1. The squad model, originally formulated by Spotify, formalized several Agile team organization best practices that were nascent in the industry. The fundamental unit of the squad model is the squad, a small (usually ten people or fewer), co-located, autonomous team made up of a set of development pairs. Squad Lead is a pivotal role. They act as an anchor developer and as an Agile coach in a player/coach role. They pair with development team members and mentor the entire team in best practices. Teams need a dedicated Product Owner to formulate User Stories and own the backlog Squads own Epics – groups of related User Stories - from birth to retirement.
  2. https://www.youtube.com/watch?v=t1PgNr8VMLc