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

  1. Find problems early

  2. TDD / BDD

  3. Test Coverage

  4. Test for failure

Other Method

  1. e2e testing

  2. A / B Test

  3. Canary release

  4. Blue / Green Release

  5. Nightly Build

Final Target

  1. Auto Test

  2. Auto Deploy

  3. Faster Coding, Less Bug

  4. CaaS (Code as a Service)

  5. Rolling Update / Rollback

  6. 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

  • 763