kubernetes + netflix oss

48
Microservices with Spring Cloud and Kubernetes

Upload: cristiano-altmann

Post on 22-Jan-2018

341 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Kubernetes + netflix oss

Microservices with Spring

Cloud and Kubernetes

Page 2: Kubernetes + netflix oss

About Cristiano Altmann

● Desenvolvedor de software +10 anos

● Ilegra desde novembro / 2016

● Interesse:

○ Microservices

○ Reactive services

○ Event source + cqrs

● https://www.linkedin.com/in/crisaltmann/

Page 3: Kubernetes + netflix oss

About José Porto

● Desenvolvedor de software +10 anos

● Ilegra desde agosto / 2016

● Interesse:

○ Microservices

○ Big Data

○ Functional Programming

● https://www.linkedin.com/in/jose-eduardo-porto/

Page 4: Kubernetes + netflix oss

Summary

● Motivations

● High level architecture

● Kubernetes

● Spring cloud

● Conclusion

Page 5: Kubernetes + netflix oss

Motivations

● Organizational

○ IT Delivery

○ Legacy system

○ Multiple squads, same software

● TI

○ Scale

○ Operational costs

● Business

○ Time to market

Page 6: Kubernetes + netflix oss

High Level Architecture

MS A MS B MS C

Page 7: Kubernetes + netflix oss

High Level Architecture

MS A MS B MS C

Page 8: Kubernetes + netflix oss

Kubernetes

Kubernetes is an open-source system for

automating deployment, scaling, and

management of containerized applications.

Page 9: Kubernetes + netflix oss

Kubernetes

● Create by Google

● Active community (RedHat, Google, …)

● Scheduler

● Hybrid (public or private cloud)

● API REST

Page 10: Kubernetes + netflix oss

Kubernetes - concepts

● Deployment

● Pod

● Service

● Node

● Replication controller

Page 11: Kubernetes + netflix oss

Kubernetes - Node

● Worker machine

● Where pods are running

Page 12: Kubernetes + netflix oss

Kubernetes - Deployment

● Configure a desired state

○ Number of replicas

○ Docker image

○ Readiness and liveness probe

○ Environment Variables

● Replica Controller read and control the cluster based on it.

● Namespace

Page 13: Kubernetes + netflix oss

Kubernetes - Deployment

Page 14: Kubernetes + netflix oss

Kubernetes - Pod

● Instance of a deployment

● Pod is the container in execution

● Replication Controller delete, restart and create pods

Page 15: Kubernetes + netflix oss

Kubernetes - Pod

● Instance of a deployment

● Pod is the container in execution

● Replication Controller delete, restart and create pods

Page 16: Kubernetes + netflix oss

Kubernetes - Deployment - Pod

Page 17: Kubernetes + netflix oss

Kubernetes - Service

● Pods are mortal

● Dynamic ip and port

● Select pod by label

● Load Balancer

● Provide external access

Page 18: Kubernetes + netflix oss

Kubernetes - Summary

Page 19: Kubernetes + netflix oss

Kubernetes - Zero downtime

● Readiness probe

● Liveness probe

Page 20: Kubernetes + netflix oss

Spring Cloud

MS A MS B MS C MS A MS B MS C

Page 21: Kubernetes + netflix oss

Spring Cloud

MS A MS B MS C MS A MS B MS C

Page 22: Kubernetes + netflix oss

Technologies

● Java 8

● Spring Boot

● NodeJS

Page 23: Kubernetes + netflix oss

Spring Cloud Netflix

● Dados gerais do netflix

Page 24: Kubernetes + netflix oss

Ribbon

● Integration with service discovery

● Fault tolerance

● Clients integrated with load balancers

● Implements Circuit Breaker pattern

● Support to protocols (HTTP, TCP, UDP)

Page 25: Kubernetes + netflix oss

● RoundRobinRule

● AvailabilityFilteringRule

● WeightedResponseTimeRule

Ribbon - Load Balanced Rules

Page 26: Kubernetes + netflix oss

Ribbon - Load Balanced

Service A

Service B

Service B

Page 27: Kubernetes + netflix oss

Ribbon - Load Balanced

Service A

Service B

Service B

Page 28: Kubernetes + netflix oss

Ribbon

Page 29: Kubernetes + netflix oss

Ribbon

Page 30: Kubernetes + netflix oss

Ribbon

Page 31: Kubernetes + netflix oss

Ribbon

Page 32: Kubernetes + netflix oss

Feign

● Connection to HTTP APIs

● Uses minimal overhead and code

● Abstraction for Ribbon and Hystrix

Page 33: Kubernetes + netflix oss

Feign

Page 34: Kubernetes + netflix oss

Feign

Page 35: Kubernetes + netflix oss

Feign

Page 36: Kubernetes + netflix oss

Hystrix

● Circuit break pattern

● Timeout

● Fallback

● Real-time operations

● Concurrency

Page 37: Kubernetes + netflix oss

Hystrix - Circuit Breaker

Page 38: Kubernetes + netflix oss

Hystrix

Service A Service B Service C

API

Browser Mobile

Page 39: Kubernetes + netflix oss

Hystrix

Service A Service B Service C

API

Browser Mobile

Fallback

Page 40: Kubernetes + netflix oss

Hystrix - Fallback Method

Page 41: Kubernetes + netflix oss

Hystrix

● Turbine stream

● Metrics from Dashboard

● Several indicators:

○ Circuit state

○ Latency

○ Request rate

○ Error percentage from 10 last requests

Page 42: Kubernetes + netflix oss

Hystrix - Config App

Page 43: Kubernetes + netflix oss

Hystrix - Stream

Page 44: Kubernetes + netflix oss

Hystrix - Dashboard

Page 45: Kubernetes + netflix oss

Spring Cloud Config

● Config model spring (application, profile, label)

● Multiple EnvironmentRepository

○ GIT

○ JDBC

○ Filesystem

○ Vault

● Authorization

● Lightweight

● REST API

Page 46: Kubernetes + netflix oss

Spring Cloud Config

Page 47: Kubernetes + netflix oss

● Fast and easy to deploy applications

● Metrics

● Resilience

● Easy monitoring

● Services separate by squad

● DevOps

● Delivery speed

Conclusions

Page 48: Kubernetes + netflix oss