Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf

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

MuleSoft PKO - C4E and Platform Insights por
MuleSoft PKO - C4E and Platform InsightsMuleSoft PKO - C4E and Platform Insights
MuleSoft PKO - C4E and Platform InsightsAngel Alberici
1K visualizações42 slides
Evolution of API-driven architectures por
Evolution of API-driven architecturesEvolution of API-driven architectures
Evolution of API-driven architecturesSven Bernhardt
752 visualizações33 slides
Agile, TOGAF and Enterprise Architecture: Will They Blend? por
Agile, TOGAF and Enterprise Architecture:  Will They Blend?Agile, TOGAF and Enterprise Architecture:  Will They Blend?
Agile, TOGAF and Enterprise Architecture: Will They Blend?Danny Greefhorst
39.5K visualizações45 slides
Modéliser avec ARCHIMATE 3.1® por
Modéliser avec ARCHIMATE 3.1®Modéliser avec ARCHIMATE 3.1®
Modéliser avec ARCHIMATE 3.1®COMPETENSIS
10.2K visualizações107 slides
DevOps, Common use cases, Architectures, Best Practices por
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesShiva Narayanaswamy
17.4K visualizações58 slides
Agile Integration with APIs and Containers Workshop por
Agile Integration with APIs and Containers Workshop Agile Integration with APIs and Containers Workshop
Agile Integration with APIs and Containers Workshop Nicole Maselli
2.3K visualizações83 slides

Mais conteúdo relacionado

Mais procurados

An introduction to Microservices por
An introduction to MicroservicesAn introduction to Microservices
An introduction to MicroservicesCisco DevNet
5.3K visualizações83 slides
apidays Paris 2022 - Event-Driven API Management – why REST isn't enough, Ben... por
apidays Paris 2022 - Event-Driven API Management – why REST isn't enough, Ben...apidays Paris 2022 - Event-Driven API Management – why REST isn't enough, Ben...
apidays Paris 2022 - Event-Driven API Management – why REST isn't enough, Ben...apidays
105 visualizações21 slides
What is Solution Architecture? por
What is Solution Architecture?What is Solution Architecture?
What is Solution Architecture?Bogdan Bocse
1.9K visualizações25 slides
Continuous Testing Landscape.pptx por
Continuous Testing Landscape.pptxContinuous Testing Landscape.pptx
Continuous Testing Landscape.pptxMarc Hornbeek
83 visualizações25 slides
Testing As A Services (TaaS) By Testrig Technologies por
Testing As A Services (TaaS) By Testrig TechnologiesTesting As A Services (TaaS) By Testrig Technologies
Testing As A Services (TaaS) By Testrig TechnologiesTestrig Technologies
48 visualizações6 slides
API Maturity Model (Webcast with Accenture) por
API Maturity Model (Webcast with Accenture)API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)Apigee | Google Cloud
12.8K visualizações29 slides

Mais procurados(20)

