patterns of cloud native architecture

49
open source, patterns, cloud native architecture Andrew Clay Shafer & Josh Long the adventures of @littleidea & @starbuxman

Upload: andrew-shafer

Post on 19-Aug-2015

1.213 views

Category:

Technology


6 download

TRANSCRIPT

open source, patterns, cloud native architecture

Andrew Clay Shafer & Josh Long

the adventures of @littleidea & @starbuxman

continuously deploying microservicesAndrew Clay Shafer & Josh Long

the adventures of @littleidea & @starbuxman

the devops contractAndrew 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

OperationsThe ‘Not So Secret Any More’ Sauce

cloud native operations: • api driven • service centric • change enabling

Learn BOSHhttp://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 busworker

VMsIaaS

object storage

health monitor

Learning BOSH

lots of other toolsyou 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

LinuxLinuxLinux 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 toolsyou 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 toolsyou 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 toolsyou 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/