DevOps
Implement by Kubernetes
Agenda
-
What's DevOps?
-
What's Kubernetes?
-
How to use them together?
What's DevOps?
-
Developer
-
Operator
Developer + Operator = DevOps
who write & debug program
who build & install program
Why do I use DevOps?
常見的開發情況
-
我的電腦可以跑,為什麼你的不行?
-
不知道剛剛改了什麼,程式就壞掉了
-
需.求.變.更 => 大.災.難
常見的維運情況
-
為什麼你的電腦可以跑,我的卻不行?
-
不知道怎麼安裝,或是安全性問題一大堆
-
這是上個月安裝的,我已經忘記怎麼安裝了
常見的各種情況
-
不敢重開機、不敢升級
-
缺乏測試,Bug 滿天飛
Gitlab CI

https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
What's CI/CD?
-
Continuous Integration
-
Continuous Delivery
https://commons.wikimedia.org/wiki/File:Agile-vs-iterative-flow.jpg

http://www.globalnerdy.com/2007/11/28/dilbert-on-extreme-and-agile-programming/

Unit Test
-
Find problems early
-
TDD / BDD
-
Test Coverage
-
Test for failure
Other Method
-
e2e testing
-
A / B Test
-
Canary release
-
Blue / Green Release
-
Nightly Build
Final Target
-
Auto Test
-
Auto Deploy
-
Faster Coding, Less Bug
-
CaaS (Code as a Service)
-
Rolling Update / Rollback
-
High Avilible / Auto Healing
Before we go ahead
What's Kubernetes?
What's Kubernetes
Kubernetes is an open source system for managing Docker across multiple hosts.
A Project of CNCF

What's Kubernetes
Kubernetes is an open source system for managing Docker across multiple hosts.
-
Docker
-
Micro-service / Stateless
-
Multi-host
-
Self-healing
-
Rolling Update
-
Open Source (Apache 2.0)
Rolling Update
https://www.slideshare.net/DanielSmith272/whats-new-in-kubernetes









So, what's Docker?


So, what's Docker?

So, what's Docker?

So, what's Docker?

Docker
- Execute Faster
- Launch Faster
- Less Disk & Less Memory
- Scale up quickly
- OpenSouce (Apache 2.0)
VM
- Easy to use
- Easy to debug
- Easy to design
- More secure
- Keep all change
Gitlab CI

https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline

https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline

https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline

https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline

https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline

https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline

https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
todo: runner、running dashboard
Gitlab CI/CD Pipeline

todo: pipeline
Gitlab CI/CD Pipeline

Have we done all things?
I have done the job to "use" Kubernetes.
But, we will do the job to "customize" Kubernetes.
or "contribute"
Q&A
Thanks
for your attention!
DevOps
By rockwyc992
DevOps
- 786