An introduction to Microservices por Cisco DevNet
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
Cisco DevNet5.3K visualizações
apidays Paris 2022 - Event-Driven API Management – why REST isn't enough, Ben... por apidays
apidays Paris 2022 - Event-Driven API Management – why REST isn't enough, Ben...apidays Paris 2022 - Event-Driven API Management – why REST isn't enough, Ben...
apidays Paris 2022 - Event-Driven API Management – why REST isn't enough, Ben...
apidays105 visualizações
What is Solution Architecture? por Bogdan Bocse
What is Solution Architecture?What is Solution Architecture?
What is Solution Architecture?
Bogdan Bocse1.9K visualizações
Continuous Testing Landscape.pptx por Marc Hornbeek
Continuous Testing Landscape.pptxContinuous Testing Landscape.pptx
Continuous Testing Landscape.pptx
Marc Hornbeek83 visualizações
Testing As A Services (TaaS) By Testrig Technologies por Testrig Technologies
Testing As A Services (TaaS) By Testrig TechnologiesTesting As A Services (TaaS) By Testrig Technologies
Testing As A Services (TaaS) By Testrig Technologies
Testrig Technologies48 visualizações
API Maturity Model (Webcast with Accenture) por Apigee | Google Cloud
API Maturity Model (Webcast with Accenture)API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)
Apigee | Google Cloud12.8K visualizações
Enterprise Architecture Frameworks por Dr. Fahim K Sufi
Enterprise Architecture FrameworksEnterprise Architecture Frameworks
Enterprise Architecture Frameworks
Dr. Fahim K Sufi1.3K visualizações
Getting Started with Azure DevOps por Jessica Deen
Getting Started with Azure DevOpsGetting Started with Azure DevOps
Getting Started with Azure DevOps
Jessica Deen417 visualizações
Descending from the architect's ivory tower por Valtech UK
Descending from the architect's ivory towerDescending from the architect's ivory tower
Descending from the architect's ivory tower
Valtech UK3K visualizações
ArchiMate technology layer - Simplify the models por COMPETENSIS
ArchiMate technology layer - Simplify the modelsArchiMate technology layer - Simplify the models
ArchiMate technology layer - Simplify the models
COMPETENSIS1.6K visualizações
Funny stories and anti-patterns from DevOps landscape por Mikalai Alimenkou
Funny stories and anti-patterns from DevOps landscapeFunny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscape
Mikalai Alimenkou4.3K visualizações
ESB Presentation por F K
ESB PresentationESB Presentation
ESB Presentation
F K1.4K visualizações
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In... por Kai Wähner
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Kai Wähner8.2K visualizações
CICD Pipeline - AWS Azure por Ratan Das
CICD Pipeline - AWS AzureCICD Pipeline - AWS Azure
CICD Pipeline - AWS Azure
Ratan Das316 visualizações
MuleSoft Architecture Presentation por Rupesh Sinha
MuleSoft Architecture PresentationMuleSoft Architecture Presentation
MuleSoft Architecture Presentation
Rupesh Sinha6.1K visualizações
Introduction to Enterprise architecture and the steps to perform an Enterpris... por Prashanth Panduranga
Introduction to Enterprise architecture and the steps to perform an Enterpris...Introduction to Enterprise architecture and the steps to perform an Enterpris...
Introduction to Enterprise architecture and the steps to perform an Enterpris...
Prashanth Panduranga1.9K visualizações
DevSecOps - The big picture por Stefan Streichsbier
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big picture
Stefan Streichsbier1.6K visualizações
Building loosely coupled integrations with Logic Apps por BizTalk360
Building loosely coupled integrations with Logic AppsBuilding loosely coupled integrations with Logic Apps
Building loosely coupled integrations with Logic Apps
BizTalk3603.4K visualizações

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

POV - Practical Containerization por
POV - Practical ContainerizationPOV - Practical Containerization
POV - Practical ContainerizationRobert Greiner
327 visualizações25 slides
cloud value for application development por
cloud value for application developmentcloud value for application development
cloud value for application developmentMicrosoft Developer Network (MSDN) - Belgium and Luxembourg
788 visualizações28 slides
Improving Software Delivery with DevOps & Software Defined Environments | The... por
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 visualizações38 slides
Azure Application Modernization por
Azure Application ModernizationAzure Application Modernization
Azure Application ModernizationKarina Matos
744 visualizações55 slides
Cisco Secure Enclaves Architecture por
Cisco Secure Enclaves ArchitectureCisco Secure Enclaves Architecture
Cisco Secure Enclaves ArchitectureCisco Russia
661 visualizações23 slides
Microsoft cloud continuum por
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuumMathews Job
211 visualizações33 slides

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

