程式設計師的運維知識體系
- 2020 年 9 月 1 日
- 筆記
作為程式設計師的你,能勝任運維的工作嗎?
背景
那麼運維主要解決那些問題呢?
答:1.部署,但是大部分工作可自動化; 2.維護產線系統穩定;
作為程式設計師的你,清晰自己的程式如何部署上線非常重要,出問題了才知道如何修復。
作為程式設計師的你,設計的時候就要規避部署帶來的問題。
作為程式設計師的你,如果能勝任運維,那麼你就天然具備成為為當下非常熱門的職位devOps工程師的知識儲備;
問題 | 答案 |
---|---|
where are we?現狀 | 是程式設計師,但是運維知識了解很少 |
where are we go?目的 | 是程式設計師,也能勝任運維工作 |
how can we go there?實現路徑 | 梳理運維的知識體系,逐步學習 |
實現路徑
按照以下條目,補全知識體系,再找一個實際項目實戰即可。
shell
shell是最古老的運維語言,可直接跟作業系統打交道;
linux核心庫
掌握常見的核心庫,ls cd ps grep kill cut sort uniq
第三方庫
rsync 和 curl
虛擬化
虛擬機和docker
容器化
docker-swarm和kubernetes
運維框架
chef , puppet, ansible ,openstack
公有雲
aws, aliyun
小結
程式設計師了解運維的知識體系非常重要,無論是對定位問題還是架構設計都有一定幫助。
補充
現在運維流行DevOps,高級一點就是AI,
運維技能:
1.懂網路:
一般要求CCNA(最好CCNP)或同等水平
2.懂系統:
懂得主流的linux系統操作(Centos、ubuntu、debian等)
操作命令、維護、性能優化、故障排查
3.簡單安全:
一些簡單的安全知識
4.半個DBA:
一般中小公司前期沒有DBA,需要運維做
最起碼會SQL語句、主從
群集:redis、mysql、MongoDB等
5.會運維開發:
一般用於開發運維工具、運維繫統(如CMDB、ELK日誌系統等)
運維主要語言是shell、python/Go
python web框架:Django、tonado等
Go web框架:Beego、Gin、Iris等
有的還會用PHP及框架(TP、YII、Laravel做web前端)
中小公司運維一般都沒有專職的前端,需要運維兼職所以要學前端知識
6.懂點開發:
般都懂一點本公司開發的語言,如公司用PHP需要學習、如公司用java web也需要學習一下,目標:
1)更好的維護網站,排錯
2)運維自動化、DevOps,因DevOps是基於敏捷開發,極限編程的思想,所以得懂一點軟體工程
7.主職:
1)各種環境的搭建:LAMP、LNMP、負載均衡(nginx、haproxy、VLS等)、web群集、資料庫群集、主流的docker[必會]
2)排錯[必會]
3)批量安裝系統安裝:Cobbler[少]
4)部署工具:Ansible/SaltStack[重要]
5)主流的部署方案:如雲、docker、k8s等[必會]
6)監控系統:zabbix、Open-Falcon[至少掌握其中一種]
7)自動化:gitlab CI/CD、jenkins結合ansible/salt、docker[必會]
8)運維流程的制定
9)減少背鍋的次數:運維是出名的「背鍋俠」,制定明確的責任可以減少背鍋
10)等等
8.會點構架
一般中小公司沒有構架師,所以當業務增大出現瓶頸,運維得給出解決方案
和開發討論如何擴展
原創不易,關注誠可貴,轉發價更高!轉載請註明出處,讓我們互通有無,共同進步,歡迎溝通交流。