作為程序員的你,能勝任運維的工作嗎?
背景
那么運維主要解決那些問題呢?
答: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/Gopython 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.會點構架一般中小公司沒有構架師,所以當業務增大出現瓶頸,運維得給出解決方案和開發討論如何擴展
我會持續分享Java軟件編程知識和程序員發展職業之路!原創不易,關注誠可貴,轉發價更高!轉載請注明出處,讓我們互通有無,共同進步,歡迎溝通交流。