淺談 spring cloud application - apistek
TRANSCRIPT
![Page 1: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/1.jpg)
![Page 2: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/2.jpg)
淺談 Spring Cloud Application 轉換至 Kubernetes 的心得
黃健旻 Vincent Huang
![Page 3: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/6.jpg)
Netflix Microservice Architecture
![Page 7: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/8.jpg)
Client Side Discovery
![Page 9: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/9.jpg)
Server Side Discovery
![Page 10: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/10.jpg)
KubernetesService Mesh (Istio)
![Page 11: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/11.jpg)
KubernetesService Mesh (Istio) https://github.com/Jian-Min-Huang/k8s-sample-2020
![Page 12: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/12.jpg)
Monitor Spring Cloud
![Page 13: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/13.jpg)
Monitor Spring Cloud
![Page 14: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/14.jpg)
Monitor Kubernetes
Spring Boot Actuator Prometheus Grafana
![Page 15: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/15.jpg)
Monitor Kubernetes
![Page 16: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/16.jpg)
Monitor Kubernetes
![Page 17: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/17.jpg)
Monitor Kubernetes
![Page 18: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/18.jpg)
ConfigSpring Cloud
![Page 19: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/19.jpg)
ConfigKubernetes
![Page 20: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/20.jpg)
ConfigKubernetes
![Page 21: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/23.jpg)
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 24: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/24.jpg)
YAML Engineer 4 ni !
![Page 25: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/25.jpg)
Spring Cloud
![Page 26: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/26.jpg)
KubernetesService Mesh (Istio) https://github.com/Jian-Min-Huang/k8s-sample-2020
![Page 27: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/27.jpg)
Thinking • Replacement ?
• Pros. and Cons.
![Page 28: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/28.jpg)
Thank you so much for your time
![Page 29: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/29.jpg)
Q & A
![Page 30: 淺談 Spring Cloud Application - Apistek](https://reader035.vdocuments.mx/reader035/viewer/2022062306/62a6b7e82bd31251a645e52f/html5/thumbnails/30.jpg)
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