SlideShare a Scribd company logo
Evolving to
Cloud Native
@ntschutta
ntschutta.io
Nathaniel Schutta
https://content.pivotal.io/
ebooks/thinking-architecturally
Ah “the cloud!”
So. Many. Options.
Microservices. Modular monoliths.
Container all the things?
What about serverless?
Functions. As a Service.
Did someone say Polycloud?
https://www.thoughtworks.com/radar/techniques/polycloud
How do we make
sense of all this?!?
There are real engineering
issues to overcome.
Many believe in magic
sparkle ponies...
How do we avoid pitfalls?
And a strong case of
resume driven design?
What is cloud
Native?
Applications designed to take
advantage of cloud computing.
Fundamentally about how we
create and deploy applications.
Cloud computing gives us
some very interesting abilities.
Scale up. Scale down. On demand.
Limitless compute.*
* Additional fees may apply.
Cloud native isn’t just an
architectural pattern.
Combination of practices,
techniques, technologies.
Agile development.
Continuous delivery.
Automation.
Containers.
Microservices.
Functions.
Changes our culture.
DevOps.
Infrastructure is a different
game today isn’t it?
We’ve seen this massive shift.
Servers used to be home grown.
Bespoke. Artisanal.
Spent days hand crafting them.
Treated them like pets…
Evolving to Cloud-Native - Nate Schutta (1/2)
Did whatever it took to keep
them healthy and happy.
Servers were a heavily
constrained resource.
They were really expensive!
Had to get our money’s worth…
Thus was born app servers.
Put as many apps as
possible on a server.
Maximize the return on investment.
But that has some
unintended side effects.
Shared resources.
One application’s bug could
take down multiple apps.
Coordinating changes hurts.
“Your app can’t get this feature
until all other apps are ready.”
Currency === 18 months of
freezes, testing, frustration.
Organizations ignored currency
issues…pain wasn’t “worth it”.
–Yoda
“Fear is the path to the dark side.
Fear leads to anger. Anger leads
to hate. Hate leads to suffering.”
#YodaOps
Move code from one
server to another…
Worked in dev…but not test.
Why?!?
The environments are
the same…right?
“Patches were applied in a
different order…”
Can I change careers?
Things started to change.
Servers became commodities.
Linux and Intel chips replaced
custom OS on specialized silicon.
https://mobile.twitter.com/linux/status/936877536780283905?lang=en
Prices dropped.
Servers were no longer the
constraining factor.
People costs eclipsed
hardware costs.
Heroku, AWS, Google App
Egine, Cloud Foundry, Azure.
Shared servers became a liability.
Treat them like cattle…when
they get sick, get a new one.
Evolving to Cloud-Native - Nate Schutta (1/2)
New abstractions.
Containers and PaaS
changed the game.
Package the app up with
everything it needs.
Move *that* to a
different environment.
Works in dev? You’re testing the
exact same thing in test.
So. Much. Win.
Your app needs a spiffy
new library? Go ahead!
It doesn’t impact any other app
because you are isolated.
Moves the value line.
Less “undifferentiated heavy lifting”.
https://mobile.twitter.com/onsijoe/status/598235841635360768?lang=en
Changes development.
Always be changing.
Run experiments. A/B testing.
Respond to business changes.
Deliver in days not months.
https://mobile.twitter.com/ntschutta/status/938109379995353088
Speed matters.
Disruption impacts every business.
Your industry is not immune.
Amazon Prime customers can
order from Whole Foods.
Some insurance companies
view Google as a competitor.
We’re all technology
companies today.
12 factors
Twelve Factor App.
https://12factor.net
Characteristics shared by
successful apps.
At least at Heroku.
I. One codebase in version
control, multiple deploys.
Version control isn’t
controversial. Right?!?
Sharing code? It better
be in a library then…
II. Explicitly define your
dependencies.
Do not rely on something just
“being there” on the server.
If you need it, declare it.
III. Configuration must be
separate from the code.
The things that vary from
environment to environment.
Could you open source
that app right now?
IV. Backing services are just
attached resources.
Should be trivial to swap out a
local database for a test db.
In other words, loose coupling.
V. Build, release, run.
Deployment pipeline anyone?
Build the executable…
Deploy the executable with the
proper configuration…
Launch the executable in a
given environment.
VI. Stateless - share nothing.
State must be stored via some
kind of backing service.
In other words, you cannot rely
on the filesystem or memory.
Recovery. Scaling.
VII. Export services via port binding.
App exports a port, listens for
incoming requests.
localhost for development,
load balancer for public facing.
VIII. Scale via process.
In other words, scale horizontally.
IX. Start up fast, shut
down gracefully.
Processes aren’t pets,
they are disposable.
Processes can be started (or
stopped) quickly and easily.
Ideally, start up is seconds.
Also can handle
unexpected terminations!
X. Dev/Prod parity.
From commit to production
should be hours…maybe days.
Definitely not weeks.
Developers should be involved
in deploys and prod ops.
Regions should be identical. Or
as close as possible to identical.
Backing services should be the
same in dev and prod.
Using one DB in dev and
another in prod invites pain.
XI. Logs as event streams.
Don’t write logs to the filesystem!
It won’t be there later…
Write to stdout.
Stream can be routed any
number of places.
And then consumed via a
wide variety of tools.
XII. Admin tasks run as
one off processes.
Database migrations for instance.
REPL for the win.
Run in an identical environment
to the long running processes.
Your legacy apps will
violate some factors.
Maybe all 12!
In general…
II. Explicitly define your
dependencies.
Probably one of the
harder ones to satisfy.
Do we really need this library?
“It works, don’t touch it.”
III. Configuration must be
separate from the code.
Many an app has
hardcoded credentials.
Hardcoded database connections.
VI. Stateless - share nothing.
Also can be challenging.
Many apps were designed
around a specific flow.
Page 2 left debris for Page 3!
“Just stash that in session”.
IX. Start up fast, shut
down gracefully.
Many apps take way
too long to start up…
Impacts health checks.
X. Dev/Prod parity.
Environments should be consistent!
Shorten code to prod cycle.
“It worked in test…”
Do your applications have to be
fully 12 factor compliant?
Nope.
Is it a good goal?
Sure.
But be pragmatic.
Certain attributes lessen the
advantages of cloud.
Long startup time hurts elastic
scaling & self healing.
Think of it as a continuum.
12 Factor Compliance
Benefits of Cloud Deployment
Developers also talk
about 15 factor apps.
aka Beyond the Twelve-Factor App.
https://content.pivotal.io/blog/beyond-the-twelve-factor-app
However you define it…
To maximize what
the cloud gives us…
Applications need to be
designed properly.
Legacy applications will fall short.
Opportunistically refactor!
Building greenfield?

