http://www.infoq.com/cn/news/2017/05/2017-devops
近些年來,軟件領(lǐng)域發(fā)生了翻天覆地的變化。從操作系統(tǒng)、數(shù)據(jù)庫等底層基礎(chǔ)架構(gòu),到分布式系統(tǒng)、大數(shù)據(jù)、云計算、機器學(xué)習(xí)等基礎(chǔ)領(lǐng)域,從單體應(yīng)用、MVC、服務(wù)化,到微服務(wù)化等應(yīng)用開發(fā)模式,從IaaS、PaaS、CaaS到FaaS,運維技術(shù)(特別是大規(guī)模復(fù)雜分布式系統(tǒng)的運維)也變得越來越重要,它已成為IT類企業(yè)提升生產(chǎn)力的核心。
隨著運維受到越來越多的重視,運維體系也逐步豐富,出現(xiàn)了DevOps等理念將研發(fā)、測試、運維等流程連接起來。而容器技術(shù)更是從底層重構(gòu)了運維,連接了開發(fā)、測試、部署、運行和監(jiān)控全流程,進一步推動了運維體系從工具化逐步往平臺化、自動化和智能化方向遷移。本文將對運維技術(shù)從底層到頂層做一個徹底的梳理和盤點。
微服務(wù)
微服務(wù)是近幾年提出的概念,它通過將應(yīng)用解耦成多個服務(wù)的方式來改善其模塊化程度,使其更容易被理解、開發(fā)、測試和部署,更適用于小團隊快速迭代式協(xié)作開發(fā)。同時,每個服務(wù)也能夠采用不同的技術(shù),便于持續(xù)進化。業(yè)界前沿互聯(lián)網(wǎng)公司都構(gòu)建了微服務(wù)框架(例如基于Spring Boot/Spring Cloud等開源項目)來應(yīng)對其業(yè)務(wù)復(fù)雜性以及快速迭代過程中的效率問題。最近,微服務(wù)配置管理、容器化部署、自動化測試、微服務(wù)治理、微服務(wù)監(jiān)控、安全、故障容忍等領(lǐng)域也受到越來越多的關(guān)注。
SRE
SRE(Site Reliability Engineering, 網(wǎng)站可靠性工程)是來自于谷歌的一個最佳實踐,它用于服務(wù)的容量規(guī)劃和實施、保障服務(wù)的可靠性和性能,更多的在軟件基礎(chǔ)架構(gòu)層面構(gòu)建自動化工具來取代人工操作,從而更好地應(yīng)對其業(yè)務(wù)復(fù)雜多變的需求。
DevOps & CI/CD
DevOps逐步成為軟件開發(fā)的主流,容器也已在過去兩年中迅速成長為DevOps的核心,在持續(xù)集成、持續(xù)部署和持續(xù)發(fā)布等方面也越發(fā)受到重視。隨著新的DevOps自動化工具不斷涌現(xiàn)、容器及其相關(guān)生態(tài)的成熟(特別是容器編排工具及其對有狀態(tài)服務(wù)的支持)、微服務(wù)的廣泛應(yīng)用,越來越多的相關(guān)工具將會集成在持續(xù)集成過程中,同時自動化持續(xù)測試也會變得更加流行,從而更有效地控制質(zhì)量、保障安全、降低成本、控制風(fēng)險、提升效率,更加高效的支持復(fù)雜的大型分布式應(yīng)用。
容器優(yōu)化與實踐
過去幾年間,以 Docker 為核心的容器技術(shù)在持續(xù)進化,以其構(gòu)建、分發(fā)和部署的簡易性成為 IT 基礎(chǔ)架構(gòu)中的關(guān)鍵技術(shù)。容器技術(shù)通過標(biāo)準(zhǔn)化運行環(huán)境的方式來連接了應(yīng)用的研發(fā)、測試和運維。它簡單、輕量,具備很強的可移植性,能更高效的利用資源,還能夠有效的解決軟件依賴問題,提高研發(fā)效率,降低研發(fā)成本,因此產(chǎn)業(yè)界也持續(xù)通過容器來優(yōu)化其軟件發(fā)布流程,對已有應(yīng)用進行容器化。
然而,容器技術(shù)本身也面臨了不少挑戰(zhàn)。未來,在容器標(biāo)準(zhǔn)化、容器安全、容器網(wǎng)絡(luò)、容器存儲特別是對數(shù)據(jù)庫等有狀態(tài)服務(wù)的支持等方面還存在很大的改進空間,容器的可管理性及易用性也需要進一步提升。
容器編排與管理
隨著Docker等容器技術(shù)的廣泛應(yīng)用,容器編排和管理也受到了越來越多的關(guān)注,涌現(xiàn)出了諸于 Kubernetes、Apache Mesos、Docker Swarm Mode 等優(yōu)秀的開源生態(tài)和解決方案。它們試圖將目前以資源為中心的管理方式過渡到以應(yīng)用為中心的管理方式,并且試圖對應(yīng)用的基礎(chǔ)構(gòu)成組件(例如配置、服務(wù)、負載均衡等)進行標(biāo)準(zhǔn)化,從而獲得更好的可管理性。隨著CaaS的發(fā)展,私有或公有的容器云也越來越多,越來越成熟,用戶體驗越來越好,從而顯著降低遷移成本。
然而,在大規(guī)模的實踐中,在灰度發(fā)布、資源調(diào)度、隔離性、運維監(jiān)控、日志等方面仍有待進一步成熟和標(biāo)準(zhǔn)化,在跨數(shù)據(jù)中心的應(yīng)用管理,混和云環(huán)境支持,跨云服務(wù)遷移,安全性等方面仍然面臨著困難和挑戰(zhàn)。
自動化運維
隨著虛擬化和容器化等技術(shù)的出現(xiàn),運維管理的復(fù)雜度和難度大大增加,因此必須通過專業(yè)化、標(biāo)準(zhǔn)化和流程化的手段來實現(xiàn)運維的自動化。業(yè)界出現(xiàn)了很多提升效率的自動化工具,例如Puppet、Chef、Ansible、Saltstack等。各大主流互聯(lián)網(wǎng)公司也逐步從工具自動化往一站式自動化運維管理平臺的方向進行演化,從而使得能夠?qū)Σ渴稹⑴渲?、監(jiān)控、告警等進行一站式處理,實現(xiàn)資源和流程的標(biāo)準(zhǔn)化統(tǒng)一化、應(yīng)用運行狀態(tài)可視化管理,提升運維質(zhì)量,降低運維成本。
智能化運維
隨著監(jiān)控范圍的不斷擴大,其產(chǎn)生的數(shù)據(jù)具備多樣性、多維性和非結(jié)構(gòu)化等特點,并且可能同業(yè)務(wù)數(shù)據(jù)存在相關(guān)性,傳統(tǒng)的手動分析處理方式效率低且成本高。隨著大數(shù)據(jù)和人工智能的興起,越來越多的智能分析算法也應(yīng)用于運維領(lǐng)域,它們通過分析運維系統(tǒng)本身所擁有和產(chǎn)生的海量數(shù)據(jù),在問題定位、流量預(yù)測、輔助決策、智能報警和自動故障恢復(fù)等方面發(fā)揮出較大的作用,從而進一步降低運維成本。
運維基礎(chǔ)架構(gòu)
運維基礎(chǔ)架構(gòu)涵蓋網(wǎng)絡(luò)、機器、機房、機架、存儲等的管理,涉及基礎(chǔ)資源、機架設(shè)計和交付、網(wǎng)絡(luò)架構(gòu)設(shè)計、數(shù)據(jù)架構(gòu)規(guī)劃、操作系統(tǒng)、系統(tǒng)軟件、環(huán)境交付和機器報廢替換等方向。
產(chǎn)業(yè)界構(gòu)建了CMDB以支持服務(wù)交付流程和相應(yīng)的管理流程,也都構(gòu)建了相應(yīng)的初始化、部署、運行、監(jiān)控、日志等工具。隨著虛擬化、容器化和云計算的發(fā)展,運維基礎(chǔ)架構(gòu)也從提供資源往提供能力的方向進行轉(zhuǎn)變,從而提高基礎(chǔ)架構(gòu)對上層應(yīng)用的透明性,進而提高基礎(chǔ)架構(gòu)的靈活性 。
數(shù)據(jù)庫運維
數(shù)據(jù)庫運維涉及數(shù)據(jù)庫部署架構(gòu)、容量規(guī)劃、性能調(diào)優(yōu)、數(shù)據(jù)備份和恢復(fù)、數(shù)據(jù)遷移、數(shù)據(jù)庫監(jiān)控審計、數(shù)據(jù)庫運維管理、故障排除等一系列服務(wù)。
隨著互聯(lián)網(wǎng)更加廣泛的使用,數(shù)據(jù)庫運維也呈現(xiàn)出新的形態(tài)。近年來,在異地多活等部署模式、在線表模式變更、海量數(shù)據(jù)遷移、故障排除時,都會通過一系列的工具,來盡可能的減少數(shù)據(jù)庫整體的不可用時間,從而盡可能的降低對用戶的影響。 同時,為了簡化數(shù)據(jù)庫的部署和管理,以容器化的方式來對數(shù)據(jù)庫進行管理和調(diào)度也逐步成為熱點之一。最后,通過對數(shù)據(jù)庫各項指標(biāo)的分析和挖掘,提供智能化診斷方案,提前預(yù)知和管控風(fēng)險,提升處理效率,提升系統(tǒng)整體穩(wěn)定性。
大數(shù)據(jù)運維
隨著數(shù)據(jù)的快速增長,以Hadoop為基礎(chǔ)的生態(tài)系統(tǒng)也扮演了越來越重要的角色,它涵蓋離線計算、流式計算、即席查詢等多種使用方式,也涌現(xiàn)了Hadoop、Spark、Kafka、Hbase、Storm、Phoenix等優(yōu)秀開源項目。在大數(shù)據(jù)平臺的運維中,由于涉及分布式架構(gòu)、多源異構(gòu)海量數(shù)據(jù)存儲、數(shù)據(jù)的處理框架更為多樣化和復(fù)雜化等問題,大數(shù)據(jù)的運維也變得異常復(fù)雜。
大數(shù)據(jù)運維的主要目標(biāo)是提高資源利用率,降低了大數(shù)據(jù)系統(tǒng)的運維復(fù)雜度,提升用戶友好性。其中,計算資源的統(tǒng)一管理和調(diào)度能力,以容器為基礎(chǔ)的多種類型大數(shù)據(jù)系統(tǒng)混合部署能力,快速彈性擴縮容能力,跨數(shù)據(jù)中心容災(zāi)能力,大數(shù)據(jù)應(yīng)用監(jiān)控能力和快速靈活的故障定位能力也變得越來越重要。
運維監(jiān)控
監(jiān)控是IT系統(tǒng)運維中保障核心業(yè)務(wù)穩(wěn)定可用的重要環(huán)節(jié),它涵蓋網(wǎng)絡(luò)、主機、業(yè)務(wù)、應(yīng)用、性能等方面,涉及快速的故障通知,精準(zhǔn)的故障定位和性能分析診斷等。當(dāng)前比較流行并且在業(yè)界廣泛應(yīng)用開源的監(jiān)控軟件包括Nagios、Cacti、Zabbix、Ganglia等。
隨著應(yīng)用規(guī)模的迅速擴大以及DevOps、微服務(wù)、容器等技術(shù)的快速發(fā)展,監(jiān)控也出現(xiàn)新的形態(tài)。監(jiān)控方式也已經(jīng)從類Nagios風(fēng)格演化為流式風(fēng)格,它基于監(jiān)控指標(biāo)對海量數(shù)據(jù)進行流式處理,同時通過可視化平臺來實時展示這些監(jiān)控指標(biāo)。另外,隨著基礎(chǔ)設(shè)施變得更加動態(tài),監(jiān)控不但關(guān)心單個節(jié)點的運行狀態(tài),更關(guān)心整個應(yīng)用的健康狀態(tài),全鏈路追蹤等技術(shù)也已經(jīng)出現(xiàn)并得到廣泛應(yīng)用。
運維安全
在互聯(lián)網(wǎng)化和移動化的背景下,應(yīng)用逐漸往云中遷移,傳統(tǒng)的邊界變得越來越模糊,安全也有了新的發(fā)展趨勢。過去的安全技術(shù)是以防御為主,采用傳統(tǒng)防火墻、入侵防御系統(tǒng)等?,F(xiàn)在,除了對傳統(tǒng)的安全措施進行加強之外,還會在開發(fā)流程中引入威脅建模,自動安全掃描、安全功能性測試等安全實踐,從而降低安全風(fēng)險,縮短安全問題的反饋周期。同時,安全也從事先預(yù)防轉(zhuǎn)向為持續(xù)檢測和快速響應(yīng),通過對攻擊行為的持續(xù)檢測,對安全事件進行快速響應(yīng),從而大幅降低損失。
游戲開發(fā)與運維
近年來,網(wǎng)絡(luò)游戲的增長非常迅速,游戲開發(fā)采用通用化框架和引擎的趨勢越來越明顯。在游戲運維方面,除了常規(guī)的運維手段,游戲還有其自身的特點。首先,端游、頁游和手游由于形式的不同, 其在聯(lián)網(wǎng)方式、分發(fā)渠道、生命周期長短等方面存在差異,因此給網(wǎng)絡(luò)接入、多渠道分發(fā)、容量規(guī)劃、網(wǎng)絡(luò)延時、檔案數(shù)據(jù)高可靠存取等方面的運維都帶來了挑戰(zhàn)。
其次,由于用戶增長存在不可預(yù)知性,游戲運維必須具備快速的擴縮容能力,多采用混合云或者公有云的技術(shù)架構(gòu),從而最大程度的提升其水平可擴展性。最后,在受到大規(guī)模DDOS異常流量攻擊時,游戲運維應(yīng)當(dāng)具備多級流量清洗保護機制,具備服務(wù)降級的能力,從而盡可能的保證可用性。
互聯(lián)網(wǎng)金融與運維
近幾年來,互聯(lián)網(wǎng)金融出現(xiàn)了井噴式發(fā)展,F(xiàn)intech也為其注入了技術(shù)創(chuàng)新基因。微服務(wù)、容器化、大數(shù)據(jù)和云計算等技術(shù)為互聯(lián)網(wǎng)金融的快速迭代提供了基礎(chǔ)。然而,相對于目前的應(yīng)用運維,互聯(lián)網(wǎng)金融行業(yè)有其自身的特點,其在數(shù)據(jù)留存、安全合規(guī)、防攻擊能力、支付清算、金融監(jiān)管、數(shù)據(jù)安全、大數(shù)據(jù)風(fēng)控和高等級安全防護等方面都有較強需求甚至強制性的金融監(jiān)管規(guī)范,也對互聯(lián)網(wǎng)金融的運維提出了更高的挑戰(zhàn)。
福利
以上技術(shù)點將以專題的形式在9月10-11日由InfoQ主辦的CNUTCon全球運維技術(shù)大會·上海站上做深入講解,篇幅關(guān)系此處不做過多展開。
大會邀請了國內(nèi)外諸多一流領(lǐng)域技術(shù)專家嚴(yán)篩優(yōu)質(zhì)話題、發(fā)掘優(yōu)秀講師,也邀你共同探討相關(guān)的基礎(chǔ)架構(gòu)、技術(shù)方案、應(yīng)用場景以及實踐經(jīng)驗。
最后,本文的讀者在報名CNUTCon時輸入 CNUTCon2017-InfoQ-PROMO 還可享受特別優(yōu)惠,拿走不謝。6折只剩最后2天,欲購從速!對大會有任何建議或疑問(如議題提交、優(yōu)惠郵票、贊助合作等)均可聯(lián)系大會負責(zé)人劉蕓(微信:ly15201392806)。
關(guān)于作者
劉建,搜狗資深架構(gòu)師,負責(zé)搜狗商業(yè)平臺的基礎(chǔ)研發(fā)和平臺架構(gòu),涉及廣告計費、報文等核心業(yè)務(wù)服務(wù),致力于解決分布式、高并發(fā)、大數(shù)據(jù)量等帶來的各種技術(shù)難題及挑戰(zhàn),構(gòu)建和持續(xù)優(yōu)化商業(yè)平臺基礎(chǔ)架構(gòu),保證高可靠、高性能、低成本的快速支撐新業(yè)務(wù)。在多個技術(shù)方向有較深刻的理解,有多年大規(guī)模復(fù)雜系統(tǒng)架構(gòu)實踐經(jīng)驗。