open source, patterns,
cloud native architecture
Andrew Clay Shafer & Josh Long
the adventures of @littleidea & @starbuxman
continuously deploying
microservices
Andrew Clay Shafer & Josh Long
the adventures of @littleidea & @starbuxman
the devops contract
Andrew Clay Shafer & Josh Long
the adventures of @littleidea & @starbuxman
@littleidea @starbuxman
that devops guy Java champion
changing the way the world builds software
Principles > Practices > Tools
cloud
There is something
happening here.
distributed systems deploying
distributed systems deploying
distributed systems
distributed systems operating
distributed systems operating
distributed systems
conclusion:
continuous delivery - why
microservices - what
devops - how
going faster and safer
continuously delivered
microservices are the natural
evolution for services that
need to operated at scale and
also be changed frequently
also, despite what you might
have heard, if you want to move
fast at scale, architecture matters
you must be this tall
• rapid provisioning
• basic monitoring
• rapid deployment
• devops culture
everything we share
today is open source
byoc:
bring your own culture
Operations
The ‘Not So Secret Any More’ Sauce
cloud native operations:
• api driven
• service centric
• change enabling
Learn BOSH
http://mariash.github.io/learn-bosh/
• Identifiability
• Reproducibility
• Consistency
• Agility
Why BOSH?
• multi-cloud
• clean separation of systems
• consistent rapid provisioning
• scale up/scale down
• built in health monitoring
• fault remediation
• canary deployments
BOSH Contract
•current_vm_id
•create_stemcell
•delete_stemcell
•create_vm
•delete_vm
•has_vm?
•reboot_vm
•set_vm_metadata
•configure_networks
•create_disk
•delete_disk
•attach_disk
•snapshot_disk
•delete_snapshot
•detach_disk
•get_disks
CLI
Director
message
bus
worker
VMs
IaaS
object storage
health
monitor
Learning BOSH
lots of other tools
you don’t have to use mine
understanding BOSH can will make whatever you do better
cloud native runtimes:
• distributed scheduling
• process/containers
• integrated pipelines
• fault remediation
• the new middleware
routers
Linux
LinuxLinux
Containers
message
bus
cloud controller
loggregators
controller
DB
etcd
hm9000
metrics firehose
a couple dozen services
UAA
login
What even is Elastic Runtime?
service
brokers
object
store
stagers
looks suspiciously like
Platform as a Service
•role based access
•on demand deploy
•coordinate across services
•routing requests
•read, write data
•add/remove resources
•emit and record events
•isolate resources/failures
•measure performance/health
•detect failures
•remediate failures
•work on day 2
Platform Contract/Capabilities
ad hoc automation is a problem
masquerading as a solution
A platform makes promises.
A contract allows the platform to
keep promises.
lots of other tools
you don’t have to use mine
understand Cloud Foundry Elastic Runtime
cloud native application:
• 12 factor contract
• composable
• discoverable
• fault tolerant
•I. Codebase
•II. Dependencies
•III. Config
•IV. Backing Services
•Build, release, run
•VI. Processes
•VII. Port binding
•VIII. Concurrency
•IX. Disposability
•X. Dev/prod parity
•XI. Logs
•XII. Admin processes
‘boot’ makes microservices easy
‘cloud’ provides composable patterns
• configuration service
• service registry
• service discovery
• load balancing
• circuit breaker
• micro-proxy
• api gateways
If you are one of those people who like to read books…
lots of other tools
you don’t have to use mine
understand Spring Cloud/Spring Boot/NetflixOSS
Runtimes
Infrastructures
Applications
contract
contract
Cultures
Cloud Native
ask me about
cloud native
continuous integration
:)
http://ci.concourse.ci/
lots of other tools
you don’t have to use mine
but concourse.ci will blow your mind
Principles > Practices > Tools
changing the way the world builds software
We are uncovering better
ways of developing
software by doing it and
helping others do it.
Resources
• Cloud Foundry https://www.cloudfoundry.org/
• Learn BOSH https://github.com/mariash/learn-bosh
• Lattice http://lattice.cf/
• Spring http://spring.io/
• Netflix OSS https://netflix.github.io/
• Concourse http://concourse.ci/

Patterns of Cloud Native Architecture