slidenumbers: true
Matt Stine @mstine Principal Software Engineer Pivotal [email protected]
FREE - Compliments of Pivotal
http://bit.ly/cloud-native-book
Now that you have Cloud Foundry, what are you going to do with it?
Loosely coupled service oriented architecture with bounded contexts... -- Adrian Cockcroft
#You must be this tall to use Microservices
- RAPID PROVISIONING
- BASIC MONITORING
- RAPID APPLICATION DEPLOYMENT
- DEVOPS CULTURE
http://martinfowler.com/bliki/MicroservicePrerequisites.html
- Environment Provisioning
- On-Demand Scaling
- Failover/Resilience
- Routing/Load Balancing
- Data Service Operations (BOSH)
- Monitoring
- Configuration Management
- Service Registration & Discovery
- Routing & Load Balancing
- Fault Tolerance
- Monitoring
We need a representation of the composite system!
---
memory: 512M
instances: 1
no-route: true
services:
- cloudamqp-autoscale
applications:
- name: worker-process
path: worker-process/build/libs/worker-process.jar
- name: producer-process
path: producer/build/libs/producer.jar
- name: autoscaler-process
path: autoscaler/build/libs/autoscaler.jar
- name: autoscale-monitor
no-route: false
host: autoscale-monitor-${random-word}
path: monitor/build/libs/monitor.jar
^ The manifest is not sufficient...
Like BOSH, but for microservices?
You write it, you run it!
- Config Server / Cloud Bus
- Eureka (Service Registry)
- Ribbon (Load Balancer)
- Hystrix (Circuit Breakers)
- Zuul (Intelligent Routing)
"CF_INSTANCE_INDEX"=>"0",
"CF_INSTANCE_IP"=>"1.2.3.4",
"CF_INSTANCE_PORT"=>"5678",
"CF_INSTANCE_ADDR"=>"1.2.3.4:5678",
"CF_INSTANCE_PORTS"=>[{external:80,internal:5678}]
properties:
dea_next:
allow_host_access: true
- Alternative Stacks (Consul, Zookeeper, etcd, JRugged, ...)
- Distributed Request Tracing/Correlation (i.e. Dapper/Zipkin)
- Stateful Patterns (Leader Election, Locks, State Machine)
- Developer Workflow Improvements
- Switches (Canaries, Feature Toggles, Surgical Routing, ...)
- ???
- http://cloud.spring.io
- http://spring.io/blog/2015/04/06/lattice-and-spring-cloud-resilient-sub-structure-for-your-cloud-native-spring-applications
- http://lattice.cf
- http://netflix.github.io