Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf

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

Recommandé

Scalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdf par
Scalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdfScalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdf
Scalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdfKief Morris
98 vues41 diapositives
Full lifecycle of a microservice par
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microserviceLuigi Bennardis
3.4K vues73 diapositives
Azure cosmos db, Azure no-SQL database, par
Azure cosmos db, Azure no-SQL database, Azure cosmos db, Azure no-SQL database,
Azure cosmos db, Azure no-SQL database, BRIJESH KUMAR
149 vues51 diapositives
Zero downtime deployment of micro-services with Kubernetes par
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesWojciech Barczyński
599 vues70 diapositives
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &... par
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...confluent
3.2K vues48 diapositives
RabbitMQ & Kafka par
RabbitMQ & KafkaRabbitMQ & Kafka
RabbitMQ & KafkaVMware Tanzu
5K vues68 diapositives

Contenu connexe

Tendances

Improve monitoring and observability for kubernetes with oss tools par
Improve monitoring and observability for kubernetes with oss toolsImprove monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss toolsNilesh Gule
82 vues31 diapositives
14- Tumbling Window Trigger dependency in Azure Data Factory.pptx par
14- Tumbling Window Trigger dependency in Azure Data Factory.pptx14- Tumbling Window Trigger dependency in Azure Data Factory.pptx
14- Tumbling Window Trigger dependency in Azure Data Factory.pptxBRIJESH KUMAR
103 vues8 diapositives
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d... par
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Kai Wähner
45.1K vues51 diapositives
Openstack 101 par
Openstack 101Openstack 101
Openstack 101Kamesh Pemmaraju
17.1K vues55 diapositives
Operational and business monitoring with IBM Integration Bus-Sanjay Nagchowdhury par
Operational and business monitoring with IBM Integration Bus-Sanjay NagchowdhuryOperational and business monitoring with IBM Integration Bus-Sanjay Nagchowdhury
Operational and business monitoring with IBM Integration Bus-Sanjay NagchowdhuryKaren Broughton-Mabbitt
3.5K vues71 diapositives
Messaging Systems on AWS par
Messaging Systems on AWSMessaging Systems on AWS
Messaging Systems on AWSAmazon Web Services
1.5K vues15 diapositives

Tendances(20)

Improve monitoring and observability for kubernetes with oss tools par Nilesh Gule
Improve monitoring and observability for kubernetes with oss toolsImprove monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss tools
Nilesh Gule82 vues
14- Tumbling Window Trigger dependency in Azure Data Factory.pptx par BRIJESH KUMAR
14- Tumbling Window Trigger dependency in Azure Data Factory.pptx14- Tumbling Window Trigger dependency in Azure Data Factory.pptx
14- Tumbling Window Trigger dependency in Azure Data Factory.pptx
BRIJESH KUMAR103 vues
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d... par Kai Wähner
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Kai Wähner45.1K vues
Operational and business monitoring with IBM Integration Bus-Sanjay Nagchowdhury par Karen Broughton-Mabbitt
Operational and business monitoring with IBM Integration Bus-Sanjay NagchowdhuryOperational and business monitoring with IBM Integration Bus-Sanjay Nagchowdhury
Operational and business monitoring with IBM Integration Bus-Sanjay Nagchowdhury
AWS Presentation-1.ppt par usmanEhsan8
AWS Presentation-1.pptAWS Presentation-1.ppt
AWS Presentation-1.ppt
usmanEhsan8517 vues
Introduction to Google Cloud Services / Platforms par Nilanchal
Introduction to Google Cloud Services / PlatformsIntroduction to Google Cloud Services / Platforms
Introduction to Google Cloud Services / Platforms
Nilanchal 1.5K vues
Slides: Success Stories for Data-to-Cloud par DATAVERSITY
Slides: Success Stories for Data-to-CloudSlides: Success Stories for Data-to-Cloud
Slides: Success Stories for Data-to-Cloud
DATAVERSITY563 vues
What is AWS? par Martin Yan
What is AWS?What is AWS?
What is AWS?
Martin Yan25.6K vues
Adopting Multi-Cloud Services with Confidence par Kevin Hakanson
Adopting Multi-Cloud Services with ConfidenceAdopting Multi-Cloud Services with Confidence
Adopting Multi-Cloud Services with Confidence
Kevin Hakanson192 vues
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern... par Edureka!
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Edureka!939 vues
Cloud Computing and Amazon Web Services par Aditya Jha
Cloud Computing and Amazon Web ServicesCloud Computing and Amazon Web Services
Cloud Computing and Amazon Web Services
Aditya Jha6.5K vues

