淺談 Spring Cloud Application - Apistek

30

Transcript of 淺談 Spring Cloud Application - Apistek

Page 1: 淺談 Spring Cloud Application - Apistek
Page 2: 淺談 Spring Cloud Application - Apistek

淺談 Spring Cloud Application 轉換至 Kubernetes 的心得

黃健旻 Vincent Huang

Page 3: 淺談 Spring Cloud Application - Apistek

About Me • 💎 https://jianminhuang.cc 🙋 You can find me via my personal page

• 😎 Wide Range Skill Set Software Engineer

• 🧰 Research, Architecture, Coding, DB, Agile, Ops, Testing, Infra.

• 👨‍💻 Mainly use JVM Languages (Java > Kotlin > Scala) but also ❤🧰

Python, Node.js and Go 🚀

• 🍀 Big fan of 🍎 Hackintosh, 🌈 Corsair RGB products, 💞 Ryan in

KAKAO FRIENDS and ⌨🧰 Mechnical Keyboard

Page 4: 淺談 Spring Cloud Application - Apistek

Netflix OSS ● Netflix Open Source Software

– Eureka for Service Discovery

– Zuul for L7 Application Gateway

– Ribbon for Load Balance

– Hystrix for Latency and Fault Tolerance

– Governator for Dependency Injection

– Archaius for Configuration Management

– ...

Page 5: 淺談 Spring Cloud Application - Apistek

Spring Cloud Netflix ● Spring Cloud Netflix provides Netflix OSS integrations for Spring Boot apps

through autoconfiguration and binding to the Spring Environment and other

Spring programming model idioms.

Page 6: 淺談 Spring Cloud Application - Apistek

Netflix Microservice Architecture

Page 7: 淺談 Spring Cloud Application - Apistek

Technique Stack Compare Feature Spring Cloud Kubernetes

Service Discovery Eureka Internal DNS

Gateway Cloud Gateway Istio Ingress Gateway

Traffic Ribbon, Feign Istio Sidecar (Envoy)

Circuit Break, Rate Limit, Retry,

Timeout, Fast Fall

Hystrix Istio

Monitor Dashboard Boot Admin, Zabbix Grafana, Prometheus

Trace Cloud Sleuth, Zipkin jaeger

Config Cloud Config Configmap

Schedule, Job Schedule, Batch Job, CronJob

Infrastructure Tool Ansible, Docker Compose Helm

Page 8: 淺談 Spring Cloud Application - Apistek

Client Side Discovery

Page 9: 淺談 Spring Cloud Application - Apistek

Server Side Discovery

Page 10: 淺談 Spring Cloud Application - Apistek

KubernetesService Mesh (Istio)

Page 12: 淺談 Spring Cloud Application - Apistek

Monitor Spring Cloud

Page 13: 淺談 Spring Cloud Application - Apistek

Monitor Spring Cloud

Page 14: 淺談 Spring Cloud Application - Apistek

Monitor Kubernetes

Spring Boot Actuator Prometheus Grafana

Page 15: 淺談 Spring Cloud Application - Apistek

Monitor Kubernetes

Page 16: 淺談 Spring Cloud Application - Apistek

Monitor Kubernetes

Page 17: 淺談 Spring Cloud Application - Apistek

Monitor Kubernetes

Page 18: 淺談 Spring Cloud Application - Apistek

ConfigSpring Cloud

Page 19: 淺談 Spring Cloud Application - Apistek

ConfigKubernetes

Page 20: 淺談 Spring Cloud Application - Apistek

ConfigKubernetes

Page 21: 淺談 Spring Cloud Application - Apistek

Infrastructure Spring Cloud

• Deployment

– IaaS VM

– Docker

• IaC

– Terraform

– Chef, Puppet, Ansible, etc.

Kubernetes

• Resource Type

– Native

– Advance like Service Mesh

• IaC

– Terraform

– Helm

Page 22: 淺談 Spring Cloud Application - Apistek

Docker Docker-Compose K8s • Docker -> Docker Compose -> Docker Swarm Kubernetes

• 1D -> 2D -> 3D free style

#!/bin/bash docker run --name member-service … docker run --name report-service … docker run --name wallet-service ...

Page 23: 淺談 Spring Cloud Application - Apistek

Docker Docker-Compose K8s version: '3' services: # Member Service # member-service: image: ${repo_url}/member-service:${member_version} ... # Report Service # report-service image: ${repo_url}/report-service:${report_version} ... # Wallet Service # wallet-service image: ${repo_url}/wallet-service:${wallet_version} ...

Page 25: 淺談 Spring Cloud Application - Apistek

Spring Cloud

Page 27: 淺談 Spring Cloud Application - Apistek

Thinking • Replacement ?

• Pros. and Cons.

Page 28: 淺談 Spring Cloud Application - Apistek

Thank you so much for your time

Page 29: 淺談 Spring Cloud Application - Apistek

Q & A

Page 30: 淺談 Spring Cloud Application - Apistek

References • https://matthung0807.blogspot.com/2019/03/spring-boot-netflix-ossspring-cloud.html

• https://spring.io/projects/spring-cloud-netflix

• https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture

• https://github.com/Jian-Min-Huang/k8s-sample-2020

• https://www.cnblogs.com/fengzheng/p/11242128.html

• https://cloud.spring.io/spring-cloud-config/reference/html/

• https://spring.io/projects/spring-cloud-kubernetes