http://www.infoq.com/cn/news/2017/05/2017-devops
近些年來碧查,軟件領域發(fā)生了翻天覆地的變化卦方。從操作系統(tǒng)、數(shù)據(jù)庫等底層基礎架構,到分布式系統(tǒng)哎迄、大數(shù)據(jù)侣背、云計算、機器學習等基礎領域慨默,從單體應用贩耐、MVC、服務化厦取,到微服務化等應用開發(fā)模式潮太,從IaaS、PaaS、CaaS到FaaS铡买,運維技術(特別是大規(guī)模復雜分布式系統(tǒng)的運維)也變得越來越重要更鲁,它已成為IT類企業(yè)提升生產(chǎn)力的核心。
隨著運維受到越來越多的重視奇钞,運維體系也逐步豐富澡为,出現(xiàn)了DevOps等理念將研發(fā)、測試景埃、運維等流程連接起來媒至。而容器技術更是從底層重構了運維,連接了開發(fā)谷徙、測試塘慕、部署、運行和監(jiān)控全流程蒂胞,進一步推動了運維體系從工具化逐步往平臺化图呢、自動化和智能化方向遷移。本文將對運維技術從底層到頂層做一個徹底的梳理和盤點骗随。
微服務
微服務是近幾年提出的概念蛤织,它通過將應用解耦成多個服務的方式來改善其模塊化程度,使其更容易被理解鸿染、開發(fā)、測試和部署摊鸡,更適用于小團隊快速迭代式協(xié)作開發(fā)蚕冬。同時免猾,每個服務也能夠采用不同的技術,便于持續(xù)進化囤热。業(yè)界前沿互聯(lián)網(wǎng)公司都構建了微服務框架(例如基于Spring Boot/Spring Cloud等開源項目)來應對其業(yè)務復雜性以及快速迭代過程中的效率問題。最近旁蔼,微服務配置管理、容器化部署棺聊、自動化測試伞租、微服務治理、微服務監(jiān)控限佩、安全、故障容忍等領域也受到越來越多的關注驯击。
SRE
SRE(Site Reliability Engineering, 網(wǎng)站可靠性工程)是來自于谷歌的一個最佳實踐,它用于服務的容量規(guī)劃和實施徊都、保障服務的可靠性和性能暇矫,更多的在軟件基礎架構層面構建自動化工具來取代人工操作主之,從而更好地應對其業(yè)務復雜多變的需求李根。
DevOps & CI/CD
DevOps逐步成為軟件開發(fā)的主流房轿,容器也已在過去兩年中迅速成長為DevOps的核心,在持續(xù)集成囱持、持續(xù)部署和持續(xù)發(fā)布等方面也越發(fā)受到重視纷妆。隨著新的DevOps自動化工具不斷涌現(xiàn)、容器及其相關生態(tài)的成熟(特別是容器編排工具及其對有狀態(tài)服務的支持)掩幢、微服務的廣泛應用际邻,越來越多的相關工具將會集成在持續(xù)集成過程中,同時自動化持續(xù)測試也會變得更加流行枯怖,從而更有效地控制質量能曾、保障安全、降低成本蕊程、控制風險驼唱、提升效率,更加高效的支持復雜的大型分布式應用辨赐。
容器優(yōu)化與實踐
過去幾年間,以 Docker 為核心的容器技術在持續(xù)進化帆焕,以其構建不恭、分發(fā)和部署的簡易性成為 IT 基礎架構中的關鍵技術。容器技術通過標準化運行環(huán)境的方式來連接了應用的研發(fā)折晦、測試和運維沾瓦。它簡單、輕量漓滔,具備很強的可移植性乖篷,能更高效的利用資源,還能夠有效的解決軟件依賴問題豁鲤,提高研發(fā)效率鲸沮,降低研發(fā)成本,因此產(chǎn)業(yè)界也持續(xù)通過容器來優(yōu)化其軟件發(fā)布流程楣号,對已有應用進行容器化怒坯。
然而,容器技術本身也面臨了不少挑戰(zhàn)视译。未來归敬,在容器標準化鄙早、容器安全椅亚、容器網(wǎng)絡、容器存儲特別是對數(shù)據(jù)庫等有狀態(tài)服務的支持等方面還存在很大的改進空間扳缕,容器的可管理性及易用性也需要進一步提升别威。
容器編排與管理
隨著Docker等容器技術的廣泛應用省古,容器編排和管理也受到了越來越多的關注,涌現(xiàn)出了諸于 Kubernetes豺妓、Apache Mesos琳拭、Docker Swarm Mode 等優(yōu)秀的開源生態(tài)和解決方案。它們試圖將目前以資源為中心的管理方式過渡到以應用為中心的管理方式白嘁,并且試圖對應用的基礎構成組件(例如配置絮缅、服務、負載均衡等)進行標準化耕魄,從而獲得更好的可管理性吸奴。隨著CaaS的發(fā)展,私有或公有的容器云也越來越多考润,越來越成熟逞度,用戶體驗越來越好,從而顯著降低遷移成本俊戳。
然而馆匿,在大規(guī)模的實踐中,在灰度發(fā)布阿逃、資源調度赃蛛、隔離性、運維監(jiān)控破托、日志等方面仍有待進一步成熟和標準化歧蒋,在跨數(shù)據(jù)中心的應用管理,混和云環(huán)境支持萝映,跨云服務遷移阐虚,安全性等方面仍然面臨著困難和挑戰(zhàn)。
自動化運維
隨著虛擬化和容器化等技術的出現(xiàn)贸宏,運維管理的復雜度和難度大大增加磕洪,因此必須通過專業(yè)化析显、標準化和流程化的手段來實現(xiàn)運維的自動化。業(yè)界出現(xiàn)了很多提升效率的自動化工具谷异,例如Puppet歹嘹、Chef、Ansible材蛛、Saltstack等。各大主流互聯(lián)網(wǎng)公司也逐步從工具自動化往一站式自動化運維管理平臺的方向進行演化芽淡,從而使得能夠對部署豆赏、配置、監(jiān)控白胀、告警等進行一站式處理抚岗,實現(xiàn)資源和流程的標準化統(tǒng)一化、應用運行狀態(tài)可視化管理廷痘,提升運維質量件已,降低運維成本篷扩。
智能化運維
隨著監(jiān)控范圍的不斷擴大,其產(chǎn)生的數(shù)據(jù)具備多樣性枢冤、多維性和非結構化等特點铜秆,并且可能同業(yè)務數(shù)據(jù)存在相關性,傳統(tǒng)的手動分析處理方式效率低且成本高核蘸。隨著大數(shù)據(jù)和人工智能的興起啸驯,越來越多的智能分析算法也應用于運維領域,它們通過分析運維系統(tǒng)本身所擁有和產(chǎn)生的海量數(shù)據(jù)徙鱼,在問題定位针姿、流量預測、輔助決策杆故、智能報警和自動故障恢復等方面發(fā)揮出較大的作用溉愁,從而進一步降低運維成本拐揭。
運維基礎架構
運維基礎架構涵蓋網(wǎng)絡、機器家肯、機房盟猖、機架、存儲等的管理反镇,涉及基礎資源娘汞、機架設計和交付、網(wǎng)絡架構設計惊豺、數(shù)據(jù)架構規(guī)劃禽作、操作系統(tǒng)旷偿、系統(tǒng)軟件、環(huán)境交付和機器報廢替換等方向衷蜓。
產(chǎn)業(yè)界構建了CMDB以支持服務交付流程和相應的管理流程尘喝,也都構建了相應的初始化朽褪、部署无虚、運行衍锚、監(jiān)控、日志等工具度宦。隨著虛擬化告匠、容器化和云計算的發(fā)展后专,運維基礎架構也從提供資源往提供能力的方向進行轉變,從而提高基礎架構對上層應用的透明性裸诽,進而提高基礎架構的靈活性 型凳。
數(shù)據(jù)庫運維
數(shù)據(jù)庫運維涉及數(shù)據(jù)庫部署架構、容量規(guī)劃殷蛇、性能調優(yōu)橄浓、數(shù)據(jù)備份和恢復荸实、數(shù)據(jù)遷移、數(shù)據(jù)庫監(jiān)控審計泄朴、數(shù)據(jù)庫運維管理露氮、故障排除等一系列服務。
隨著互聯(lián)網(wǎng)更加廣泛的使用局扶,數(shù)據(jù)庫運維也呈現(xiàn)出新的形態(tài)三妈。近年來,在異地多活等部署模式悠鞍、在線表模式變更模燥、海量數(shù)據(jù)遷移、故障排除時心肪,都會通過一系列的工具纠吴,來盡可能的減少數(shù)據(jù)庫整體的不可用時間戴已,從而盡可能的降低對用戶的影響锅减。 同時,為了簡化數(shù)據(jù)庫的部署和管理握联,以容器化的方式來對數(shù)據(jù)庫進行管理和調度也逐步成為熱點之一金闽。最后剿骨,通過對數(shù)據(jù)庫各項指標的分析和挖掘,提供智能化診斷方案挤庇,提前預知和管控風險贷掖,提升處理效率苹威,提升系統(tǒng)整體穩(wěn)定性。
大數(shù)據(jù)運維
隨著數(shù)據(jù)的快速增長潮改,以Hadoop為基礎的生態(tài)系統(tǒng)也扮演了越來越重要的角色,它涵蓋離線計算翰萨、流式計算糕殉、即席查詢等多種使用方式阿蝶,也涌現(xiàn)了Hadoop、Spark玷过、Kafka筑煮、Hbase真仲、Storm、Phoenix等優(yōu)秀開源項目虑凛。在大數(shù)據(jù)平臺的運維中软啼,由于涉及分布式架構、多源異構海量數(shù)據(jù)存儲霉囚、數(shù)據(jù)的處理框架更為多樣化和復雜化等問題盈罐,大數(shù)據(jù)的運維也變得異常復雜闪唆。
大數(shù)據(jù)運維的主要目標是提高資源利用率悄蕾,降低了大數(shù)據(jù)系統(tǒng)的運維復雜度础浮,提升用戶友好性奠骄。其中含鳞,計算資源的統(tǒng)一管理和調度能力,以容器為基礎的多種類型大數(shù)據(jù)系統(tǒng)混合部署能力鸭廷,快速彈性擴縮容能力熔吗,跨數(shù)據(jù)中心容災能力桅狠,大數(shù)據(jù)應用監(jiān)控能力和快速靈活的故障定位能力也變得越來越重要垂攘。
運維監(jiān)控
監(jiān)控是IT系統(tǒng)運維中保障核心業(yè)務穩(wěn)定可用的重要環(huán)節(jié),它涵蓋網(wǎng)絡、主機逸贾、業(yè)務铝侵、應用、性能等方面狐赡,涉及快速的故障通知颖侄,精準的故障定位和性能分析診斷等享郊。當前比較流行并且在業(yè)界廣泛應用開源的監(jiān)控軟件包括Nagios炊琉、Cacti、Zabbix锰悼、Ganglia等。
隨著應用規(guī)模的迅速擴大以及DevOps夹界、微服務隘世、容器等技術的快速發(fā)展丙者,監(jiān)控也出現(xiàn)新的形態(tài)械媒。監(jiān)控方式也已經(jīng)從類Nagios風格演化為流式風格,它基于監(jiān)控指標對海量數(shù)據(jù)進行流式處理痢虹,同時通過可視化平臺來實時展示這些監(jiān)控指標主儡。另外,隨著基礎設施變得更加動態(tài)丰捷,監(jiān)控不但關心單個節(jié)點的運行狀態(tài)病往,更關心整個應用的健康狀態(tài)骄瓣,全鏈路追蹤等技術也已經(jīng)出現(xiàn)并得到廣泛應用榕栏。
運維安全
在互聯(lián)網(wǎng)化和移動化的背景下,應用逐漸往云中遷移臼膏,傳統(tǒng)的邊界變得越來越模糊渗磅,安全也有了新的發(fā)展趨勢检访。過去的安全技術是以防御為主,采用傳統(tǒng)防火墻仔掸、入侵防御系統(tǒng)等〈喙螅現(xiàn)在,除了對傳統(tǒng)的安全措施進行加強之外起暮,還會在開發(fā)流程中引入威脅建模卖氨,自動安全掃描、安全功能性測試等安全實踐负懦,從而降低安全風險筒捺,縮短安全問題的反饋周期。同時纸厉,安全也從事先預防轉向為持續(xù)檢測和快速響應系吭,通過對攻擊行為的持續(xù)檢測颗品,對安全事件進行快速響應肯尺,從而大幅降低損失。
游戲開發(fā)與運維
近年來躯枢,網(wǎng)絡游戲的增長非常迅速则吟,游戲開發(fā)采用通用化框架和引擎的趨勢越來越明顯。在游戲運維方面锄蹂,除了常規(guī)的運維手段氓仲,游戲還有其自身的特點。首先败匹,端游寨昙、頁游和手游由于形式的不同, 其在聯(lián)網(wǎng)方式掀亩、分發(fā)渠道、生命周期長短等方面存在差異欢顷,因此給網(wǎng)絡接入槽棍、多渠道分發(fā)、容量規(guī)劃抬驴、網(wǎng)絡延時炼七、檔案數(shù)據(jù)高可靠存取等方面的運維都帶來了挑戰(zhàn)。
其次布持,由于用戶增長存在不可預知性豌拙,游戲運維必須具備快速的擴縮容能力,多采用混合云或者公有云的技術架構题暖,從而最大程度的提升其水平可擴展性按傅。最后捉超,在受到大規(guī)模DDOS異常流量攻擊時,游戲運維應當具備多級流量清洗保護機制唯绍,具備服務降級的能力拼岳,從而盡可能的保證可用性。
互聯(lián)網(wǎng)金融與運維
近幾年來况芒,互聯(lián)網(wǎng)金融出現(xiàn)了井噴式發(fā)展惜纸,F(xiàn)intech也為其注入了技術創(chuàng)新基因。微服務绝骚、容器化耐版、大數(shù)據(jù)和云計算等技術為互聯(lián)網(wǎng)金融的快速迭代提供了基礎。然而压汪,相對于目前的應用運維粪牲,互聯(lián)網(wǎng)金融行業(yè)有其自身的特點,其在數(shù)據(jù)留存蛾魄、安全合規(guī)虑瀑、防攻擊能力、支付清算滴须、金融監(jiān)管舌狗、數(shù)據(jù)安全、大數(shù)據(jù)風控和高等級安全防護等方面都有較強需求甚至強制性的金融監(jiān)管規(guī)范扔水,也對互聯(lián)網(wǎng)金融的運維提出了更高的挑戰(zhàn)痛侍。
福利
以上技術點將以專題的形式在9月10-11日由InfoQ主辦的CNUTCon全球運維技術大會·上海站上做深入講解,篇幅關系此處不做過多展開魔市。
大會邀請了國內外諸多一流領域技術專家嚴篩優(yōu)質話題主届、發(fā)掘優(yōu)秀講師,也邀你共同探討相關的基礎架構待德、技術方案君丁、應用場景以及實踐經(jīng)驗。
最后将宪,本文的讀者在報名CNUTCon時輸入 CNUTCon2017-InfoQ-PROMO 還可享受特別優(yōu)惠绘闷,拿走不謝。6折只剩最后2天较坛,欲購從速印蔗!對大會有任何建議或疑問(如議題提交、優(yōu)惠郵票丑勤、贊助合作等)均可聯(lián)系大會負責人劉蕓(微信:ly15201392806)华嘹。
關于作者
劉建,搜狗資深架構師法竞,負責搜狗商業(yè)平臺的基礎研發(fā)和平臺架構耙厚,涉及廣告計費强挫、報文等核心業(yè)務服務,致力于解決分布式颜曾、高并發(fā)纠拔、大數(shù)據(jù)量等帶來的各種技術難題及挑戰(zhàn),構建和持續(xù)優(yōu)化商業(yè)平臺基礎架構泛豪,保證高可靠稠诲、高性能、低成本的快速支撐新業(yè)務诡曙。在多個技術方向有較深刻的理解臀叙,有多年大規(guī)模復雜系統(tǒng)架構實踐經(jīng)驗。