Post on 12-Apr-2017
Chris HaddadChief Architect
haddadc@karux.net @cobiacomm
EIGHT MILES HIGH: BUILD CLOUD-NATIVE AND
CLOUD-AWARE SYSTEMS
• Why evolve?
• Cloud-Native Design Patterns
• Cloud-Native Frameworks
Status Quo?
• Development Velocity• Development Iterations• Reliability and Uptime• Scale and Performance
Don’t Forklift Static Topologies into the Cloud
Source: http://www.ibm.com/developerworks/websphere/techjournal/1001_vanrun/1001_vanrun.html
Free DevOps from expensive static deployments and glacial refresh cycles
Deploy with ConfidenceGOAL STATE
• Reduce Technical Debt• Optimize Scalability• Foster Anti-fragility and Resiliency• Deliver Highly Responsive Applications
ANTI-FRAGILE CONTINUOUS INTEGRATION/DELIVERY PATTERN… to exert a constant stress on your delivery and deployment process to reduce its fragility so that releasing becomes a boring, low-risk activity.
Jez Humble, “On Antifragility in Systems and Organizational Structure”http://continuousdelivery.com/2013/01/on-antifragility-in-systems-and-organizational-architecture/
Rapid, iterative, seamless, rolling updates.
Microservices, containerized, DevOpsCLOUD-NATIVE
Learn more at https://cncf.io/
Into Cloud-Native MicroservicesDECOMPOSE MONOLITHS
• Bounded Context• Small domain• Run in it’s own process• Service interface• *owns data storage
IDENTIFY BOUNDED CONTEXTS AND DOMAINS
Source: http://www.slideshare.net/aca_it/modularity-ddd
API-FIRST , SERVICE ORIENTED
Source: https://www.nginx.com/blog/introduction-to-microservices/
Spin up discrete infrastructure services on demand.
Server Profile• Lightweight• Self-contained• Deterministic• Dynamic Discovery• Dynamic Composition
Requires a next generation stackMICROSERVICES
• Service Discovery
• Service Monitoring
• Circuit Breakers
• Full-Stack Templates
Server-sideSERVICE DISCOVERY
Source: https://www.nginx.com/blog/introduction-to-microservices/
Client-SideSERVICE DISCOVERY
Source: https://www.nginx.com/blog/introduction-to-microservices/
SINGLE DEPENDENCY DELAY CAUSING BLOCKING OF USER REQUEST
Source: http://www.slideshare.net/yang75108/antifragile-microservices-and-devops-a-study
ALL USER REQUESTS WILL BE BLOCKED AT PEAK HOUR(CASCADING FAILURE)
Source: http://www.slideshare.net/yang75108/antifragile-microservices-and-devops-a-study
Fail-fast and dynamically resetCIRCUIT BREAKER
Source: http://martinfowler.com/bliki/CircuitBreaker.html
CIRCUIT BREAKER & BULKHEAD ISOLATION PATTERN
https://github.com/Netflix/Hystrix
• Service-Oriented• Just a single service• Compose multiple services
• Ask for run-time information• Location• Policies
• Respect Data Gravity• Shard data• Cache and Eventual
consistency
Cloud-Aware Applications
• Actor-model interactions• Map-reduce processing• Event Sourcing• Ephemeral Containers
Cloud-Native Design Patterns
Actor-model InteractionsCONCURRENT PROCESSING
Source: http://arild.github.io/akka-workshop/#7
Map-ReduceDIVIDE AND CONQUER
Event SourcingSHARD AND SEPARATE
Source: http://martinfowler.com/eaaDev/EventSourcing.html
Ephemeral ContainersAGILE CONTINUOUS DELIVERY
NEW STACK REQUIREMENTS• Self-contained, Lightweight, Minimalistic• Service-Oriented, API-Friendly• Powerful transport module • Configuration Management • Bootstrapping , dependency and Lifecycle
Management • Runtime Insights and Diagnostics • Service discovery
Spring Boothttp://projects.spring.io/spring-boot/
DropWizardhttps://dropwizard.github.io/dropwizard/index.html
NetFlix Karyonhttps://github.com/Netflix/karyon
• Software Defined Networking• Weave• Calico• Flannel
•Container Scheduling and Orchestration• Mesos• Kubernetes
•Full Stack Templates• Docker compose, Kubernetes
•Monitoring and Management• Netflix Cloud OSS
•Service Discovery• Eureka, Consul, etcd
CLOUD-NATIVE FRAMEWORKS
•Actor-Model• Akka
•Map-Reduce• Hadoop• Kubernetes
•Eventual Consistency• Cassandra• Redis
•Circuit Breakers• Hysterix
CLOUD-NATIVE FRAMEWORKS
Contact us at http://karux.nethaddadc@karux.net@cobiacomm
JOURNEY TO THE CLOUDS
• Re-shape Architecture
• Re-fresh Platform
• Re-build Team Collaboration
• Re-invent Delivery