POV - Practical Containerization por Robert Greiner
POV - Practical ContainerizationPOV - Practical Containerization
POV - Practical Containerization
Robert Greiner327 visualizações
Improving Software Delivery with DevOps & Software Defined Environments | The... por 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...
IBM UrbanCode Products1.9K visualizações
Azure Application Modernization por Karina Matos
Azure Application ModernizationAzure Application Modernization
Azure Application Modernization
Karina Matos744 visualizações
Cisco Secure Enclaves Architecture por Cisco Russia
Cisco Secure Enclaves ArchitectureCisco Secure Enclaves Architecture
Cisco Secure Enclaves Architecture
Cisco Russia 661 visualizações
Microsoft cloud continuum por Mathews Job
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuum
Mathews Job211 visualizações
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
ZiadHaidamous122 visualizações
Keeping Your Cloud Workloads Protected por Veritas Technologies LLC
Keeping Your Cloud Workloads ProtectedKeeping Your Cloud Workloads Protected
Keeping Your Cloud Workloads Protected
Veritas Technologies LLC1.4K visualizações
Evolving Infrastructure and Management for Business Agility por Red Hat India Pvt. Ltd.
Evolving Infrastructure and Management for Business AgilityEvolving Infrastructure and Management for Business Agility
Evolving Infrastructure and Management for Business Agility
Red Hat India Pvt. Ltd.452 visualizações
Transform IT Operations with CSC por Amazon Web Services
Transform IT Operations with CSCTransform IT Operations with CSC
Transform IT Operations with CSC
Amazon Web Services2.1K visualizações
Welcome to the Cloud! por imogokate
Welcome to the Cloud!Welcome to the Cloud!
Welcome to the Cloud!
imogokate402 visualizações
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 visualizações
App Modernisation with Microsoft Azure por Adam Stephensen
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
Adam Stephensen533 visualizações
Testing 12-Factor Apps por Phillip Marlow
Testing 12-Factor AppsTesting 12-Factor Apps
Testing 12-Factor Apps
Phillip Marlow12 visualizações
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 visualizações
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 visualizações
(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...
Amazon Web Services6K visualizações
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
IBM UrbanCode Products4.4K visualizações
Linux on Azure Pitch Deck por Nicholas Vossburg
Linux on Azure Pitch DeckLinux on Azure Pitch Deck
Linux on Azure Pitch Deck
Nicholas Vossburg155 visualizações

Último

DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation por
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationHCLSoftware
6 visualizações8 slides
nintendo_64.pptx por
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
6 visualizações7 slides
How Workforce Management Software Empowers SMEs | TraQSuite por
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteTraQSuite
6 visualizações3 slides
Flask-Python.pptx por
Flask-Python.pptxFlask-Python.pptx
Flask-Python.pptxTriloki Gupta
9 visualizações12 slides
predicting-m3-devopsconMunich-2023.pptx por
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptxTier1 app
8 visualizações24 slides
Understanding HTML terminology por
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminologyartembondar5
7 visualizações8 slides

Último(20)

DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation por HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 visualizações
nintendo_64.pptx por paiga02016
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptx
paiga020166 visualizações
How Workforce Management Software Empowers SMEs | TraQSuite por TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite6 visualizações
Flask-Python.pptx por Triloki Gupta
Flask-Python.pptxFlask-Python.pptx
Flask-Python.pptx
Triloki Gupta9 visualizações
predicting-m3-devopsconMunich-2023.pptx por Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app8 visualizações
Understanding HTML terminology por artembondar5
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminology
artembondar57 visualizações
Electronic AWB - Electronic Air Waybill por Freightoscope
Electronic AWB - Electronic Air Waybill Electronic AWB - Electronic Air Waybill
Electronic AWB - Electronic Air Waybill
Freightoscope 5 visualizações
Airline Booking Software por SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta9 visualizações
Introduction to Maven por John Valentino
Introduction to MavenIntroduction to Maven
Introduction to Maven
John Valentino6 visualizações
Agile 101 por John Valentino
Agile 101Agile 101
Agile 101
John Valentino10 visualizações
JioEngage_Presentation.pptx por admin125455
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptx
admin1254558 visualizações
EV Charging App Case por iCoderz Solutions
EV Charging App Case EV Charging App Case
EV Charging App Case
iCoderz Solutions9 visualizações
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... por 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 visualizações
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
Neo4j17 visualizações
Navigating container technology for enhanced security by Niklas Saari por 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 visualizações
ADDO_2022_CICID_Tom_Halpin.pdf por TomHalpin9
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdf
TomHalpin95 visualizações
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx por animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm15 visualizações
360 graden fabriek por info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492162 visualizações
Page Object Model por artembondar5
Page Object ModelPage Object Model
Page Object Model
artembondar56 visualizações
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 Valentino7 visualizações

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