Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf ·...

Preview:

Citation preview

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.

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!

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

Recommended