SlideShare a Scribd company logo
Dipping Your Toes Into Cloud
Native Application
Development
Who is this guy?
– mattfarina.com, @mattfarina
– Principal Engineer, Advanced Technology
Group, Hewlett Packard Enterprise
– Go, Node.js, PHP, Ruby, Python, .NET… in
just past 5 years
– Recently wrote book, β€œGo in Practice”
– Co-lead Kubernetes SIG Apps
– Likes to build things in the cloud
– Doesn’t like bullet lists
2
3By Swaminathan https://www.flickr.com/photos/araswami/2284451064/
Been doing cloud for 6 years and cloud
native for 4 years. Yes, there is a
difference
4By Ted Silveira https://www.flickr.com/photos/cafebongo/14062452417/
Went from a large monolithic pet app to
a cloud native application through a
practical process
5By Dubwise Version https://www.flickr.com/photos/dubwise_version/4718137117
1.Why care about cloud native
development?
2.What is cloud native?
3.What tools can be used?
4.How can you get from here to
there?
6
Why care about
cloud native?
7
8By: Fernando FrazΓ£o/AgΓͺncia Brasil
Speed and Flexibility
9
Almost No Downtime
By: Marcin Wichary
What does cloud
native really
mean?
10
β€œcontainer packaged,
dynamically scheduled,
and microservices based
application development
and operations.”
– Cloud Native Computing Foundation (CNCF)
11
β€œcontainer packaged”
12By Sergio Morchon https://www.flickr.com/photos/smorchon/2431349077/
Containers isn’t just Docker…
13
Does this mean I
can’t do cloud
native with VMs?
14
β€œdynamically scheduled”
15
Method 1: You Manage It
16
Object
Storage
Chef, Ansible, or Puppet
Network
Compute
Compute
Compute
Compute
Compute
Compute
Compute
Compute
But, what way do most desktop applications work?
Choice 1 Choice B
17
App Laptop
Desktop
Pro Desktop
App CPU(s)
RAM
Drives
NIC(s)
Method 2: Datacenter/Cluster as a Computer
18
Computer
β€’ Could be a
datacenter, rack,
or single
computer
β€’ Manages the
needed infra
and changes for
your apps for
you
β€’ Think of it as
one computer
rather than
managed
collection
REST API
What’s Happening Inside The Computer?
19
Computer
REST API
Router
Scheduler
App 1 App 2
App 3 App 4
Storage
Config
20
Combined Truth
21
ComputerREST API
Server
Server
Server Server
Server
Server
Router
Router
Router
Chef,
Ansible, or
Puppet
As app devs and operators see it What infra devs and operators do
Managing Apps and a Datacenter as a Computer
22
What You Can Use Today
23
β€œmicroservices based”
What is a microservice?
–Small
–Focused on doing one thing well (single responsibility principle)
–Independently deployable
–Clearly defined API for interaction
–Potentially reusable in other systems
24
25
Monolithic App
Monolithic App
Monolithic App
Monolithic App
…
Micro Micro Micro Micro Micro
Micro
Micro
Micro
Micro
Micro
Micro
Micro
Micro
Potential Network Problem
Don’t let the network be your bottleneck
26
What makes a good REST API?
– Versioned, typically in the URL
– Use proper HTTP methods
– Behind Authentication and Authorization
– HTTP/2 if possible (for pipelines and connection reuse)
– TLS/HTTPS (encrypted transport)
– Proper HTTP response codes
– JSON
– Open API Initiative (Swagger)
27
Reuse connections
28
HTTP/2 and Pipelining
29
12 Factor++ (12factor.net)
1. One codebase tracked in revision
control, many deploys
2. Explicitly declare and isolate
dependencies
3. Store config in the environment
4. Treat backing services as attached
resources
5. Strictly separate build and run
stages
6. Execute the app as one or more
typically stateless processes
containers
7. Export services via port binding
8. Scale out via the process model
containers
9. Maximize robustness with fast
startup and graceful shutdown
10.Keep development, staging, and
production as similar as possible
11.Treat logs as event streams
12.Run admin/management tasks as
one-off processes containers
30
Store config in the environment
31
Treat backing services as attached resources
32
Β΅
Execute the app as one or more stateless processes
33
Treat logs as event streams (stdout)
34
Pets vs cattle
35
Updating
Applications
36
37
App
(online)
App
(online)
App
(online)
App
(offline)
App
(offline)
App
(offline)
App
(update)
App
(update)
App
(update)
App
(online)
App
(online)
App
(online)
Blue / Green Deployments
Start with Green
38
RouterUsers
App
App
App
App
App
App
App
App
Blue / Green Deployments
Switch to Blue
39
RouterUsers
App
App
App
App
App
App
App
App
Canary Release
40
Rolling Updates
41
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
Rolling Updates
42
v2 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
Rolling Updates
43
v2 v2
v1 v1
v2 v2
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v2 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
v1 v1
Rolling Updates
44
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
v2 v2
3 Paths To Cloud Native:
1. Migration
2. Greenfield
3. Additive
45
Path 1: Migrating
46
My Web App Before The Cloud
47
This may look familiar
Webserver
Webserver
Webserver
Webserver
Load Balancers
Load BalancersUsers
Shared
filesystem
Via Gluster
memcached
memcached
memcached
memcached
MySQL
MySQL
MySQL
MySQL
MySQL had
master and slave
with fail over
Setup split
between two
physical locations
Individual servers managed by Chef in Prod, Test, and Dev environments
3x Web Apps
+ more coming
48
… at the same time... Experiments in the cloud
49
Object Storage
VMVM VM
VM VM VM
Network
Users
Cloud resources managed by scripts and toolchains (like Chef)
Block
Storage
50
51
52
aPaaS
53
Development Platform
54
Stackato Cluster(s)
Stackato Clusters
Production, QA, and Development Clusters
55
App 1
Load Balancers
Load BalancersUsers
memcached
memcached
memcached
MySQL
MySQL
MySQL
MySQL shifted over life of
cluster. In Stackato and
SaaS were used
Automation and scripts managed the clusters running on a IaaS (backed by
VMs, Networking, Block Storage, and Object Storage).
App 1
App 1
App 1
App 1
App 2
App 1
App 1
App N
…
Detected top level
problems and
handled some failover
Ops Managed Platform
Filesystem
Service
Stackato Clusters
Dev Process
56
Production
Stackato
QA
Stackato
Dev
Stackato
Personal
Environment(s)
CI/CDGitDev
Branch to environment:
master β†’ production
QA β†’ QA
devel β†’ Dev
Production
and QA used
blue/green
deployments
with zero
downtime
Features work on
via feature
branches
Continuous Integration is about trust
57https://commons.wikimedia.org/wiki/File:CISV_trust_game.JPG
Continuous Integration brings reproducibility
58
https://en.wikipedia.org/wiki/Assembly_line#/media/File:Ford_assembly_line_-_1913.jpg https://en.wikipedia.org/wiki/KUKA_Systems#/media/File:Application_field_automotive.jpg
What is CD in CI/CD?
Continuous Delivery
Continuous Deployment
59
Code change
pushed
Test
code
Build
Image
Store
build
...
New build
detected /
chosen
Deploy to
environment
Started With A Mono App
60
Stackato
memcached
MySQL
Filesystem
Service
App 1
Big Mono App
Started With A Mono App
61
Stackato
memcached
MySQL
Filesystem
Service
App 1Slightly Smaller
Big App
App 1Microservice
(App 2)
Path 2: Greenfield
62
Start With Your Setup
63
Computer
REST API
Setup CI
64
Environment 1
Stackato
Environment 2
Stackato
Environment 3
Stackato
Personal
Environment(s)
CI/CD
(Code Engine /
Jenkins)
GitDev
Built a Cloud Native Application
65
Stackato
DB DB DB
User Interface
Service1
Service2
Service3
Service4
ServiceN
…
SaaS
Built a Cloud Native Application
66
Docker
DB DB DB
User Interface
Service1
Service2
Service3
Service4
ServiceN
…
SaaS
Automation and ChatOps FTW
67
Path 3: Additive
68
We had a traditional application
69
These were physical but could have been VM
Webserver
Webserver
Webserver
Load Balancers
Load BalancersUsers
MongoDB
MongoDB
MongoDB
MongoDB
Setup split
between multiple
physical locations
Individual servers managed by Chef in Prod, Test, and Dev environments
Webserver
Added Cloud Native Environment
70
The legacy environment was not retired
Webserver
Webserver
Webserver MongoDB
MongoDB
MongoDB
MongoDB
Legacy App called
to cloud native app
over REST API
Webserver
Stackato
Service 1
Service 2
Service 3
Service 4
Load Balancers
Load BalancersUsers
Monitor Everything
71
Webserver
Webserver
Webserver
MongoDB
MongoDB
MongoDB
MongoDB
Webserver
Stackato
Service 1 Service 2
Load Balancers
Load BalancersUsers
Monitor Intelligently
If you didn’t monitor it did it happen?
72
Tools You Can Use
73
74
Datacenter/Cluster as a Computer
Make it easy for developers
75
Computer
REST API
Thing that deploys
Start With A Platform
Think Datacenter as a Computer
76
Lifecycle Management
Consider Helm when using Kubernetes
77
Kubernetes
REST APIHelm (to manage
deployment)
CI/CD
The CI/CD System
Make it easy for developers
78
Computer
REST APIThing that
deploys
GitDev
CI/CD Systems
There are just so many
79
Some Are Container Based By Default
80
ChatOps
81
Config service
82
Monitor Everything
83
GitHub Scientist
Plus others following suit with more language support
84
GitHub Scientist
http://githubengineering.com/scientist/
85
Questions?Matt Farina
@mattfarina
mattfarina.com / hpe.com
86