More Related Content

PDF
Evolving to Cloud-Native - Nate Schutta (2/2)
PPTX
The Cloud Native Journey with Simon Elisha
PDF
devops, microservices, and platforms, oh my!
PDF
Cloud Native Operations
PDF
DevOps and Cloud Native
PDF
devops, platforms and devops platforms
PPTX
DevOps, containers & microservices: Separating the hype from the reality
PDF
Goto Berlin - Migrating to Microservices (Fast Delivery)
Evolving to Cloud-Native - Nate Schutta (2/2)
The Cloud Native Journey with Simon Elisha
devops, microservices, and platforms, oh my!
Cloud Native Operations
DevOps and Cloud Native
devops, platforms and devops platforms
DevOps, containers & microservices: Separating the hype from the reality
Goto Berlin - Migrating to Microservices (Fast Delivery)

What's hot (20)

PDF
Cloud Native Architecture Patterns Tutorial
PDF
DevOps, Microservices and containers - a high level overview
PPTX
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
PDF
Accelerating Time to Market
PDF
Unlocked: the Hybrid Cloud - 12th May 2014 / All Slides (morning)
PDF
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
PDF
Cloud Foundry Summit 2015: Leaving your Comfort Zone - Garmin and Cloud Foundry
PPTX
Pulling Back the Curtain – CloudStack in Private and Community Clouds
PDF
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
PDF
Keynote: Software Kept Eating the World (Pivotal Cloud Platform Roadshow)
PPTX
Why to Cloud Native
PDF
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
PDF
Dockercon 2015 - Faster Cheaper Safer
PDF
Patterns of Cloud Native Architecture
PDF
Bi-modal IT: Bridge Traditional and Agile IT Services by Michal Svec, SUSE
PDF
Evolving to Cloud-Native - Nate Schutta 2/2
PDF
Cloud Native DevOps
PPTX
CloudWorld: What Does Cloud-Native Mean Anyway?
PDF
Evolving to Cloud-Native - Nate Schutta 1/2
PDF
When Developers Operate and Operators Develop
Cloud Native Architecture Patterns Tutorial
DevOps, Microservices and containers - a high level overview
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Accelerating Time to Market
Unlocked: the Hybrid Cloud - 12th May 2014 / All Slides (morning)
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry Summit 2015: Leaving your Comfort Zone - Garmin and Cloud Foundry
Pulling Back the Curtain – CloudStack in Private and Community Clouds
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Software Kept Eating the World (Pivotal Cloud Platform Roadshow)
Why to Cloud Native
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Dockercon 2015 - Faster Cheaper Safer
Patterns of Cloud Native Architecture
Bi-modal IT: Bridge Traditional and Agile IT Services by Michal Svec, SUSE
Evolving to Cloud-Native - Nate Schutta 2/2
Cloud Native DevOps
CloudWorld: What Does Cloud-Native Mean Anyway?
Evolving to Cloud-Native - Nate Schutta 1/2
When Developers Operate and Operators Develop
Ad

