原雲生時代下,自動化運維指令碼真的沒前途了嗎
-
職業上沒有安全感:運維代表了薪水低,大家都不喜歡說自己是做運維的。後端程式設計師尤其不喜歡墜落到運維崗位。指令碼代表了不正規,不是正兒八經的語言。這就體現為了“我要寫 golang”,和 PHP 程式設計師喜歡轉 golang 一樣。
-
技術上不先進:指令碼能有什麼前途?未來不是屬於 Kubernetes 的麼?先進的技術應該解決什麼樣的問題?應該如何解決問題?
都是寫業務的,誰也不要瞧不起誰
隨意能部署一套是註定無法穩定的
-
我給客戶1部署一套,給客戶2部署一套 -
我在廣州部署一套,在美國部署一套 -
我給開發環境部署一套,給生產環境部署一套
-
運維指令碼修改已有的軟硬體配置
-
維護一套映象的狀態,例如狀態資料庫,CMDB 這些
-
Infrastructure as Code,簡稱 IaC。 主要是要用 git 倉庫把散落的運維指令碼管理起來
-
Immutable server / infrastructure,透過縮短一個 state 的生命週期,來避免 state drift。 主要體現為每次都申請一個新的虛擬機器來部署
-
映象狀態 + IaC + Immutable: 面向 YAML 開發,Kubernetes 這樣的模型
-
Immutable 是個假象: 不是所有的 state 都可以很廉價地變成 immutable 的。比如資料庫,比如 s3 的 bucket。我們都無法每次申請一個虛擬機器那樣,從零開始。絕大多數部署要用的 api,都是 mutable 風格的。Immutable 是建立在 mutable api 上的假象 -
All abstraction leaks: 所有的抽象在故障的時候都會洩露。YAML 再漂亮。當 YAML apply 的時候報錯了,仍然是需要知道里面的每個 resource 代表了什麼,實際是怎麼被 apply 的。當引擎故障了,引擎蓋子就要被掀開。 -
無數不穩定的依賴: 你構建依賴了 npm,依賴了 Ubuntu 的 repository。 完全 reproducible 是不現實的。 今天能執行的指令碼,不要指望明天一定能工作。誰也沒法隔離所有的依賴變化。 -
State + Version 的組合爆炸: 如果我們不能完全杜絕 mutable state,也無法拒絕新的程式碼,新的版本。那就會有無數種組合的可能性。比如一個執行了一半的指令碼,你 ctrl+c,然後再執行會怎麼樣?誰也無法保證一定沒有問題。 你今天是三個服務,明天變成了四個線上服務,這中間業務再變,部署也一定會跟著變
-
從一個 State 到另外一個 State 的變化過程: 比如微信小程式從版本1,要升級到版本2。我們希望先發一個體驗版,看看是不是ok。然後提交稽核,稽核透過之後,再正式升級到版本2。這個 state 的遷移如何用 immutable 的 declaration 來描述?不還是得用指令碼的方式來寫嘛。
以上種種原因,使得我們無法保證交付一份自動化的指令碼,就可以保證每個猴子,都可以點一下就獲得一個新環境。這個指令碼一定要不斷被維護,複雜環境的搭建總是需要有人來不斷地維護。每個開發者,透過 docker 是可以構建一個區域性的環境,但稍微大一點規模的環境,就不要指望能讓任何一個猴子,今天可以複製一份,明天也一定能複製一份出來。
多租戶才是終極解決辦法
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70013542/viewspace-2914954/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 專訪鄭東雲:自動化運維時代,DBA命運如何?運維
- 運維工作新時代:自主編碼實現運維自動化的轉型之旅運維
- IT運維和自動化運維以及運維開發有啥不同?能解釋下嗎?運維
- 自動化運維-修改主機名&hosts檔案指令碼運維指令碼
- IT運維之自動化運維運維
- 雲原生時代的運維體系進化運維
- 系統自動化調優時代來臨,DBA真的要失業了?
- 讀“運維崗位真的不能幹了嗎”有感運維
- Java真的沒出路了嗎?Java
- 雲時代,如何保障運維安全?運維
- 阿里雲釋出ECS自動化運維套件,幫助企業實現自動化運維轉型阿里運維套件
- specjvm自動化指令碼JVM指令碼
- 安全的IT自動化運維工具用什麼好?可以節省時間嗎?運維
- Ansible自動化運維工具運維
- 是否只有實現了容器化、自動編排等等才算是實現了運維自動化?運維
- 在大資料時代,我們真的沒有隱私嗎?大資料
- 運維指令碼: 實時監測登入運維指令碼
- 什麼是自動化運維?為什麼選擇Python做自動化運維?運維Python
- Dockerfile---指令碼自動化Docker指令碼
- vue自動化部署指令碼Vue指令碼
- ansible自動化運維入門運維
- 簡化IT運維工作,就要學會使用自動化運維工具!運維
- 運維工作中的指令碼化和工具化運維指令碼
- 專訪新數科技王偉斌:自動化運維時代,DBA的定位是什麼?運維
- mydumper自動化安裝指令碼指令碼
- 自動化運維工具Ansible介紹運維
- 分層運維自動化監控運維
- 自動化運維的快速演進運維
- ansible自動化運維資料庫運維資料庫
- 數字化時代,重新思考IT運維價值運維
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼
- 指標是構築自動化運維與智慧化運維的基石指標運維
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- Linux Shell互動式自動化運維程式Linux運維
- 杉巖:雲原生時代,容器持久化儲存方案選對了嗎?持久化
- 運維指令碼備忘錄運維指令碼
- Linux運維可以自學嗎?Linux運維技術Linux運維
- docker | jenkins 實現自動化CI/CD,後端躺著把運維的錢掙了!(下)DockerJenkins後端運維