SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
picture from https://en.wikipedia.org/wiki/DevOps
DevOps 是團隊⽂文化。
picture from http://www.slideshare.net/CAinc/dev-ops-a-
culturetransformationmorethantechnology?
qid=447e66a2-9330-43aa-8e2c-8fb047508c8f&v=default&b=&from_search=6
picture from http://www.slideshare.net/CAinc/dev-ops-a-
culturetransformationmorethantechnology?
qid=447e66a2-9330-43aa-8e2c-8fb047508c8f&v=default&b=&from_search=6
古早古早,蕃薯吃不飽
• 把程式碼放到伺服器上,這是 tarball。
• 安裝相依性是什麼? 怎麼安裝?
• 哪⼀一個資料庫?
• 誒~ 我的電腦不能裝這個誒。
• RD: 奇怪,在我的電腦上裝正常誒。
營運
• 哪⽀支程式讓伺服器CPU過載?
• 現在記憶體⽤用量多少?
• 現在伺服器跑的是哪⼀一個版本的程式碼?
• 現在有多少使⽤用者,伺服器頂得住嗎?
• 哎呀! debugging mode 怎麼開著!
• 這⽀支程式誰寫的,網站噴Error了。
產品上線
• 上線很痛苦
• 網站跟伺服器架構是⼀一體兩⾯面的
• 程式碼可以在offline時做測試,⾃自動化
• 但伺服器架構呢?
• 沒⼈人喜歡上線,除了⽼老闆
⼈人⽣生七⼗十網站上線才開始
使⽤用者能挖掘出的Bug,遠⽐比上線之前你想像的多
開發與營運的對⽴立
• Dev A: 在我的電腦就正常,怎麼上線後就不正常
了,伺服器那邊有問題吧?
• Ops: 我最近甚麼都沒改,只有上線的程式碼改了,
⼀一定是你的問題。
問題出在哪? 開發端還是營運端?
使⽤用者與開發的對⽴立
• 上線之前: 花了三個⽉月開發的功能
• 上線之後: 使⽤用者說這是個Bug
• ⽼老闆: OMG~ 趕快改⼀一改,趕快再上線!!!!!
產品上線要多久?
• 1 台伺服器的時候
• 2 台伺服器的時候
• 10 台伺服器的時候
• 100 台伺服器的時候
• 10000 台伺服器的時候!!!!!!
後 PASS 時代,加機器變快了
• AWS
• Heroku
• Windows Azure
• GAE
• Parse
但準備環境依舊花時間
• 產品程式碼要從哪邊拉? 哪⼀一版? 怎麼安裝?
• 作業系統要裝哪些套件?
• 設定檔怎麼改?
• 資料庫怎麼接?
• 網路環境架構?
• 伺服器狀態怎麼監控?
及早獲得回饋,及早治療
• 新功能做好了
• 使⽤用者喜歡嗎? 增加了多少使⽤用者?
• 使⽤用者願意為了這個功能付錢嗎?
• 沒多少⼈人想⽤用,趕快再下⼀一個開發週期趕快修正。
• 有 Bug, 趕快修,避免流失使⽤用者。
• 時常出現更新,讓使⽤用者產⽣生新鮮感,繼續使⽤用產
品。
DevOps 的⺫⽬目的
• 讓產品能持續不斷地提供更新,交付時程縮短。
• 從⽉月為單位轉成週為單位,甚⾄至是⼩小時為單位。
• ⺫⽬目的是盡量快點上線讓使⽤用者使⽤用,取得使⽤用者回饋
• 做為下⼀一次開發的決策依據。
• 讓產品開發者專注在開發⼯工作上,⽽而不是環境設定。
怎麼達成?
無⽌止境的迴圈
picture from http://devana.rs/blog/devops-is-a-culture-not-a-job-description/
Build Pipelines
Software Build & Test
Data Build & Test
Infrastructure Build & Test
OS Level
Application
Data
開發環境
• Version Control
• Automated Build
• Bugtracking
• Continous Integration
• Integrated testing
• Automated Deployment
• Version Control
• Automated Build
• Bugtracking
• Continous Integration
• Integrated testing
• Automated Deployment
For Devs For Ops
Version Control
別想了,就先⽤用這個吧
picture from http://giscollective.org/github-bringing-geojson-to-life-since-2013/
Continuos Integration
• 程式碼要做版本控制 - git + github
• 將開發中的程式碼跟上線中的程式碼分開 - git flow
• 正式上線的 branch 叫 master
• 開發中的 branch 叫 develop
• 每⼀一次有⼈人 commit 程式碼就跑⼀一次測試!!!!
程式碼測試
• 單元測試
• 針對 function, class 做測試
• 功能測試
• ⾃自動化編譯
• 針對功能做測試
Travis
可與 Github 無痛接軌
不需⾃自⼰己維護
容易設定
travis.com
Continous Deployment
• 伺服器, 網路架構安裝設定⾃自動化
• 讓開發環境, 測試環境, 線上環境保持⼀一致
• 減少⼈人為失誤,增加安全性
• 容易備份, 容易升級
• ⾼高可靠性 - uptime 99.99!
• 延展性 - 流量爆衝時, 是否能輕鬆延展架構
• 與軟體開發時⼀一樣,能確保異常可再交付前發現
安裝/設定⾃自動化
• 安裝100台電腦
• 修改1000個檔案
• 如果同時呢?
• 你可以⽤用
• ansible, salt, puppet, chef
這些東⻄西簡單來說...
• 包含
• 可重複被利⽤用的腳本
• 作業系統套件安裝
• 設定檔範本
• Shell Command
• ⼀一些⼩小⼯工具
• 容易讓⼈人找到可重複利⽤用腳本的網路服務
環境⼀一致
• 讓運⾏行環境與程式碼可以被封裝起來
• 防⽌止發⽣生
• “A: 你的code我跑不起來誒”, B: “可是在我的電腦
可以!”
• 你可以使⽤用
• vagrant, docker
picture from https://www.docker.com/
picture from https://www.docker.com/
謝謝聆聽