Similaire à Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf

POV - Practical Containerization par
POV - Practical ContainerizationPOV - Practical Containerization
POV - Practical ContainerizationRobert Greiner
327 vues25 diapositives
Improving Software Delivery with DevOps & Software Defined Environments | The... par
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 vues38 diapositives
Azure Application Modernization par
Azure Application ModernizationAzure Application Modernization
Azure Application ModernizationKarina Matos
744 vues55 diapositives
Cisco Secure Enclaves Architecture par
Cisco Secure Enclaves ArchitectureCisco Secure Enclaves Architecture
Cisco Secure Enclaves ArchitectureCisco Russia
661 vues23 diapositives
Microsoft cloud continuum par
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuumMathews Job
211 vues33 diapositives

Similaire à Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf(20)

Improving Software Delivery with DevOps & Software Defined Environments | The... par 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 par Karina Matos
Azure Application ModernizationAzure Application Modernization
Azure Application Modernization
Karina Matos744 vues
Cisco Secure Enclaves Architecture par Cisco Russia
Cisco Secure Enclaves ArchitectureCisco Secure Enclaves Architecture
Cisco Secure Enclaves Architecture
Cisco Russia 661 vues
Microsoft cloud continuum par Mathews Job
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuum
Mathews Job211 vues
220929-Presentation-business case for moving to the cloud.pptx par 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 vues
Welcome to the Cloud! par imogokate
Welcome to the Cloud!Welcome to the Cloud!
Welcome to the Cloud!
imogokate400 vues
Migrating thousands of workloads to AWS at enterprise scale par 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 vues
App Modernisation with Microsoft Azure par Adam Stephensen
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
Adam Stephensen532 vues
Citrix Synergy 2014 - Syn231 Why cloud projects fail par 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 vues
Continuous Delivery for cloud - scenarios and scope par 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 vues
(ENT206) Migrating Thousands of Workloads to AWS at Enterprise Scale | AWS re... par 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 par 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

Dernier

Advanced API Mocking Techniques par
Advanced API Mocking TechniquesAdvanced API Mocking Techniques
Advanced API Mocking TechniquesDimpy Adhikary
23 vues11 diapositives
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... par
.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üller
41 vues62 diapositives
Bootstrapping vs Venture Capital.pptx par
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptxZeljko Svedic
12 vues17 diapositives
SAP FOR TYRE INDUSTRY.pdf par
SAP FOR TYRE INDUSTRY.pdfSAP FOR TYRE INDUSTRY.pdf
SAP FOR TYRE INDUSTRY.pdfVirendra Rai, PMP
27 vues3 diapositives
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action par
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionMárton Kodok
11 vues55 diapositives
ShortStory_qlora.pptx par
ShortStory_qlora.pptxShortStory_qlora.pptx
ShortStory_qlora.pptxpranathikrishna22
5 vues10 diapositives

Dernier(20)

.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... par 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 vues
Bootstrapping vs Venture Capital.pptx par Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic12 vues
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action par Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok11 vues
Generic or specific? Making sensible software design decisions par Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Fleet Management Software in India par Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable12 vues
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... par 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 vues
Copilot Prompting Toolkit_All Resources.pdf par Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana11 vues
FIMA 2023 Neo4j & FS - Entity Resolution.pptx par Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j12 vues
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... par Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri890 vues
tecnologia18.docx par nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 vues
Myths and Facts About Hospice Care: Busting Common Misconceptions par 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
predicting-m3-devopsconMunich-2023.pptx par Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app7 vues

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