凍仁在學(xué)時(shí)很喜愛《Unix 與 Linux 自動(dòng)化管理》一書,并幻想著有朝一日也能達(dá)到自動(dòng)化管理的境界。但對(duì)于 IT 維運(yùn)者而言,有時(shí)間寫筆記就很難了,更別說(shuō)是把安裝 (Setup)、部署 (Deploy)、安全性更新 (Security Upgrade) 等步驟寫成可以自動(dòng)化的 Script!
凍仁從 2015 年末時(shí)開始接觸 Ansible,才知道有這么個(gè)比 Shell Script 和 Python 還好用的組態(tài)管理工具 (Configuration management Tool) 1,相信通過(guò) Ansible 的幫助一定可以讓我們大家都提早下班的!(笑)
本次將沿用凍仁先前的簡(jiǎn)報(bào),并借由圖文并茂的方式彌補(bǔ)簡(jiǎn)報(bào)不足的地方。
對(duì)于凍仁而言,現(xiàn)代的 IT 人得具備十八般武藝,從系統(tǒng)規(guī)劃、部署 (Deployment)、開發(fā) (Development)、測(cè)試 (QA)、維運(yùn) (Operations)、監(jiān)控 (Monitoring) 到效能優(yōu)化 (Performance Optimisation) 等樣樣都要融匯貫通。
在現(xiàn)代,有個(gè)叫「DevOps」的名詞概括了不少技能和工具,如 Ansible, Chef, Docker container, Git, Jenkins CI, Vagrant, Zabbix monitoring server … 等,凍仁在此就不多述。(若想深入了解 DevOps 是什么?2 歡迎加入 DevOps Taiwan 社團(tuán))
簡(jiǎn)而言之,現(xiàn)在的資訊人員 (IT Engineer) 除了要會(huì)管機(jī)器、管網(wǎng)絡(luò)、on-call 之外,還得要會(huì)寫些自動(dòng)化的工具來(lái)輔助自己,不然是難以在下一個(gè)世代生存的!
不管是從Ops 跨到 Dev,還是從 Dev 跨到 Ops,到頭來(lái)都是一樣,就看哪邊投的技能點(diǎn)數(shù)比較多!
以下是凍仁很喜歡對(duì)照表,多年前的凍仁常常耗費(fèi)不少的時(shí)間在安裝作業(yè)系統(tǒng)、架設(shè)公司業(yè)務(wù)所需的大大小小服務(wù)、寫寫工作日記提醒自己改了什么設(shè)定;如今凍仁會(huì)借由虛擬化技術(shù)、云端運(yùn)算和組態(tài)管理工具等,在相對(duì)快速的時(shí)間里完成任務(wù)。
寫筆記不如寫工具!更何況還是可重復(fù)使用的工具!!
在提好處之前,先來(lái)說(shuō)說(shuō)凍仁接觸「自動(dòng)化組態(tài)技巧」后的壞處有哪些?
文中提到的組態(tài),其實(shí)是從 Configuration management 翻譯過(guò)來(lái)的。
導(dǎo)入自動(dòng)化組態(tài)工具,除了可以減少重復(fù)性的工作外,最重要的可以提升正式環(huán)境 (Production) 的穩(wěn)定性和可靠性!
圖片來(lái)源:Ansible as Automation Glue
當(dāng)每次的版本釋出 (release)、部署 (deployment) 都會(huì)出現(xiàn)不可預(yù)測(cè)的問(wèn)題時(shí),將會(huì)冒出許多例外工作,這將會(huì)大幅度拖累我們的工作進(jìn)度。
養(yǎng)兵千日用在一時(shí),當(dāng)我們準(zhǔn)備好,就可以在很短的時(shí)間內(nèi)對(duì)正式環(huán)境進(jìn)行部署和維護(hù)等變更工作,尤其是半夜 12 才要上線的那種 ...。
還記得那一年,開發(fā)者 (Developers) 透過(guò) FTP 手動(dòng)更新程式,發(fā)現(xiàn)臭蟲 (bug) 想退版卻無(wú)從下手的慘痛經(jīng)驗(yàn)!這不只拖累公司整體的業(yè)務(wù),還引起了顧客的不滿。
但其實(shí)我們只需透過(guò)自動(dòng)化組態(tài)工具管理這些變更,再搭配版本控制系統(tǒng)和測(cè)試,就能有效避免這類問(wèn)題發(fā)生。
準(zhǔn)備好了嗎?Ansible 的大門就在前面了!
1. 組態(tài)管理工具 (Configuration management Tool) 一般我們會(huì)簡(jiǎn)稱為 CM Tool,而在業(yè)界我們還會(huì)用 Infrastructure as Code (IaC) 的字眼來(lái)形容這些工具。 ?
2. 隔壁棚的 Miles 有專門撰寫篇什么是 DevOps?的文章,不妨也參考一下喔。 ?
更多建議: