1. 程式人生 > >必看,運維還要懂這麼多?

必看,運維還要懂這麼多?

聽說你精通運維?Apache、Nginx、tomcat、vmstat、iftop、awk、sed、sar、iostat、LVS、HA-proxy、MHA、Zookeeper、Zabbix、Nagios、Cacti、Prometheus、shell、python、go、rundeck、ansible、saltstack、puppet、chef、cobbler、fabric、docker、Moby, kubernetes瞭解一下?

我們這篇文章不是說運維除了懂Linux,還要懂Windows,而是涉及運維的其他方方面面。

環境部署

一開始這個世界是開發的,然後才是運維的。

開發實現產品邏輯,將產品開發完成後,然後提交運維進行部署。此時允許就需要準備好部署環境,如部署在Linux伺服器上,安裝相應的軟體,如Apache、Nginx、tomcat、JDK、PHP、MySQL等等。你不能只裝了軟體吧,還需要看看具體是哪個版本,java 7 和java 8 的差別還是有點的,php5和php7也有些語法不相容。把軟體都安裝好了,就可以上線了?還是不行。還需要測試吧,那就還需要部署一套測試環境。有些時候,開發環境也是需要運維來部署的。

排錯和調優

事情從來都沒有一帆風順的。

上線沒多久,服務就502了,還不被老闆罵死。儘管你有一肚子的委屈,我只是個運維,程式碼不是我寫的,為什麼要我來背這鍋?!委屈歸委屈,服務訪問不了了,就是運維的事。儘快定位問題,解決問題才是王道。怎麼來定位問題呢?最簡單直接的辦法就是看日誌,看系統日誌,看軟體相關的日誌,結合故障現象和經驗,快速的進行定位和恢復。然後就是總結經驗,吸取教訓,寫事故報告。OK,現在你知道,需要對系統環境需要進行一定的調優操作,不再做背鍋俠。

相關技術: top, vmstat, iftop, awk, sed, sar, iostat, strace, ...

備份

做最好的計劃,做最壞的打算。

前不久的gitlab刪庫事件的教訓猶在眼前,丟失了幾小時的資料,雖然大部分的備份策略都失效了,但還是挽救了幾小時前的一個備份,才沒有造成更大的資料丟失和公司損失。我們需要對裝置進行備份冗餘,需要對資料庫進行備份及離線備份,需要對網站靜態進行備份冗餘,需要對機房進行備用,能做到雙活,那是更好的啦。

相關技術: rsync, crontab, lvm快照, mysqldump, extrabackup, 完全備份, 差異備份, 增量備份, 離線異地備份, ...

高可用和叢集

沒有永垂不朽,我們不能保證硬體24小時線上,但需要保障服務24小時線上。

出現故障後,如果做好高可用和冗餘,故障自動切換,移除故障節點,那樣也就保障了服務的實時線上。在老闆和使用者不知情的情況下,悄麼的把故障處理好的,KPI算是保住了,獎金也許就會有的吧。

相關技術: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各種其他分散式叢集方案, ...

監控告警

運維工程師的第一次解放運動。

時刻擔心網站掛掉,一年365天、每週7天、每天24小時,時刻保持精神高度緊張,就算你是神仙都會撐不住的。我們需要一個機器來監督其他的機器工作,我們需要解放我們自己。當有故障發生的時候,通過簡訊、微信、釘釘、郵件等等通知對應的運維工程師來處理,甚至是自動切換或摘除故障節點,然後我們離線對故障節點進行問題排查。

相關技術:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, ...

安全和審計

狂奔在網際網路的康莊大道上,不過有些人是在裸奔。

不安全的網路環境和伺服器配置,無異於在網路世界裸奔,任何人都可以窺探你的隱私。你的應用是否做了SQL防注入?你的防火牆是否開啟?是否還在用root+密碼的方式登入伺服器?網站開啟了https麼?是否對系統操作進行審計?

相關技術:iptables, firewalld, waf, auditd, 各服務的正確配置, ...

自動化和DevOps

運維工程師的第二次解放運動。

偷懶是社會進步的第一動力。聰明的我們怎麼會讓自己一直在重複枯燥的事情上浪費時間,裝系統、部署環境、發版本、批量操作,把這一切交給程式去實現吧,我們需要的是享受生活。

相關技術: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, ...

虛擬化和雲服務

正在發生的一場運維革命。

這場革命的發起人是買書的亞馬遜,這傢伙希望賣一切可以賣的東西,包括自己閒置的伺服器資源。現在國內的阿里雲和騰訊雲也發展得如日中天,他們幾乎提供了運維所需要的一切,甚至可以讓一個公司不再需要運維的崗位。你需要伺服器,只需要幾秒鐘,就可以建立一臺。你需要資料庫叢集,只需要滑鼠點選幾下,就可以開通。

相關技術:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, ...

來源:http://os.51cto.com/art/201805/573436.htm