Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf

Kief Morris
Kief MorrisCloud Practice Lead, Author of Infrastructure as Code en 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 de 35

Recomendados

Business Model Innovation Framework PowerPoint Presentation Slides por
Business Model Innovation Framework PowerPoint Presentation SlidesBusiness Model Innovation Framework PowerPoint Presentation Slides
Business Model Innovation Framework PowerPoint Presentation SlidesSlideTeam
250 vistas21 diapositivas
Oil and gas gender diversity survey results por
Oil and gas gender diversity survey resultsOil and gas gender diversity survey results
Oil and gas gender diversity survey resultsEY
9.9K vistas13 diapositivas
Human population growth por
Human population growthHuman population growth
Human population growthMark McGinley
23.1K vistas34 diapositivas
EY Consumer Banking Survey Österreich 2018 por
EY Consumer Banking Survey Österreich 2018EY Consumer Banking Survey Österreich 2018
EY Consumer Banking Survey Österreich 2018EY
2.9K vistas1 diapositiva
Diversity, Equity and Inclusion in Government Workforce por
Diversity, Equity and Inclusion in Government WorkforceDiversity, Equity and Inclusion in Government Workforce
Diversity, Equity and Inclusion in Government Workforceaccenture
1.7K vistas10 diapositivas
POV - Practical Containerization por
POV - Practical ContainerizationPOV - Practical Containerization
POV - Practical ContainerizationRobert Greiner
327 vistas25 diapositivas

Más contenido relacionado

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

Azure Application Modernization por
Azure Application ModernizationAzure Application Modernization
Azure Application ModernizationKarina Matos
744 vistas55 diapositivas
Cisco Secure Enclaves Architecture por
Cisco Secure Enclaves ArchitectureCisco Secure Enclaves Architecture
Cisco Secure Enclaves ArchitectureCisco Russia
661 vistas23 diapositivas
Microsoft cloud continuum por
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuumMathews Job
211 vistas33 diapositivas
220929-Presentation-business case for moving to the cloud.pptx por
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.pptxZiadHaidamous1
21 vistas19 diapositivas
Keeping Your Cloud Workloads Protected por
Keeping Your Cloud Workloads ProtectedKeeping Your Cloud Workloads Protected
Keeping Your Cloud Workloads ProtectedVeritas Technologies LLC
1.4K vistas25 diapositivas
Evolving Infrastructure and Management for Business Agility por
Evolving Infrastructure and Management for Business AgilityEvolving Infrastructure and Management for Business Agility
Evolving Infrastructure and Management for Business AgilityRed Hat India Pvt. Ltd.
452 vistas32 diapositivas

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

Azure Application Modernization por Karina Matos
Azure Application ModernizationAzure Application Modernization
Azure Application Modernization
Karina Matos744 vistas
Cisco Secure Enclaves Architecture por Cisco Russia
Cisco Secure Enclaves ArchitectureCisco Secure Enclaves Architecture
Cisco Secure Enclaves Architecture
Cisco Russia 661 vistas
Microsoft cloud continuum por Mathews Job
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuum
Mathews Job211 vistas
220929-Presentation-business case for moving to the cloud.pptx por 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 vistas
Welcome to the Cloud! por imogokate
Welcome to the Cloud!Welcome to the Cloud!
Welcome to the Cloud!
imogokate400 vistas
Migrating thousands of workloads to AWS at enterprise scale por 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 vistas
App Modernisation with Microsoft Azure por Adam Stephensen
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
Adam Stephensen532 vistas
Citrix Synergy 2014 - Syn231 Why cloud projects fail por 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 vistas
Continuous Delivery for cloud - scenarios and scope por 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 vistas
(ENT206) Migrating Thousands of Workloads to AWS at Enterprise Scale | AWS re... por 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 por 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
Enabling Fast IT using Containers, Microservices and DAVROS models: an overview por Cisco DevNet
Enabling Fast IT using Containers, Microservices and DAVROS models: an overviewEnabling Fast IT using Containers, Microservices and DAVROS models: an overview
Enabling Fast IT using Containers, Microservices and DAVROS models: an overview
Cisco DevNet537 vistas
Techcello at a glance por kanimozhin
Techcello at a glanceTechcello at a glance
Techcello at a glance
kanimozhin543 vistas

Último

The Era of Large Language Models.pptx por
The Era of Large Language Models.pptxThe Era of Large Language Models.pptx
The Era of Large Language Models.pptxAbdulVahedShaik
5 vistas9 diapositivas
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -... por
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...Deltares
6 vistas15 diapositivas
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme... por
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...Deltares
5 vistas28 diapositivas
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... por
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 Hocke
30 vistas124 diapositivas
Programming Field por
Programming FieldProgramming Field
Programming Fieldthehardtechnology
5 vistas9 diapositivas
Unleash The Monkeys por
Unleash The MonkeysUnleash The Monkeys
Unleash The MonkeysJacob Duijzer
7 vistas28 diapositivas

Último(20)

The Era of Large Language Models.pptx por AbdulVahedShaik
The Era of Large Language Models.pptxThe Era of Large Language Models.pptx
The Era of Large Language Models.pptx
AbdulVahedShaik5 vistas
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -... por Deltares
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
Deltares6 vistas
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme... por Deltares
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
Deltares5 vistas
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... por 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 Hocke30 vistas
Software evolution understanding: Automatic extraction of software identifier... por Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Myths and Facts About Hospice Care: Busting Common Misconceptions por 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
AI and Ml presentation .pptx por FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8711 vistas
Sprint 226 por ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ5 vistas
Quality Engineer: A Day in the Life por John Valentino
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the Life
John Valentino6 vistas
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t... por Deltares
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
Deltares9 vistas
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut... por Deltares
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...
Deltares7 vistas
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols por Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares7 vistas
Advanced API Mocking Techniques por Dimpy Adhikary
Advanced API Mocking TechniquesAdvanced API Mocking Techniques
Advanced API Mocking Techniques
Dimpy Adhikary19 vistas
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ... por Deltares
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
Deltares11 vistas
Fleet Management Software in India por Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 vistas
FIMA 2023 Neo4j & FS - Entity Resolution.pptx por Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j7 vistas

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