Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf

Kief Morris
Kief MorrisCloud Practice Lead, Author of Infrastructure as Code um ThoughtWorks
© 2023 Thoughtworks
Taming Cloud Sprawl
with a Composable Environment
Architecture
Kief Morris
© 2023 Thoughtworks
"Scale at
all costs"
The path to the cloud age
2
"Grow
sustainably"
"Move fast and
break things"
Business
Tech
Iron Age
of IT
Business
Digital
Age of
Shadow IT
Tech
Business
and Tech
Cloud Age
"Technology is
not core"
Business
Digital
Age of
Digital
Sprawl
Digital
Digital
Tech
© 2023 Thoughtworks
Infrastructure enables value
3
Infrastructure strategy
Value to customer
Drive design and
implementation
Enable value
© 2023 Thoughtworks
Distance between value and infrastructure
4
Infrastructure strategy
Value to customer
Engineering strategy
Product strategy
Organizational strategy
Drive design and
implementation
Enable value
© 2023 Thoughtworks
Is cloud our infrastructure strategy?
https://www.lastweekinaws.com/blog/the-17-ways-to-run-containers-on-aws/
"17 ways to run a container on AWS"
"17 More Ways to Run Containers on AWS"
https://www.lastweekinaws.com/blog/17-more-ways-to-run-containers-on-aws/
"17 Final Ways to Run Containers"
https://www.lastweekinaws.com/blog/17-Final-Ways-to-Run-Containers/
© 2023 Thoughtworks
Is cloud our infrastructure strategy?
https://landscape.cncf.io/
Cloud Native Computing Foundation Landscape
© 2023 Thoughtworks
https://landscape.cncf.io/
Cloud Native Computing Foundation Landscape
🎩 David Bell @dastbe
© 2023 Thoughtworks
Is cloud our infrastructure strategy?
8
Cloud is the start of an infrastructure strategy
© 2023 Thoughtworks
How does infrastructure support organization strategy?
© 2022 Thoughtworks
Add users
Add products
Grow the business Sustain the business
Operational quality and confidence
© 2023 Thoughtworks
Infrastructure capabilities
© 2022 Thoughtworks
Ensure
compliance
Manage cost
of ownership
Provide
customer
environments
Add users
Provide
delivery
environments
Add products
Grow the business Sustain the business
Operational quality and confidence
© 2023 Thoughtworks
Measuring infrastructure capabilities
© 2022 Thoughtworks
Add users
Add products
Grow the business
Ensure
compliance
Provide
delivery
environments
Manage cost
of ownership
Provide
customer
environments
Sustain the business
Operational quality and confidence
Software delivery metrics (4 key metrics)
Time and effort to set up for a new product
Time and effort to integrated an acquired product
© 2023 Thoughtworks
Measuring infrastructure capabilities
© 2022 Thoughtworks
Add users
Add products
Grow the business
Ensure
compliance
Provide
delivery
environments
Manage cost
of ownership
Sustain the business
Operational quality and confidence
Provide
customer
environments
Time and effort to set up a new customer environment
Incremental ownership cost of each environment
© 2023 Thoughtworks
Measuring infrastructure capabilities
© 2022 Thoughtworks
Add users
Add products
Grow the business
Ensure
compliance
Provide
delivery
environments
Sustain the business
Operational quality and confidence
Provide
customer
environments
Incremental ownership cost (per product, customer, …)
Variation across environments (technical debt)
Manage cost
of ownership
Time and effort to update
© 2023 Thoughtworks
Environment architecture
© 2023 Thoughtworks
How to provide infrastructure to multiple product
development teams
Environment
Infrastructure
Software Web Storefront Mobile Apps Product Admin
Catalog Shopping Checkout Customer
© 2023 Thoughtworks
Monolithic environment design antipattern
Environment is defined,
provisioned, and managed as
a single architectural unit.
The antipattern:
Infrastructure is owned by a
single team (Conway's Law).
Simple way to start, grows
organically.
Why:
Infrastructure
team
Environment
Lower effectiveness of
infrastructure change
delivery due to scope of
each change
Slower time to value for
new products, markets,
teams, services due to
friction for adding and
changing infrastructure
Higher technical debt due
to less frequent updates
and fixes
Either a single infrastructure
project or multiple projects
with tight coupling.
How:
Infrastructure
Code
Infrastructure
provisioning tool
Time, effort, and risk of each
change grows exponentially
with the size of the
environment.
Consequences:
© 2023 Thoughtworks
Composable environment design pattern
Environment
baseplate
Infrastructure
Products
Provision and integrate
independently delivered
infrastructure products.
The pattern
Use the packaged
infrastructure products pattern
with a minimalist "baseplate"
environment.
How:
Decouple delivery of
infrastructure and enable
alignment to workloads.
Why:
Design, build, and deliver
infrastructure around user
concerns
Apply rigorous testing and
governance processes to
"build quality in" for
infrastructure
Update, upgrade, improve,
and fix to each
infrastructure product
Flexibility to deploy subsets
of infrastructure to any
given environment
Enable sharing and
integration of
implementations
© 2023 Thoughtworks
Horizontal environment provisioning antipattern
Infrastructure is designed and
deployed separately from the
software that uses it.
The antipattern:
Infrastructure for all
applications is built in one
step. Then each application is
deployed and configured.
How:
Product development and
infrastructure are separate
teams. Desire to treat
infrastructure as generic.
Why:
Lack of alignment between
infrastructure and the
software that runs on it.
Consequences:
Lower software delivery
effectiveness due to
dependencies across teams
Frequent disruption to
delivery due to need to
coordinate infrastructure
changes across all workloads
Higher cost of ownership due
to effort needed by
infrastructure teams
Higher technical debt due to
overheads of fixes and
updates
© 2023 Thoughtworks
Application-driven infrastructure provisioning pattern
Trigger provisioning of
workload-specific
infrastructure on-demand,
with deployment
The pattern:
Options include use of GitOps
and Infrastructure as Data
How:
Reduce dependencies on
infrastructure and platform
teams, align resource usage
with need.
Why:
Lower cost of ownership
since infrastructure teams
spend less effort on routine
tasks
More effective delivery
due to reduced bottlenecks
Faster time to value since
product teams are
empowered to make
infrastructure changes
Higher operational quality
by clean separation of
concerns for infrastructure
provisioning
© 2023 Thoughtworks
Delivery environments
© 2023 Thoughtworks
Test Stage Prod
How to support the path to production for software
Software release
Environments
© 2023 Thoughtworks
Crowded environment antipattern
Dev
Multiple teams using a single
environment for unrelated
development and testing
activities
The antipattern:
It's easier to share an existing
monolithic environment than
create a new one
Why:
Lower software delivery
effectiveness because
work is often blocked
waiting for environments to
be available
Lower software delivery
effectiveness due to failed
deployments or tests from
changes made by other
teams
Excessive hosting costs
from underutilized
environments kept running
because they're too scarce
to let go when not in use
Technical debt because it's
too disruptive to apply
updates to environments in
heavy use
© 2023 Thoughtworks
Just enough environment pattern
Full Production
Environment
App A Development
Environment
Faster time to value by
providing resources for
software delivery
Reduce costs by provisioning
only what's needed
Reduce costs by using
on-demand provisioning to
remove the environment when
not in use
Reduce technical debt by
using the most up to date
infrastructure
An environment provisioned
with only the infrastructure
needed for a specific purpose
The pattern:
Use composable infrastructure
products driven by the subset
of the workload needed
How:
Low barriers to provision an
environment and simplified
process for selecting needed
infrastructure
Why:
© 2023 Thoughtworks
Snowflakes as code antipattern
./test ./stage ./prod
Environments
Infrastructure code
Maintaining a separate copy of
the infrastructure code for
each environment
The antipattern:
Infrastructure code changes
are copied and customized for
each environment
How:
Takes less initial effort to
implement variations between
environments
Why:
Higher cost of ownership
for each environment
Additional manual effort needed
to change infrastructure in each
environment
Consequences:
Increased technical debt
because updates, fixes, and
improvements are less likely
to be applied quickly to all
environments
Lower delivery
effectiveness due to
inconsistencies between
environments
© 2023 Thoughtworks
Multi-deployment infrastructure pattern
Packaged
infrastructure
code
Environments
Build versioned packages of
infrastructure code to use
across environments
The pattern:
Manage variations between
environments using
configuration parameters
How:
Need to standardize practices
and tooling for provisioning,
configuring, integrating, and
sharing infrastructure code
Consequence:
Faster time to value by
simplifying the process to
provision infrastructure
Reduced technical debt by
making it easy to deliver
updates, patches, and fixes
with less disruption
Improved operational quality
by ensuring compliance,
performance, and other
qualities are built into
infrastructure packages
© 2023 Thoughtworks
Market environments
© 2023 Thoughtworks
How to serve multiple, different user bases
Customers
in Germany
Customers
in Korea
Customers
in UK
● Regional
deployments
● SaaS business model
● Partnerships
Examples:
© 2023 Thoughtworks
Single shared tenancy environment
Customers
in Germany
Use a single environment to
host multiple customer
bases
The pattern:
Keep cost of ownership low
Why:
Customers
in Korea
Customers
in UK
© 2023 Thoughtworks
Multiple single tenancy environments
DE
Customers
in Germany
Maintain a separate
environment for each
customer base
The pattern:
● Commercial
agreements
● Regulatory
requirements
Why:
Customers
in Korea
KR
Customers
in UK
UK
© 2023 Thoughtworks
Snowflake market environments
Customers
in Germany
DE
./de
Maintaining a separate copy
of the infrastructure code
for each environment
The antipattern:
Takes less initial effort to
implement variations
between environments
Why:
Higher cost of
ownership for each
environment
Increased technical
debt because updates,
fixes, and improvements
are less likely to be
applied quickly to all
environments
Customers
in Korea
KR
./kr
Customers
in UK
UK
./uk
© 2023 Thoughtworks
Snowflake delivery environments for Snowflake market environments
Customers
in Germany
DE
./de
Customers
in Korea
KR
./kr
UK
./staging-kr
Maintaining a separate copy
of the infrastructure code
for each environment
The antipattern:
Takes less initial effort to
implement variations
between environments
Why:
Higher cost of
ownership for each
environment
Increased technical
debt because updates,
fixes, and improvements
are less likely to be
applied quickly to all
environments
UK
./staging-de
Customers
in UK
UK
./uk
UK
./staging-uk
Even higher cost of
ownership
Even more technical
debt
© 2023 Thoughtworks
Composable market environment pattern
Customers
in Germany
Customers
in UK
Customers
in Korea
Build custom environments
for different customer bases
from standardized
infrastructure product
packages
The pattern:
© 2023 Thoughtworks
Wrapping up
33
© 2023 Thoughtworks
Packaged infrastructure products
Separate the concerns
of developing and using
infrastructure Declare use of
infrastructure
product Develop and use
infrastructure for
particular needs
Infrastructure product
is provisioned for use
Empower teams
to build custom
infrastructure as
needed
Standardize how
infrastructure is
built, governed,
shared,
provisioned, and
integrated
Provide infrastructure
built around the
concerns of its users
Align infrastructure
with the strategic
goals of the
organization
Develop
infrastructure
product package
© 2023 Thoughtworks
Thank you
Kief Morris
kief@thoughtworks.com
35
1 von 35

Recomendados

Austere Systems-IT Staff Augmentation- Recruitment services von
Austere Systems-IT Staff Augmentation- Recruitment servicesAustere Systems-IT Staff Augmentation- Recruitment services
Austere Systems-IT Staff Augmentation- Recruitment servicesAnkit Gupta
324 views17 Folien
Empowering Digital Workers von
Empowering Digital WorkersEmpowering Digital Workers
Empowering Digital Workersaccenture
695 views8 Folien
Azure Migration Program Overview von
Azure Migration Program OverviewAzure Migration Program Overview
Azure Migration Program OverviewNicholas Vossburg
247 views33 Folien
Cloud proposition for banking von
Cloud proposition for bankingCloud proposition for banking
Cloud proposition for bankingAjay Kumar Uppal
351 views37 Folien
Getting started on your AWS migration journey von
Getting started on your AWS migration journeyGetting started on your AWS migration journey
Getting started on your AWS migration journeyAmazon Web Services
454 views55 Folien
AWS vs Azure vs Google (GCP) - Slides von
AWS vs Azure vs Google (GCP) - SlidesAWS vs Azure vs Google (GCP) - Slides
AWS vs Azure vs Google (GCP) - SlidesTobyWilman
4.4K views57 Folien

Más contenido relacionado

Was ist angesagt?

Future Ready Enterprise Systems | Accenture von
Future Ready Enterprise Systems | AccentureFuture Ready Enterprise Systems | Accenture
Future Ready Enterprise Systems | Accentureaccenture
19.5K views13 Folien
Migrating On-Premises Databases to Cloud von
Migrating On-Premises Databases to CloudMigrating On-Premises Databases to Cloud
Migrating On-Premises Databases to CloudAmazon Web Services
3.3K views16 Folien
Microsoft Cloud Adoption Framework von
Microsoft Cloud Adoption FrameworkMicrosoft Cloud Adoption Framework
Microsoft Cloud Adoption Frameworkssuserdb85d71
73 views30 Folien
Architecting SaaS: Doing It Right the First Time von
Architecting SaaS: Doing It Right the First TimeArchitecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First TimeSerhiy (Serge) Haziyev
8.3K views40 Folien
Azure Migration Program Pitch Deck von
Azure Migration Program Pitch DeckAzure Migration Program Pitch Deck
Azure Migration Program Pitch DeckNicholas Vossburg
1.1K views42 Folien
Instahyre case studies and review von
Instahyre case studies and reviewInstahyre case studies and review
Instahyre case studies and reviewInstahyre
1.5K views23 Folien

Was ist angesagt?(20)

Future Ready Enterprise Systems | Accenture von accenture
Future Ready Enterprise Systems | AccentureFuture Ready Enterprise Systems | Accenture
Future Ready Enterprise Systems | Accenture
accenture19.5K views
Microsoft Cloud Adoption Framework von ssuserdb85d71
Microsoft Cloud Adoption FrameworkMicrosoft Cloud Adoption Framework
Microsoft Cloud Adoption Framework
ssuserdb85d7173 views
Instahyre case studies and review von Instahyre
Instahyre case studies and reviewInstahyre case studies and review
Instahyre case studies and review
Instahyre1.5K views
AWS Differentiator - AWS Partner Summit Mumbai 2018.pdf von Amazon Web Services
AWS Differentiator - AWS Partner Summit Mumbai 2018.pdfAWS Differentiator - AWS Partner Summit Mumbai 2018.pdf
AWS Differentiator - AWS Partner Summit Mumbai 2018.pdf
Amazon Web Services1.9K views
Investing in Changemakers von accenture
Investing in ChangemakersInvesting in Changemakers
Investing in Changemakers
accenture2.9K views
FFIEC and NIST: What You Need to Know About Two Prevalent New IT Security Com... von West Monroe Partners
FFIEC and NIST: What You Need to Know About Two Prevalent New IT Security Com...FFIEC and NIST: What You Need to Know About Two Prevalent New IT Security Com...
FFIEC and NIST: What You Need to Know About Two Prevalent New IT Security Com...
AWS Cloud Adoption and the Future of Financial Services von Amazon Web Services
AWS Cloud Adoption and the Future of Financial ServicesAWS Cloud Adoption and the Future of Financial Services
AWS Cloud Adoption and the Future of Financial Services
Amazon Web Services1.3K views
An Overview of Best Practices for Large Scale Migrations - AWS Transformation... von Amazon Web Services
An Overview of Best Practices for Large Scale Migrations - AWS Transformation...An Overview of Best Practices for Large Scale Migrations - AWS Transformation...
An Overview of Best Practices for Large Scale Migrations - AWS Transformation...

Similar a Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf

POV - Practical Containerization von
POV - Practical ContainerizationPOV - Practical Containerization
POV - Practical ContainerizationRobert Greiner
327 views25 Folien
Improving Software Delivery with DevOps & Software Defined Environments | The... von
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
1.9K views38 Folien
Azure Application Modernization von
Azure Application ModernizationAzure Application Modernization
Azure Application ModernizationKarina Matos
744 views55 Folien
Cisco Secure Enclaves Architecture von
Cisco Secure Enclaves ArchitectureCisco Secure Enclaves Architecture
Cisco Secure Enclaves ArchitectureCisco Russia
661 views23 Folien
Microsoft cloud continuum von
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuumMathews Job
211 views33 Folien

Similar a Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf(20)

POV - Practical Containerization von Robert Greiner
POV - Practical ContainerizationPOV - Practical Containerization
POV - Practical Containerization
Robert Greiner327 views
Improving Software Delivery with DevOps & Software Defined Environments | The... von IBM UrbanCode Products
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...
Azure Application Modernization von Karina Matos
Azure Application ModernizationAzure Application Modernization
Azure Application Modernization
Karina Matos744 views
Cisco Secure Enclaves Architecture von Cisco Russia
Cisco Secure Enclaves ArchitectureCisco Secure Enclaves Architecture
Cisco Secure Enclaves Architecture
Cisco Russia 661 views
Microsoft cloud continuum von Mathews Job
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuum
Mathews Job211 views
220929-Presentation-business case for moving to the cloud.pptx von ZiadHaidamous1
220929-Presentation-business case for moving to the cloud.pptx220929-Presentation-business case for moving to the cloud.pptx
220929-Presentation-business case for moving to the cloud.pptx
ZiadHaidamous121 views
Welcome to the Cloud! von imogokate
Welcome to the Cloud!Welcome to the Cloud!
Welcome to the Cloud!
imogokate400 views
Migrating thousands of workloads to AWS at enterprise scale von Tom Laszewski
Migrating thousands of workloads to AWS at enterprise scaleMigrating thousands of workloads to AWS at enterprise scale
Migrating thousands of workloads to AWS at enterprise scale
Tom Laszewski322 views
App Modernisation with Microsoft Azure von Adam Stephensen
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
Adam Stephensen532 views
Citrix Synergy 2014 - Syn231 Why cloud projects fail von Citrix
Citrix Synergy 2014 - Syn231 Why cloud projects failCitrix Synergy 2014 - Syn231 Why cloud projects fail
Citrix Synergy 2014 - Syn231 Why cloud projects fail
Citrix1K views
Continuous Delivery for cloud - scenarios and scope von Sanjeev Sharma
Continuous Delivery for cloud  - scenarios and scopeContinuous Delivery for cloud  - scenarios and scope
Continuous Delivery for cloud - scenarios and scope
Sanjeev Sharma2.4K views
(ENT206) Migrating Thousands of Workloads to AWS at Enterprise Scale | AWS re... von Amazon Web Services
(ENT206) Migrating Thousands of Workloads to AWS at Enterprise Scale | AWS re...(ENT206) Migrating Thousands of Workloads to AWS at Enterprise Scale | AWS re...
(ENT206) Migrating Thousands of Workloads to AWS at Enterprise Scale | AWS re...
Deployment Automation for Hybrid Cloud and Multi-Platform Environments von IBM UrbanCode Products
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments

Último

SAP FOR TYRE INDUSTRY.pdf von
SAP FOR TYRE INDUSTRY.pdfSAP FOR TYRE INDUSTRY.pdf
SAP FOR TYRE INDUSTRY.pdfVirendra Rai, PMP
27 views3 Folien
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports von
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsRa'Fat Al-Msie'deen
8 views49 Folien
Navigating container technology for enhanced security by Niklas Saari von
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariMetosin Oy
14 views34 Folien
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... von
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...NimaTorabi2
15 views17 Folien
Introduction to Gradle von
Introduction to GradleIntroduction to Gradle
Introduction to GradleJohn Valentino
5 views7 Folien
The Era of Large Language Models.pptx von
The Era of Large Language Models.pptxThe Era of Large Language Models.pptx
The Era of Large Language Models.pptxAbdulVahedShaik
7 views9 Folien

Último(20)

BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports von Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Navigating container technology for enhanced security by Niklas Saari von Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... von NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi215 views
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... von Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller42 views
Fleet Management Software in India von Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable12 views
Bootstrapping vs Venture Capital.pptx von Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic12 views
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... von Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke35 views
Myths and Facts About Hospice Care: Busting Common Misconceptions von Care Coordinations
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common Misconceptions
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... von Marc Müller
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Marc Müller41 views
Dapr Unleashed: Accelerating Microservice Development von Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski12 views
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... von sparkfabrik
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik8 views
AI and Ml presentation .pptx von FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8712 views

Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf

  • 1. © 2023 Thoughtworks Taming Cloud Sprawl with a Composable Environment Architecture Kief Morris
  • 2. © 2023 Thoughtworks "Scale at all costs" The path to the cloud age 2 "Grow sustainably" "Move fast and break things" Business Tech Iron Age of IT Business Digital Age of Shadow IT Tech Business and Tech Cloud Age "Technology is not core" Business Digital Age of Digital Sprawl Digital Digital Tech
  • 3. © 2023 Thoughtworks Infrastructure enables value 3 Infrastructure strategy Value to customer Drive design and implementation Enable value
  • 4. © 2023 Thoughtworks Distance between value and infrastructure 4 Infrastructure strategy Value to customer Engineering strategy Product strategy Organizational strategy Drive design and implementation Enable value
  • 5. © 2023 Thoughtworks Is cloud our infrastructure strategy? https://www.lastweekinaws.com/blog/the-17-ways-to-run-containers-on-aws/ "17 ways to run a container on AWS" "17 More Ways to Run Containers on AWS" https://www.lastweekinaws.com/blog/17-more-ways-to-run-containers-on-aws/ "17 Final Ways to Run Containers" https://www.lastweekinaws.com/blog/17-Final-Ways-to-Run-Containers/
  • 6. © 2023 Thoughtworks Is cloud our infrastructure strategy? https://landscape.cncf.io/ Cloud Native Computing Foundation Landscape
  • 7. © 2023 Thoughtworks https://landscape.cncf.io/ Cloud Native Computing Foundation Landscape 🎩 David Bell @dastbe
  • 8. © 2023 Thoughtworks Is cloud our infrastructure strategy? 8 Cloud is the start of an infrastructure strategy
  • 9. © 2023 Thoughtworks How does infrastructure support organization strategy? © 2022 Thoughtworks Add users Add products Grow the business Sustain the business Operational quality and confidence
  • 10. © 2023 Thoughtworks Infrastructure capabilities © 2022 Thoughtworks Ensure compliance Manage cost of ownership Provide customer environments Add users Provide delivery environments Add products Grow the business Sustain the business Operational quality and confidence
  • 11. © 2023 Thoughtworks Measuring infrastructure capabilities © 2022 Thoughtworks Add users Add products Grow the business Ensure compliance Provide delivery environments Manage cost of ownership Provide customer environments Sustain the business Operational quality and confidence Software delivery metrics (4 key metrics) Time and effort to set up for a new product Time and effort to integrated an acquired product
  • 12. © 2023 Thoughtworks Measuring infrastructure capabilities © 2022 Thoughtworks Add users Add products Grow the business Ensure compliance Provide delivery environments Manage cost of ownership Sustain the business Operational quality and confidence Provide customer environments Time and effort to set up a new customer environment Incremental ownership cost of each environment
  • 13. © 2023 Thoughtworks Measuring infrastructure capabilities © 2022 Thoughtworks Add users Add products Grow the business Ensure compliance Provide delivery environments Sustain the business Operational quality and confidence Provide customer environments Incremental ownership cost (per product, customer, …) Variation across environments (technical debt) Manage cost of ownership Time and effort to update
  • 15. © 2023 Thoughtworks How to provide infrastructure to multiple product development teams Environment Infrastructure Software Web Storefront Mobile Apps Product Admin Catalog Shopping Checkout Customer
  • 16. © 2023 Thoughtworks Monolithic environment design antipattern Environment is defined, provisioned, and managed as a single architectural unit. The antipattern: Infrastructure is owned by a single team (Conway's Law). Simple way to start, grows organically. Why: Infrastructure team Environment Lower effectiveness of infrastructure change delivery due to scope of each change Slower time to value for new products, markets, teams, services due to friction for adding and changing infrastructure Higher technical debt due to less frequent updates and fixes Either a single infrastructure project or multiple projects with tight coupling. How: Infrastructure Code Infrastructure provisioning tool Time, effort, and risk of each change grows exponentially with the size of the environment. Consequences:
  • 17. © 2023 Thoughtworks Composable environment design pattern Environment baseplate Infrastructure Products Provision and integrate independently delivered infrastructure products. The pattern Use the packaged infrastructure products pattern with a minimalist "baseplate" environment. How: Decouple delivery of infrastructure and enable alignment to workloads. Why: Design, build, and deliver infrastructure around user concerns Apply rigorous testing and governance processes to "build quality in" for infrastructure Update, upgrade, improve, and fix to each infrastructure product Flexibility to deploy subsets of infrastructure to any given environment Enable sharing and integration of implementations
  • 18. © 2023 Thoughtworks Horizontal environment provisioning antipattern Infrastructure is designed and deployed separately from the software that uses it. The antipattern: Infrastructure for all applications is built in one step. Then each application is deployed and configured. How: Product development and infrastructure are separate teams. Desire to treat infrastructure as generic. Why: Lack of alignment between infrastructure and the software that runs on it. Consequences: Lower software delivery effectiveness due to dependencies across teams Frequent disruption to delivery due to need to coordinate infrastructure changes across all workloads Higher cost of ownership due to effort needed by infrastructure teams Higher technical debt due to overheads of fixes and updates
  • 19. © 2023 Thoughtworks Application-driven infrastructure provisioning pattern Trigger provisioning of workload-specific infrastructure on-demand, with deployment The pattern: Options include use of GitOps and Infrastructure as Data How: Reduce dependencies on infrastructure and platform teams, align resource usage with need. Why: Lower cost of ownership since infrastructure teams spend less effort on routine tasks More effective delivery due to reduced bottlenecks Faster time to value since product teams are empowered to make infrastructure changes Higher operational quality by clean separation of concerns for infrastructure provisioning
  • 21. © 2023 Thoughtworks Test Stage Prod How to support the path to production for software Software release Environments
  • 22. © 2023 Thoughtworks Crowded environment antipattern Dev Multiple teams using a single environment for unrelated development and testing activities The antipattern: It's easier to share an existing monolithic environment than create a new one Why: Lower software delivery effectiveness because work is often blocked waiting for environments to be available Lower software delivery effectiveness due to failed deployments or tests from changes made by other teams Excessive hosting costs from underutilized environments kept running because they're too scarce to let go when not in use Technical debt because it's too disruptive to apply updates to environments in heavy use
  • 23. © 2023 Thoughtworks Just enough environment pattern Full Production Environment App A Development Environment Faster time to value by providing resources for software delivery Reduce costs by provisioning only what's needed Reduce costs by using on-demand provisioning to remove the environment when not in use Reduce technical debt by using the most up to date infrastructure An environment provisioned with only the infrastructure needed for a specific purpose The pattern: Use composable infrastructure products driven by the subset of the workload needed How: Low barriers to provision an environment and simplified process for selecting needed infrastructure Why:
  • 24. © 2023 Thoughtworks Snowflakes as code antipattern ./test ./stage ./prod Environments Infrastructure code Maintaining a separate copy of the infrastructure code for each environment The antipattern: Infrastructure code changes are copied and customized for each environment How: Takes less initial effort to implement variations between environments Why: Higher cost of ownership for each environment Additional manual effort needed to change infrastructure in each environment Consequences: Increased technical debt because updates, fixes, and improvements are less likely to be applied quickly to all environments Lower delivery effectiveness due to inconsistencies between environments
  • 25. © 2023 Thoughtworks Multi-deployment infrastructure pattern Packaged infrastructure code Environments Build versioned packages of infrastructure code to use across environments The pattern: Manage variations between environments using configuration parameters How: Need to standardize practices and tooling for provisioning, configuring, integrating, and sharing infrastructure code Consequence: Faster time to value by simplifying the process to provision infrastructure Reduced technical debt by making it easy to deliver updates, patches, and fixes with less disruption Improved operational quality by ensuring compliance, performance, and other qualities are built into infrastructure packages
  • 27. © 2023 Thoughtworks How to serve multiple, different user bases Customers in Germany Customers in Korea Customers in UK ● Regional deployments ● SaaS business model ● Partnerships Examples:
  • 28. © 2023 Thoughtworks Single shared tenancy environment Customers in Germany Use a single environment to host multiple customer bases The pattern: Keep cost of ownership low Why: Customers in Korea Customers in UK
  • 29. © 2023 Thoughtworks Multiple single tenancy environments DE Customers in Germany Maintain a separate environment for each customer base The pattern: ● Commercial agreements ● Regulatory requirements Why: Customers in Korea KR Customers in UK UK
  • 30. © 2023 Thoughtworks Snowflake market environments Customers in Germany DE ./de Maintaining a separate copy of the infrastructure code for each environment The antipattern: Takes less initial effort to implement variations between environments Why: Higher cost of ownership for each environment Increased technical debt because updates, fixes, and improvements are less likely to be applied quickly to all environments Customers in Korea KR ./kr Customers in UK UK ./uk
  • 31. © 2023 Thoughtworks Snowflake delivery environments for Snowflake market environments Customers in Germany DE ./de Customers in Korea KR ./kr UK ./staging-kr Maintaining a separate copy of the infrastructure code for each environment The antipattern: Takes less initial effort to implement variations between environments Why: Higher cost of ownership for each environment Increased technical debt because updates, fixes, and improvements are less likely to be applied quickly to all environments UK ./staging-de Customers in UK UK ./uk UK ./staging-uk Even higher cost of ownership Even more technical debt
  • 32. © 2023 Thoughtworks Composable market environment pattern Customers in Germany Customers in UK Customers in Korea Build custom environments for different customer bases from standardized infrastructure product packages The pattern:
  • 34. © 2023 Thoughtworks Packaged infrastructure products Separate the concerns of developing and using infrastructure Declare use of infrastructure product Develop and use infrastructure for particular needs Infrastructure product is provisioned for use Empower teams to build custom infrastructure as needed Standardize how infrastructure is built, governed, shared, provisioned, and integrated Provide infrastructure built around the concerns of its users Align infrastructure with the strategic goals of the organization Develop infrastructure product package
  • 35. © 2023 Thoughtworks Thank you Kief Morris kief@thoughtworks.com 35