More Related Content

PDF
Introduction to Cloud Native Computing
PDF
Beyond 12 Factor - Developing Cloud Native Applications
PDF
Cloud Native Application
PDF
Intro - Cloud Native
PDF
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
PDF
Building Cloud Native Architectures with Spring
PPTX
The Cloud Native Journey
PDF
Orchestrating Cloud-Native and Traditional Application Architectures
Introduction to Cloud Native Computing
Beyond 12 Factor - Developing Cloud Native Applications
Cloud Native Application
Intro - Cloud Native
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Building Cloud Native Architectures with Spring
The Cloud Native Journey
Orchestrating Cloud-Native and Traditional Application Architectures

What's hot (20)

PPTX
Cloud Native Application Framework
PPTX
12 factor app an introduction
PPTX
Modern Application Development v1-0
PDF
The Making of a Cloud Native Application Platform
PDF
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
PDF
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
PPTX
EasyStack True Private Cloud | Quek Keng Oei
PPTX
12 factor app
PPTX
'Cloud-Native' Ecosystem - Aug 2015
PPTX
[Konveyor] adding security to dev ops for your kubernetes native applications
PPTX
FLUX - Crash Course in Cloud 2.0
PDF
The Cloud Native Journey
PPTX
Cloud Native Infrastructure Automation
PDF
DockerCon 18 Cool Hacks: solo.io
PDF
Olivier meetup-boston-2013-jan-21-v2
PPTX
Domain-driven Design
PDF
Back your app with MySQL and Redis on Cloud Foundry
PDF
Making Friendly Microservices by Michele Titlol
PPTX
Breaking the Monolith
PPTX
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Cloud Native Application Framework
12 factor app an introduction
Modern Application Development v1-0
The Making of a Cloud Native Application Platform
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
EasyStack True Private Cloud | Quek Keng Oei
12 factor app
'Cloud-Native' Ecosystem - Aug 2015
[Konveyor] adding security to dev ops for your kubernetes native applications
FLUX - Crash Course in Cloud 2.0
The Cloud Native Journey
Cloud Native Infrastructure Automation
DockerCon 18 Cool Hacks: solo.io
Olivier meetup-boston-2013-jan-21-v2
Domain-driven Design
Back your app with MySQL and Redis on Cloud Foundry
Making Friendly Microservices by Michele Titlol
Breaking the Monolith
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Ad

