continuous delivery with cloud native architecture. 持續交付與雲原生架構.pdf ·...

26
Continuous Delivery with Cloud Native Architecture Vincent Huang 黃健旻

Upload: others

Post on 08-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

Continuous Deliverywith

Cloud Native Architecture

Vincent Huang 黃健旻

Page 2: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

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 3: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

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/

Page 4: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

Continuous Integration

Continuous Delivery

Continuous Deployment !?

Page 5: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

換版

上版

build版

Jenkins按一下

打版

過版

阿普鼓Ray

打包

更新

包版

升版釘版

阿普Day

Page 6: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

❖ Action➢ Shell Script➢ npm run …➢ ant ...➢ mvn clean deploy➢ gradle ...➢ ...

❖ Pre, Action, Post

Page 7: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

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.

Page 8: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

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.

Page 12: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

Docker -> Kubernetes

Page 13: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

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

Page 14: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

Let’s Mesh!

Page 15: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

Let’s Mesh!

Page 16: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable
Page 18: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

DevOps

AIOps

ChatOps

GitOps

SecOpsNetOps

ITOps

NoOps

CloudOps

DataOps

SysOps

Page 19: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

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.

Page 20: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

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.

Page 21: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

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

Page 22: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

ArgoCD

Page 23: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable
Page 24: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

He Do This -> He Want This

Page 25: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

Thank you so much for your time

Page 26: Continuous Delivery with Cloud Native Architecture. 持續交付與雲原生架構.pdf · Continuous Delivery with Cloud Native Architecture ... service meshes, microservices, immutable

Q & A