Continuous Deliverywith
Cloud Native Architecture
Vincent Huang 黃健旻
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
References• https://docs.microsoft.com/zh-tw/dotnet/architecture/cloud-native/definition
• https://jimmysong.io/kubernetes-handbook/cloud-native/cloud-native-definition.ht
ml
• https://www.hwchiu.com/gitops.html
• https://www.gitops.tech/
• https://medium.com/starbugs/gitops-%E9%80%8F%E9%81%8E-argo-cd-%E8%
AA%8D%E8%AD%98-gitops-f0a596764fdd
• https://www.weave.works/technologies/gitops/
Continuous Integration
Continuous Delivery
Continuous Deployment !?
換版
上版
build版
Jenkins按一下
打版
過版
阿普鼓Ray
打包
更新
包版
升版釘版
阿普Day
❖ Action➢ Shell Script➢ npm run …➢ ant ...➢ mvn clean deploy➢ gradle ...➢ ...
❖ Pre, Action, Post
https://github.com/cncf/toc/blob/master/DEFINITION.md
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.
The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.
https://github.com/cncf/toc/blob/master/DEFINITION.md
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.
The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.
https://github.com/cncf/toc/blob/master/DEFINITION.md
https://github.com/cncf/toc/blob/master/DEFINITION.md
https://github.com/cncf/toc/blob/master/DEFINITION.md
Docker -> Kubernetes
Microservice in Past • Client Side Service Discovery
• Service Governance depends on specific framework or language
– Service Discovery
– Load Balance
– Rate Limit
– Circuit Break
– Timeout
– Retry
– Trace
• VM Based DevOps Techniques
e.g. Eureka
e.g. Ribbon + Feign
e.g. Hystrix related
e.g. Sleuth + Zipkin
Let’s Mesh!
Let’s Mesh!
YAML Engineer 4 ni !
DevOps
AIOps
ChatOps
GitOps
SecOpsNetOps
ITOps
NoOps
CloudOps
DataOps
SysOps
https://www.weave.works/technologies/gitops/
• CI or CD process trigger by Git Hooks
GitOps is a way to do Kubernetes cluster management and application delivery.
It works by using Git as a single source of truth for declarative infrastructure and
applications. With GitOps, the use of software agents can alert on any
divergence between Git with what's running in a cluster, and if there's a
difference, Kubernetes reconcilers automatically update or rollback the cluster
depending on the case. With Git at the center of your delivery pipelines,
developers use familiar tools to make pull requests to accelerate and simplify
both application deployments and operations tasks to Kubernetes.
https://www.weave.works/technologies/gitops/
• CI or CD process trigger by Git Hooks
GitOps is a way to do Kubernetes cluster management and application delivery.
It works by using Git as a single source of truth for declarative infrastructure and
applications. With GitOps, the use of software agents can alert on any
divergence between Git with what's running in a cluster, and if there's a
difference, Kubernetes reconcilers automatically update or rollback the cluster
depending on the case. With Git at the center of your delivery pipelines,
developers use familiar tools to make pull requests to accelerate and simplify
both application deployments and operations tasks to Kubernetes.
1.
2.3.
Principles of GitOps• The entire system described declaratively
• The canonical desired system state versioned in Git
– Infrastructure as Code and Managed by Git
• Approved changes that can be automatically applied to the system
• Software agents to ensure correctness and alert on divergence
ArgoCD
He Do This -> He Want This
Thank you so much for your time
Q & A