Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Continuous Delivery - Opening

217 views

Published on

Date: 2018/06/20

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Continuous Delivery - Opening

  1. 1. Continuous Delivery - Study Group Opening Rick Hwang @ 2018 1
  2. 2. 2
  3. 3. 3 Software Delivery 你平常怎麼使用別人的軟體?
  4. 4. 4 http://cassandra.apache.org/download/ Cassandra:分散式 NoSQL Database
  5. 5. 5 https://hub.docker.com/_/cassandra/ Cassandra:分散式 NoSQL Database
  6. 6. 6 https://github.com/kubernetes/minikube minikube: K8s 單機版
  7. 7. 7 Apache Spark:分散式大數據分析
  8. 8. 8
  9. 9. Software Delivery Deployment (Installation, Shipment) 9 Artifacts (Version, Build, Packing) Environments (OS, Network, Security) Provisioning / Orchestration Configurations (Profile, Settings, Key)
  10. 10. Hardware (c4.xlarge) OS: CentOS / Ubuntu PHP Apache (HTTP) MySQL Client ImageMagic ... Wordpress (CURRENT) Provisioning (Environment) Storage (Artifacts) LATEST Image (Artifacts) Deployment 1. Build / Pack Example: Wordpress 10 Configuration Someone (人 or 機器)
  11. 11. 11 http://archive.apache.org/dist/cassandra/
  12. 12. 12 https://github.com/aws/aws-cli/releases
  13. 13. 13 Artifacts 是獨立的 需要的人都可以自行部署、測試 Artifacts 要有 CodeName + Version
  14. 14. 14 Again 你平常怎麼使用別人的軟體?
  15. 15. 15
  16. 16. 16 Configuration 好的 Config 代表系統的 Interface,可以看出以下: ● 架構性 ● 可測性 ● 可維運 Cost、Provisioning、Observaiblity、Deployment Testability、Functional and Non-Functional Architectual、Security、Available、Reliability、Scalability、Performance
  17. 17. ● 用途:團隊溝通使用,可以創造獨特的團隊文化 ● 不要跟公司、產品名稱、部門 … 有直接關係 ○ 也就是 namespace / package / module / id 不要有這些字 ○ Source Code Repos 也不要用 ● Code Name 舉例: ○ Android 用糖果代號 ○ Elasticsearch Node Name 預設漫威電影人物名稱 ○ Docker Container 亂數命名 ○ 最近我都用 三體 相關的 XD 名字很重要 - 代號篇 (CodeName) 17
  18. 18. ● 用途:業務行銷用 ● 象徵性大於實質 ● 跟程式邏輯無關 ○ 不要放在程式裡面當 module, package, namespace 使用 ● 舉例: ○ Windows Server 2016 ○ iPhone X ○ macOS high sierra 名字很重要 - 產品名稱 (Product Name) 18
  19. 19. 名字很重要 讓團隊有靈魂! 讓團隊有想像力 平衡團隊的溝通 19
  20. 20. App1 App2 App3 App4 Artifacts (產出物) Build Build Build Build App5 Build Development Teams QA Pipeline OPS Infra as Code InstancesInfra 1. provision 2. deploy LB, CDN, Storage, RDBMS ... master, or develop. depends on QA
  21. 21. 21 Source: Microservice Prerequisites
  22. 22. 22
  23. 23. 23
  24. 24. 聽說這五本是 DevOps 五虎將? 24
  25. 25. 25 https://pivotal.io/cloud-native
  26. 26. 軟體交付的核心概念 26 ● 任何人都可以部署任意版本,到特定環境 ○ 任何人:開發、測試、支援、維運、業務、老闆、老闆的老闆、掃地的 ○ 可以部署:be able to -- one button ○ 任意版本:Artifacts、Configure ○ 特定環境:包含 Prod、Staging、Test、Dev、Lab … ■ 有自己的名稱,包含 Infra,像是 DNS, Storage, Network ... ● 部署流水線 (Pipeline) 也要被測試、優化、監控、維護 (Ops Pipeline) ○ 部署程式也是程式,要可以在 Local 開發、測試 ○ Pipeline: Build, Provisioning, Deployment, AutoTasks (Test, Backup …)
  27. 27. 任何人都可以 27 到特定環境 (包含建置) 部署任意版本
  28. 28. 思 考 28 導入 CI/CD 的第一步 怎樣的 CI/CD 才夠 Quality? 如果要 Open Source,需要做什麼?
  29. 29. 期待 29 ● 反思 Continuous Delivery 這件事情的本質 ● 反思自動化的本質與目的性 ● 了解自己公司的現況,好的、不好的、適合的、不適合的,怎麼做比較適合? ● 透過討論、問問題、經驗分享
  30. 30. 30
  31. 31. 31 你平常怎麼使用別人的軟體?
  32. 32. 32 你們公司的軟體怎麼給別人用?
  33. 33. 歡迎參加 SRE 讀書會 DevOps Taiwan SRE Taiwan、痞客邦 場地贊助 33
  34. 34. 相關文章 34 ● 你的靈魂 - 談產品名稱 ● Version Control ● 導入 CI/CD 的第一步 ● 怎樣的 CI/CD 才夠 Quality? ● Resource Provisioning and DevOps ● Software Development Lifecycle

×