Similar to Evolving to Cloud-Native - Nate Schutta (1/2) (20)

PDF
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
PDF
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
PDF
Evolving to Cloud-Native - Anand Rao
PPTX
The twelve factor app
PDF
15-factor-apps.pdf
PDF
Agile and continuous delivery – How IBM Watson Workspace is built
PDF
Cloud Native Application Development Guide – 2023
PPTX
The Twelve-Factor App
PDF
Adopting the Cloud
PPTX
Build 12-Factor apps with Docker
PPTX
Ensuring Cloud Native Success: The Greenfield Journey
PDF
Cloud-Native Workshop - Santa Monica
PDF
How to Design a Backend for IoT
PDF
Success Factors for a Mature Microservices Implementation
PDF
Cloud Native Application Development
PDF
Cloud Native Future
PPTX
Breaking the Monolith
PDF
.NET Cloud-Native Bootcamp- Los Angeles
PPTX
Cloud journey mikevilliger
PDF
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
Evolving to Cloud-Native - Anand Rao
The twelve factor app
15-factor-apps.pdf
Agile and continuous delivery – How IBM Watson Workspace is built
Cloud Native Application Development Guide – 2023
The Twelve-Factor App
Adopting the Cloud
Build 12-Factor apps with Docker
Ensuring Cloud Native Success: The Greenfield Journey
Cloud-Native Workshop - Santa Monica
How to Design a Backend for IoT
Success Factors for a Mature Microservices Implementation
Cloud Native Application Development
Cloud Native Future
Breaking the Monolith
.NET Cloud-Native Bootcamp- Los Angeles
Cloud journey mikevilliger
Ad

More from VMware Tanzu (20)

PDF
Spring into AI presented by Dan Vega 5/14
PDF
What AI Means For Your Product Strategy And What To Do About It
PDF
Make the Right Thing the Obvious Thing at Cardinal Health 2023
PPTX
Enhancing DevEx and Simplifying Operations at Scale
PDF
Spring Update | July 2023
PPTX
Platforms, Platform Engineering, & Platform as a Product
PPTX
Building Cloud Ready Apps
PDF
Spring Boot 3 And Beyond
PDF
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
PDF
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
PDF
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
PPTX
tanzu_developer_connect.pptx
PDF
Tanzu Virtual Developer Connect Workshop - French
PDF
Tanzu Developer Connect Workshop - English
PDF
Virtual Developer Connect Workshop - English
PDF
Tanzu Developer Connect - French
PDF
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
PDF
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
PDF
SpringOne Tour: The Influential Software Engineer
PDF
SpringOne Tour: Domain-Driven Design: Theory vs Practice
Spring into AI presented by Dan Vega 5/14
What AI Means For Your Product Strategy And What To Do About It
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Enhancing DevEx and Simplifying Operations at Scale
Spring Update | July 2023
Platforms, Platform Engineering, & Platform as a Product
Building Cloud Ready Apps
Spring Boot 3 And Beyond
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
tanzu_developer_connect.pptx
Tanzu Virtual Developer Connect Workshop - French
Tanzu Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
Tanzu Developer Connect - French
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: Domain-Driven Design: Theory vs Practice

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Cloud computing and distributed systems.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Advanced IT Governance
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
MYSQL Presentation for SQL database connectivity
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
Teaching material agriculture food technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Understanding_Digital_Forensics_Presentation.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Cloud computing and distributed systems.
“AI and Expert System Decision Support & Business Intelligence Systems”
Advanced Soft Computing BINUS July 2025.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Advanced IT Governance
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Monthly Chronicles - July 2025
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
The AUB Centre for AI in Media Proposal.docx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MYSQL Presentation for SQL database connectivity
NewMind AI Weekly Chronicles - August'25 Week I
Diabetes mellitus diagnosis method based random forest with bat algorithm
Teaching material agriculture food technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
CIFDAQ's Market Insight: SEC Turns Pro Crypto

Evolving to Cloud-Native - Nate Schutta (1/2)