KVM
比較主流的虛擬化技術(shù),不過在運(yùn)維水平比較差的公司,還能看到在用盜版的VMware產(chǎn)品。如果測(cè)試環(huán)境規(guī)模稍微有點(diǎn)大,可以考慮使用云平臺(tái),諸如各種流行的 Stack。如果自己有能力,可以使用 libvrit 提供的API,自己寫一個(gè)管理平臺(tái)也是可以的。適合內(nèi)部使用即可,開源的各種 Stack 都比較重,用起來(lái)都是有一些成本的。
統(tǒng)一了開發(fā)及線上環(huán)境,適合微服務(wù)。
公有云
公有云有你用到的所有東西。在一個(gè)使用了公有云的公司,那么完全可以不需要運(yùn)維及測(cè)試了,幫助企業(yè)快速完成DevOps轉(zhuǎn)型。公司做Dev,公有云做Ops。
公有云在IaaS、PaaS及SaaS層面都有相應(yīng)的產(chǎn)品,真正懂你所需,公司可以根據(jù)自身情況選擇使用合適的產(chǎn)品即可。
安全起見,可以使用子賬號(hào)進(jìn)行 API 相關(guān)的一些操作。
存儲(chǔ)服務(wù)
如果數(shù)據(jù)量比較大,可以考慮使用開源的分布式存儲(chǔ),后面在私有云平臺(tái)或Docker或K8S上估計(jì)都會(huì)用到。
WEB 容器篇
OpenResty
OpenResty 并不是一個(gè)新的事物,而是 Nginx 與 Lua 的組合。OpenResty 創(chuàng)始人章亦春把 Lua 腳本嵌入了 Nginx,結(jié)合 Lua 可以很靈活的擴(kuò)展 Nginx 的功能,如實(shí)現(xiàn) WAF 等。而且做的事情遠(yuǎn)不止這些。
數(shù)據(jù)庫(kù)篇
主要包括關(guān)系型數(shù)據(jù)庫(kù)與非關(guān)系型數(shù)據(jù)庫(kù)。基本的 SQL 功底還是要有的。
mysql
號(hào)稱世界上最流行的數(shù)據(jù)庫(kù),用的還是非常廣泛的??磥?lái)“最流行”的稱號(hào)并不是吹的。運(yùn)維最關(guān)注的還是如何確保數(shù)據(jù)的安全性及高可用性。
運(yùn)維層面需要做到的是:
數(shù)據(jù)備份
數(shù)據(jù)恢復(fù)
主從同步
關(guān)于備份及恢復(fù)用到的工具,市面上還是有很多的。選擇你熟悉的即可。
PostgreSQL
號(hào)稱世界上最先進(jìn)的數(shù)據(jù)庫(kù),使用的用戶還是很多的,不過這些用戶大多在國(guó)外,在國(guó)內(nèi)用的不如 Mysql 廣泛。如果你覺得沒有合適的數(shù)據(jù)庫(kù)可以選擇的話,那就選擇 PostgreSQL 吧。
Redis
主流的鍵值存儲(chǔ)數(shù)據(jù)庫(kù)。一般用來(lái)做關(guān)系型數(shù)據(jù)庫(kù)的緩存。
MongoDB
監(jiān)控篇
Zabbix
比較著名的開源監(jiān)控系統(tǒng),功能強(qiáng)大。如果要定制或二次開發(fā),相對(duì)比較困難(需要我們有C語(yǔ)言(后端)及PHP(前端)的功底),這里所說的困難是面對(duì)運(yùn)維人員來(lái)說的。
Open-Falcon
由小米開源的監(jiān)控系統(tǒng),使用Go語(yǔ)言編寫。如果要定制或二次開發(fā)則相對(duì)容易,支持腳本語(yǔ)言(Bash、Perl、Python等)對(duì)其進(jìn)行擴(kuò)展或二次開發(fā)。而這些腳本語(yǔ)言對(duì)運(yùn)維人員來(lái)說并不陌生,但能不能用的熟練就是另外一回事了。
顏值高的UI
上述的監(jiān)控軟件,它們的UI界面不是很Nice,可以使用比較流行的Grafana。
ZMON
可以做監(jiān)控及指標(biāo)監(jiān)控。
Prometheus
應(yīng)用程序的指標(biāo)監(jiān)控。四個(gè)黃金指標(biāo):
延遲:服務(wù)請(qǐng)求所需耗時(shí);例如HTTP請(qǐng)求平均延遲
流量/吞吐:衡量服務(wù)容量需求;例如每秒處理HTTP請(qǐng)求數(shù)
錯(cuò)誤:衡量錯(cuò)誤發(fā)生的情況;例如HTTP 500錯(cuò)誤數(shù)
飽和度:衡量資源使用情況;例如CPU/內(nèi)存/磁盤使用量
有了指標(biāo)監(jiān)控,再加上服務(wù)調(diào)用鏈追蹤,效果會(huì)更好。
服務(wù)鏈調(diào)用追蹤
服務(wù)鏈調(diào)用追蹤解決的問題:
提供服務(wù)之間的調(diào)用鏈
性能及延遲分析
服務(wù)依賴分析
問題分析
Zipkin
Twitter 推出的服務(wù)調(diào)用追蹤系統(tǒng)
Jaeger
Uber 推出的服務(wù)調(diào)用追蹤系統(tǒng)
Skywalking
華為推出的服務(wù)調(diào)用追蹤系統(tǒng)
配置管理篇
Ansible
比較輕量級(jí)(相對(duì)Puppet及SaltStack)的自動(dòng)化配置管理工具。讓運(yùn)維告別使用腳本進(jìn)行循環(huán)來(lái)完成批量操作的任務(wù),而是真正的使用并行來(lái)做操作管理。
編程語(yǔ)言篇
做為IT界的一員,不管是什么工種,不會(huì)一門編程語(yǔ)言,都不好意思跟別人打招呼。
Python
Python的口號(hào)是:"Life is short, use Python."
Golang
Golang具有C的性能及Python的姿態(tài),它的口號(hào)是:"Life is short, let\\\’s Go."
Lua
OpenResty中需要用到Lua語(yǔ)言,所以掌握一下這門語(yǔ)言也是應(yīng)該的。
JavaScript
現(xiàn)在不管是什么職位,總得會(huì)點(diǎn)JS吧,不然離全棧還是有點(diǎn)距離的。如果不會(huì)一點(diǎn),自己想做個(gè)頁(yè)面,還要找前端同事,多么不方便。
代碼托管
有了編程語(yǔ)言及相應(yīng)的開發(fā)環(huán)境,那就該有一個(gè)代碼托管的地方。這里推薦使用Gitlab作為公司內(nèi)部的代碼托管服務(wù),相信很多公司也是這么選擇的。
開發(fā)框架
JAVA 相關(guān)框架
涉及到Java開發(fā),就少不了下面的幾個(gè)組件:
JDK
Maven(Ant或Gradle)
Nexus
代碼托管
數(shù)據(jù)庫(kù)(關(guān)系型數(shù)據(jù)庫(kù)、非關(guān)系型數(shù)據(jù)庫(kù))
Spring全家桶要知道有什么,及怎么工作的。如:
服務(wù)注冊(cè)、發(fā)現(xiàn)
負(fù)載均衡
熔斷是怎么回事
配置中心
Spring Boot
Spring Cloud
Python 相關(guān)框架
Django
Python 世界中一個(gè)大而全的WEB框架。
Flask
Python 世界中一個(gè)小而美的WEB框架。
CI/CD
這在日常的工作中,有著很大的比重。如果這一塊做不好,運(yùn)維將會(huì)比較苦逼。市面上的CI/CD工具比較多,選擇也比較多,推薦使用Jenkins或者自研。
運(yùn)維小工具
平時(shí)可以開發(fā)一些小工具,這些小工具可以幫助自己或開發(fā)快速獲取一些信息,如:
解析 Eureka 的注冊(cè)信息,可以知道自己的服務(wù)部署在哪里及監(jiān)聽的端口
從一臺(tái)機(jī)器上復(fù)制文件到另外一臺(tái)
從一個(gè)數(shù)據(jù)庫(kù)實(shí)例,同步數(shù)據(jù)到另外一個(gè)數(shù)據(jù)庫(kù)實(shí)例
還有很多
總結(jié)
運(yùn)維要把基礎(chǔ)型的工作做好之后,就可以用更多的時(shí)間與精力做更有價(jià)值的事情了。基礎(chǔ)型的工作主要有:
持續(xù)集成與持續(xù)部署
基礎(chǔ)設(shè)施監(jiān)控
服務(wù)性能監(jiān)控
上述工作做好之后,就可以做一些公司內(nèi)部的運(yùn)維平臺(tái),方便開發(fā)同事進(jìn)行更高效地開發(fā)。
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問題,請(qǐng)?jiān)L問西部數(shù)碼官網(wǎng):www.ps-sw.cn