Contenu connexe

Similaire à F723000 class#5 devops

02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
Na Lee
 

Similaire à F723000 class#5 devops (20)

42qu thrift1
42qu thrift142qu thrift1
42qu thrift1
 
給軟體工程師的不廢話 R 語言精要班
給軟體工程師的不廢話 R 語言精要班給軟體工程師的不廢話 R 語言精要班
給軟體工程師的不廢話 R 語言精要班
 
【1110ROS社群開講】如何打造與人一起學習的機器檯燈_鄭凱文
【1110ROS社群開講】如何打造與人一起學習的機器檯燈_鄭凱文【1110ROS社群開講】如何打造與人一起學習的機器檯燈_鄭凱文
【1110ROS社群開講】如何打造與人一起學習的機器檯燈_鄭凱文
 
DevOPS
DevOPSDevOPS
DevOPS
 
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
 
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
 
Sdnds tw-meetup-1
Sdnds tw-meetup-1Sdnds tw-meetup-1
Sdnds tw-meetup-1
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
 
1108 早
1108 早1108 早
1108 早
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
 
Django step0
Django step0Django step0
Django step0
 
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CIContinuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
 
1108 早
1108 早1108 早
1108 早
 
Phalcon2014 Startup
Phalcon2014 StartupPhalcon2014 Startup
Phalcon2014 Startup
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 Continuous Delivery Workshop with Ansible x GitLab CI (5th) Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 
LinkIt 7697 開發平台簡介 (Traditional Chinese)
LinkIt 7697 開發平台簡介 (Traditional Chinese)LinkIt 7697 開發平台簡介 (Traditional Chinese)
LinkIt 7697 開發平台簡介 (Traditional Chinese)
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
 
vmarket in action
vmarket in actionvmarket in action
vmarket in action
 
Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)
 

Plus de ncku_f723000

Plus de ncku_f723000 (9)

F723000_Class#17 發明與專利ABC 陳志光 (TSMC公司律師)
F723000_Class#17 發明與專利ABC 陳志光 (TSMC公司律師)F723000_Class#17 發明與專利ABC 陳志光 (TSMC公司律師)
F723000_Class#17 發明與專利ABC 陳志光 (TSMC公司律師)
 
F723000_Class#14 創業家分享 王以德 (駿林科技)
F723000_Class#14 創業家分享 王以德 (駿林科技)F723000_Class#14 創業家分享 王以德 (駿林科技)
F723000_Class#14 創業家分享 王以德 (駿林科技)
 
F723000_Class#12 創業家分享 蕭義崧 (Positive Grid)
F723000_Class#12 創業家分享 蕭義崧 (Positive Grid)F723000_Class#12 創業家分享 蕭義崧 (Positive Grid)
F723000_Class#12 創業家分享 蕭義崧 (Positive Grid)
 
F723000_Class#7 Announcement
F723000_Class#7 AnnouncementF723000_Class#7 Announcement
F723000_Class#7 Announcement
 
F723000_Class#7 關於電子商務
F723000_Class#7 關於電子商務F723000_Class#7 關於電子商務
F723000_Class#7 關於電子商務
 
F723000_Class#2 Announcement
F723000_Class#2 AnnouncementF723000_Class#2 Announcement
F723000_Class#2 Announcement
 
Technology innovation-management ncku-20150227
Technology innovation-management ncku-20150227Technology innovation-management ncku-20150227
Technology innovation-management ncku-20150227
 
F723000_Class#1 關於創業資源
F723000_Class#1 關於創業資源F723000_Class#1 關於創業資源
F723000_Class#1 關於創業資源
 
F723000 intro
F723000 introF723000 intro
F723000 intro
 

Dernier

10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
PUAXINYEEMoe
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
michaelell902
 
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
PUAXINYEEMoe
 

Dernier (9)

taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdftaibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
 
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdftaibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
 
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
 
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
 
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
 
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade SixMath Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
 
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
 
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
 

F723000 class#5 devops