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://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4326248/gitlab-oo.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4326321/Agile-vs-iterative-flow.jpg)
http://www.globalnerdy.com/2007/11/28/dilbert-on-extreme-and-agile-programming/
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/5244600/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4332215/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4381544/whats-new-in-kubernetes-41-638.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4381545/whats-new-in-kubernetes-43-638.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4381546/whats-new-in-kubernetes-44-638.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4381547/whats-new-in-kubernetes-45-638.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4381548/whats-new-in-kubernetes-46-638.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4381549/whats-new-in-kubernetes-47-638.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4381550/whats-new-in-kubernetes-48-638.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4381551/whats-new-in-kubernetes-49-638.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4381552/whats-new-in-kubernetes-50-638.jpg)
So, what's Docker?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4334114/Container_2x.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4334117/VM_2x.png)
So, what's Docker?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4334128/docker-vm-container.png)
So, what's Docker?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4334116/Pulls-Chart.png)
So, what's Docker?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4334121/2017-11-15_10-17-03______.png)
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://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4326248/gitlab-oo.png)
https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4330153/13.jpg)
https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4330154/14.jpg)
https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4330156/15.jpg)
https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4330155/16.jpg)
https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4330158/17.jpg)
https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
Gitlab CI/CD Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4330157/18.jpg)
https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/
todo: runner、running dashboard
Gitlab CI/CD Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4331770/pasted-from-clipboard.png)
todo: pipeline
Gitlab CI/CD Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/460630/images/4331717/pasted-from-clipboard.png)
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
- 700