Eight Miles High: Build Cloud-native and Cloud-aware Systems

31
Chris Haddad Chief Architect [email protected] @cobiacomm EIGHT MILES HIGH: BUILD CLOUD-NATIVE AND CLOUD-AWARE SYSTEMS

Transcript of Eight Miles High: Build Cloud-native and Cloud-aware Systems

Page 1: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Chris HaddadChief Architect

[email protected] @cobiacomm

EIGHT MILES HIGH: BUILD CLOUD-NATIVE AND

CLOUD-AWARE SYSTEMS

Page 2: Eight Miles High: Build Cloud-native and Cloud-aware Systems

• Why evolve?

• Cloud-Native Design Patterns

• Cloud-Native Frameworks

Page 3: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Status Quo?

• Development Velocity• Development Iterations• Reliability and Uptime• Scale and Performance

Page 4: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Don’t Forklift Static Topologies into the Cloud

Source: http://www.ibm.com/developerworks/websphere/techjournal/1001_vanrun/1001_vanrun.html

Page 5: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Free DevOps from expensive static deployments and glacial refresh cycles

Page 6: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Deploy with ConfidenceGOAL STATE

• Reduce Technical Debt• Optimize Scalability• Foster Anti-fragility and Resiliency• Deliver Highly Responsive Applications

Page 8: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Rapid, iterative, seamless, rolling updates.

Page 9: Eight Miles High: Build Cloud-native and Cloud-aware Systems
Page 10: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Microservices, containerized, DevOpsCLOUD-NATIVE

Learn more at https://cncf.io/

Page 11: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Into Cloud-Native MicroservicesDECOMPOSE MONOLITHS

• Bounded Context• Small domain• Run in it’s own process• Service interface• *owns data storage

Page 12: Eight Miles High: Build Cloud-native and Cloud-aware Systems

IDENTIFY BOUNDED CONTEXTS AND DOMAINS

Source: http://www.slideshare.net/aca_it/modularity-ddd

Page 13: Eight Miles High: Build Cloud-native and Cloud-aware Systems

API-FIRST , SERVICE ORIENTED

Source: https://www.nginx.com/blog/introduction-to-microservices/

Page 14: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Spin up discrete infrastructure services on demand.

Server Profile• Lightweight• Self-contained• Deterministic• Dynamic Discovery• Dynamic Composition

Page 15: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Requires a next generation stackMICROSERVICES

• Service Discovery

• Service Monitoring

• Circuit Breakers

• Full-Stack Templates

Page 16: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Server-sideSERVICE DISCOVERY

Source: https://www.nginx.com/blog/introduction-to-microservices/

Page 17: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Client-SideSERVICE DISCOVERY

Source: https://www.nginx.com/blog/introduction-to-microservices/

Page 18: Eight Miles High: Build Cloud-native and Cloud-aware Systems

SINGLE DEPENDENCY DELAY CAUSING BLOCKING OF USER REQUEST

Source: http://www.slideshare.net/yang75108/antifragile-microservices-and-devops-a-study

Page 19: Eight Miles High: Build Cloud-native and Cloud-aware Systems

ALL USER REQUESTS WILL BE BLOCKED AT PEAK HOUR(CASCADING FAILURE)

Source: http://www.slideshare.net/yang75108/antifragile-microservices-and-devops-a-study

Page 20: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Fail-fast and dynamically resetCIRCUIT BREAKER

Source: http://martinfowler.com/bliki/CircuitBreaker.html

Page 21: Eight Miles High: Build Cloud-native and Cloud-aware Systems

CIRCUIT BREAKER & BULKHEAD ISOLATION PATTERN

https://github.com/Netflix/Hystrix

Page 22: Eight Miles High: Build Cloud-native and Cloud-aware Systems

• 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

Page 23: Eight Miles High: Build Cloud-native and Cloud-aware Systems

• Actor-model interactions• Map-reduce processing• Event Sourcing• Ephemeral Containers

Cloud-Native Design Patterns

Page 24: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Actor-model InteractionsCONCURRENT PROCESSING

Source: http://arild.github.io/akka-workshop/#7

Page 25: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Map-ReduceDIVIDE AND CONQUER

Page 26: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Event SourcingSHARD AND SEPARATE

Source: http://martinfowler.com/eaaDev/EventSourcing.html

Page 27: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Ephemeral ContainersAGILE CONTINUOUS DELIVERY

Page 28: Eight Miles High: Build Cloud-native and Cloud-aware Systems

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

Page 29: Eight Miles High: Build Cloud-native and Cloud-aware Systems

• 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

Page 30: Eight Miles High: Build Cloud-native and Cloud-aware Systems

•Actor-Model• Akka

•Map-Reduce• Hadoop• Kubernetes

•Eventual Consistency• Cassandra• Redis

•Circuit Breakers• Hysterix

CLOUD-NATIVE FRAMEWORKS

Page 31: Eight Miles High: Build Cloud-native and Cloud-aware Systems

Contact us at http://[email protected]@cobiacomm

JOURNEY TO THE CLOUDS

• Re-shape Architecture

• Re-fresh Platform

• Re-build Team Collaboration

• Re-invent Delivery