Similar to Dipping Your Toes Into Cloud Native Application Development (20)

PDF
Scaling frontend applications with micro-frontends Presentation.pdf
PDF
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
PDF
Intro to GitOps with Weave GitOps, Flagger and Linkerd
PDF
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
PPTX
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
PDF
Micro Frontends
PPTX
Programming the world with Docker
PPTX
Advanced deployment scenarios
PPTX
Cytoscape CI Chapter 2
PDF
The DevOps Paradigm
Β 
PDF
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
PDF
Agile Bodensee - Testautomation & Continuous Delivery Workshop
PDF
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
PDF
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
PDF
IoTWorld 2016 OSS Keynote Param Singh, Ian Skerrett
PDF
Migliorare la Developer Experience in un mondo Cloud Native
PDF
Intro to DevOps 4 undergraduates
PPTX
Docker Training - June 2015
PPTX
DevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve Poole
PDF
OSS Japan - Application Monitoring And Tracing In Kubernetes
Scaling frontend applications with micro-frontends Presentation.pdf
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Intro to GitOps with Weave GitOps, Flagger and Linkerd
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Micro Frontends
Programming the world with Docker
Advanced deployment scenarios
Cytoscape CI Chapter 2
The DevOps Paradigm
Β 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
Agile Bodensee - Testautomation & Continuous Delivery Workshop
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
IoTWorld 2016 OSS Keynote Param Singh, Ian Skerrett
Migliorare la Developer Experience in un mondo Cloud Native
Intro to DevOps 4 undergraduates
Docker Training - June 2015
DevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve Poole
OSS Japan - Application Monitoring And Tracing In Kubernetes
Ad

More from Matthew Farina (19)

PDF
How Helm, The Package Manager For Kubernetes, Works
PPTX
Exploring the Future of Helm
PDF
Helm 3
PPTX
Helm project update at cncf 2019
PPTX
Helm @ Orchestructure
PDF
Measuring How Helm Is Used
PDF
Testing Lessons Learned From The Community Charts
PDF
Kubecon SIG Apps December 2017 Update
PPTX
A Dive Into Containers and Docker
PPTX
HP Helion OpenStack and Professional Services
PPTX
Why OpenStack matters and how you can get involved
PDF
Faster front end performance
PDF
Secure your site
PDF
Faster mobile sites
PDF
Front end performance improvements
KEY
Building Faster Websites
PPT
Drupal Calendaring, A Technological Solution
KEY
Make Drupal Better
KEY
Intro To jQuery In Drupal
How Helm, The Package Manager For Kubernetes, Works
Exploring the Future of Helm
Helm 3
Helm project update at cncf 2019
Helm @ Orchestructure
Measuring How Helm Is Used
Testing Lessons Learned From The Community Charts
Kubecon SIG Apps December 2017 Update
A Dive Into Containers and Docker
HP Helion OpenStack and Professional Services
Why OpenStack matters and how you can get involved
Faster front end performance
Secure your site
Faster mobile sites
Front end performance improvements
Building Faster Websites
Drupal Calendaring, A Technological Solution
Make Drupal Better
Intro To jQuery In Drupal

Recently uploaded (20)

PPT
tcp ip networks nd ip layering assotred slides
PPTX
Funds Management Learning Material for Beg
PDF
πŸ’° π”πŠπ“πˆ πŠπ„πŒπ„ππ€ππ†π€π πŠπˆππ„π‘πŸ’πƒ π‡π€π‘πˆ 𝐈𝐍𝐈 πŸπŸŽπŸπŸ“ πŸ’°
Β 
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PDF
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
Β 
PPTX
Introduction to Information and Communication Technology
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PPTX
CSharp_Syntax_Basics.pptxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PPTX
international classification of diseases ICD-10 review PPT.pptx
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PDF
Paper PDF World Game (s) Great Redesign.pdf
PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PPTX
SAP Ariba Sourcing PPT for learning material
PDF
LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1
DOCX
Unit-3 cyber security network security of internet system
PDF
Behind the Smile Unmasking Ken Childs and the Quiet Trail of Deceit Left in H...
tcp ip networks nd ip layering assotred slides
Funds Management Learning Material for Beg
πŸ’° π”πŠπ“πˆ πŠπ„πŒπ„ππ€ππ†π€π πŠπˆππ„π‘πŸ’πƒ π‡π€π‘πˆ 𝐈𝐍𝐈 πŸπŸŽπŸπŸ“ πŸ’°
Β 
PptxGenJS_Demo_Chart_20250317130215833.pptx
522797556-Unit-2-Temperature-measurement-1-1.pptx
An introduction to the IFRS (ISSB) Stndards.pdf
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
Β 
Introduction to Information and Communication Technology
Introuction about ICD -10 and ICD-11 PPT.pptx
CSharp_Syntax_Basics.pptxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Decoding a Decade: 10 Years of Applied CTI Discipline
international classification of diseases ICD-10 review PPT.pptx
Slides PPTX World Game (s) Eco Economic Epochs.pptx
Paper PDF World Game (s) Great Redesign.pdf
introduction about ICD -10 & ICD-11 ppt.pptx
SAP Ariba Sourcing PPT for learning material
LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1
Unit-3 cyber security network security of internet system
Behind the Smile Unmasking Ken Childs and the Quiet Trail of Deceit Left in H...

Dipping Your Toes Into Cloud Native Application Development