在路上:嚴選服務治理實踐

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當你面對一個由幾百上千個服務高度耦合而成的大型系統,各式各樣的問題便會不約而至,而且絕對是一個不小的挑戰。"},{"type":"text","text":"熵增原理告訴我們——任何系統都需要治理,"},{"type":"text","text":"本文分享嚴選在多年的服務治理實踐中的一些思考、一些心得。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務需要治理嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當然需要,你100%會碰上各種需求,各種問題。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"古代的農民耕種最關心的問題是氣候變化、按時播種、按量灌溉,而如今的現代化規模化種植時代,農民(和糧食集團)還需要去關注一系列其它問題,譬如多作物立體種植、經濟效應最大化、環保合規和生態破壞等等。"},{"type":"text","marks":[{"type":"strong"}],"text":"只要生產方式和生產規模不是一成不變,那早晚都會有新的問題誕生。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"計算機應用亦然。當服務技術架構還是單體服務(monolithic)的年代我們需要解決問題A、問題B和問題C,到了MVC架構\/RPC架構\/SOA架構盛行的時代可能會引入問題D、E、F,當業務規模持續擴張促使架構演進到微服務(microservice)階段,此時你會發現,可能老問題A、B、D、F消失不見了,但C和E依然存在,同時還引入了好幾個新問題G、H、I、J和K。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/71\/b8\/71d37a9772842246aeac782022290cb8.png","alt":null,"title":"","style":[{"key":"width","value":"100%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"存在問題或可能出現問題,因此才需要治理。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"IBM在2006年對服務治理的要點做過總結,“問題”可以歸納爲以下10個方面:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"numberedlist","attrs":{"start":1,"normalizeStart":1},"content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"服務定義 Service definition:關注服務的範圍、接口和邊界"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"服務生命週期 Service deployment life cycle:從規劃到下線整個生命週期各個階段"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":3,"align":null,"origin":null},"content":[{"type":"text","text":"服務版本治理 Service versioning:強調兼容性,新需求催生新版本,但迭代不能中斷用戶體驗"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":4,"align":null,"origin":null},"content":[{"type":"text","text":"服務遷移 Service migration:啓用和退役"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":5,"align":null,"origin":null},"content":[{"type":"text","text":"服務註冊中心 Service registries:依賴關係"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":6,"align":null,"origin":null},"content":[{"type":"text","text":"服務消息模型 Service message model:規範數據模型"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":7,"align":null,"origin":null},"content":[{"type":"text","text":"服務監控 Service monitoring:異常發現、排障定位與恢復,強調SLA"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":8,"align":null,"origin":null},"content":[{"type":"text","text":"服務所有權 Service ownership:企業組織,用戶角色,對齊服務與業務關係"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":9,"align":null,"origin":null},"content":[{"type":"text","text":"服務測試 Service testing:充分測試和驗證,覆蓋,重複"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":10,"align":null,"origin":null},"content":[{"type":"text","text":"服務安全 Service security:圈定保護範圍,控制數據獲取渠道並強化"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在嚴選的實踐中,我們"},{"type":"text","marks":[{"type":"strong"}],"text":"發現服務元數據管理(配置中心或叫CMDB)、註冊與發現、流量管理、容量管理、資源調度、可觀測性、故障定位、安全控制、平臺抽象化等方面是解決問題的重中之重"},{"type":"text","text":"。同時,要重視規範流程先行、交付效率&交付質量和治理平臺易用性。其實,這裏面每一個方面都很龐大和複雜,值得深入鑽研,它們都屬於服務治理的範疇,整個服務治理就是“企業爲了確保事情順利完成而實施的過程”(SOA governance —— Anne Thomas Manes)。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/f0\/32\/f05596c3cb9a4c7c834f2250132f9832.png","alt":null,"title":"","style":[{"key":"width","value":"100%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果你的系統規模很小,只有十幾個服務,那治理成本是很低的,任何粗放式、人工式手段通常都能被接受。然而,當你面對一個由幾百上千個服務高度耦合而成的大型系統,各式各樣的問題便會不約而至,而且絕對是一個不小的挑戰。熵增原理告訴我們——任何系統都需要治理,假如我們選擇無視這些問題,則可能導致一些更加不可接受的問題,譬如維護成本劇增、規範腐化、MTTR增加、SLA下降、系統失控等等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一句話,服務治理,勢在必行,宜早不宜遲。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務如何治理?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"參考答案:擁抱DevOps。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"DevOps是服務治理的好夥伴。DevOps落地讓團隊獲得CMDB、CI\/CD、CloudNative、ServiceMesh、Monitor等多重利器,爲服務治理提供各種工具,是不可或缺的治理能力層。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"嚴選DevOps工具鏈的持續建設讓產技部門在效能、性能、穩定性等方面嚐到了越來越多的甜頭,隨着基建越來越完善,服務治理狀況也得到極大改善。正所謂內功外功要兼修,在這個過程中,我們發現服務治理很需要一個統一的易用的門戶平臺,否則開發、測試和運維都要去接觸很多概念術語和底層系統,面臨着巨大學習成本和上手門檻(效能↓),以及不小的出錯機率(風險↑)。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"於是,一個"},{"type":"text","marks":[{"type":"strong"}],"text":"嚴選服務治理門戶"},{"type":"text","text":"便水到渠成地誕生了,項目代號是"},{"type":"text","marks":[{"type":"strong"}],"text":"服務鳥巢Service Nest"},{"type":"text","text":",內部日常簡稱爲"},{"type":"text","marks":[{"type":"strong"}],"text":"SNest"},{"type":"text","text":"。前面提到服務治理要解決10個方面的問題,這些問題在背後會由不同的系統在提供解決方案(如CMDB、Consul、Istio、KVM、K8S等),這些通通可以視爲能力層,而SNest最大的使命就是包裝全部能力層並統一暴露出來,作爲服務治理的整合平臺和用戶端門戶系統。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/1e\/ba\/1e8f8fdba9009f944accc402369be3ba.png","alt":null,"title":"","style":[{"key":"width","value":"100%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下面舉幾個例子。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務元數據管理"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務類型、所屬產品、不同環境的實例信息(IP、端口)、JVM配置、Tomcat參數、操作系統特殊需求、服務的負責人\/研發人員\/測試人員列表等等,這些都可以視爲服務的元數據,它們非常重要。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"以前"},{"type":"text","text":":散落在各地(開發和運維手上各自維護一部分,可能記錄在一些內部零散系統或者wiki、甚至靠腦子記憶),有變更靠人工交流、手動執行,系統之間也無打通關聯。可想而知,溝通成本巨大,而且,時間久了就意味着文檔老化和數據變髒。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"現狀&規劃"},{"type":"text","text":":基礎配置項(Configuration Item,CI)維護在嚴選CMDB,服務級別的配置項(也是CI)則維護在嚴選SNest,核心配置的修改由流程控制(嚴選工單),配置變更後觸發通知(嚴選事件消息中心),再結合SNest提供的豐富OpenAPI,使得嚴選全服務的元數據得以平臺化(入口收斂,規範落地於此)、流程化(變更審批和事件推送)、自動化(工單自動執行)和數據打通(系統間聯動,通傳通識)。對將來來說,擁有完善的服務元數據對單元化和服務定義(Application Definition)等進階項目都有極大幫助。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/b0\/26\/b07d2079f5d6e858ab94612f35a7f626.png","alt":null,"title":"","style":[{"key":"width","value":"100%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務容量與資源調度"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務實例必須運行在一定資源之上,服務A可能需要4臺8core\/16G mem\/150G HDD規格的虛擬機,服務B可能需要10臺Dell R740物理機,服務A希望不要與服務BCD共處同一臺物理宿主機(這4個服務容易存在資源搶佔,嚴選內部常稱之爲互斥),服務E希望優先被調度到能提供SRIOV高性能網絡的機器(雲計算建德機房,特殊網卡+內核參數)上運行。與此同時,嚴選當前正處於上雲過程中,雲內和雲外兩地機房的IaaS資源層實現是不同的,雲外機房跑的是物理機和KVM虛擬機,而云內機房跑的是雲計算輕舟提供的K8S容器。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"以前"},{"type":"text","text":":僅提供少數幾個規格備選,粒度粗,存在浪費(服務通常會偏大選擇,主機利用率低),支持最簡單的調度算法。主機利用率抓得不嚴,容量趨勢預估多爲人工,規格選擇也是依靠申請人經驗。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"現狀&規劃"},{"type":"text","text":":SNest提供多種豐富的細粒度規格,以及規格智能推薦、規格\/副本數環境限制等策略,並且支持用戶表達資源調度傾向性:雲外使用WebKvm新算法和新表達式,雲內則藉助K8s Lable\/NodeSelector\/Toleration等對象來組合親和性表達式。藉助主機利用率統計和資源密集型定性,可以支持錯峯調度,錯開資源密集型調度,進一步提高整體利用率和降本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/e5\/a1\/e53fa2byy8f0249516584679ecdefda1.png","alt":null,"title":"","style":[{"key":"width","value":"100%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務註冊發現與流量調配"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務註冊發現與流量調配,這是ServiceMesh關鍵落腳點,包括一個服務在各個環境有哪些實例,運行在何處(IP:Port),處於什麼狀態(健康檢測),希望受理多少流量(流控頻控),是否需要劫持流量做一些校驗甚至篡改等等。嚴選的ServiceMesh架構一直在演進,雲外機房使用的解決方案是Consul+Consul-Nginx,而云內機房則使用K8S+Istio雲原生定製增強方案。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"以前"},{"type":"text","text":":服務註冊走工單人工執行,日常可使用一個老舊平臺去維護實例狀態,用戶直接打Consul weight標籤來控制每個實例的流量(此時需人工覈算每個實例的weight值,容易算錯),嚴選上雲初期服務要切一部分流量進去雲內很麻煩,必須找運維人工修改Consul配置和網關配置。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"現狀&規劃"},{"type":"text","text":":SNest抽象掉兩地機房底層不同的ServiceMesh解決方案並統一封裝成接口,再以一個的簡單易用的交互界面暴露出來,開發\/測試\/運維可以無需關心Consul\/Consul-Nginx\/k8s svc\/ingress\/egress\/Istio RR,DR等專業術語有什麼特性、什麼時候用、什麼時候不要用、有什麼易踩的坑。用戶在申請資源時SNest會自動完成服務註冊(無論雲內雲外),日常管控時可以傻瓜式一鍵調配流量(控制各個機房分別受理多少比例的流量,或者每個實例受理多少)。由於Istio能力很強大(它劫持了全部進&出調用),那麼實現限流熔斷、黑白名單、故障注入等也都是輕而易舉,對應用無侵入。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/45\/b5\/4585yy2e40d5540871e75f5eaa39f5b5.png","alt":null,"title":"","style":[{"key":"width","value":"100%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"嚴選的治理心得"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"嚴選的服務治理方興未艾,諸多規劃點都處於持續建設的狀態,儘管距離終點還有很長一段路,但多年的實踐經驗還是給了我們一些思考、一些心得。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"能力層要夯實"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"萬丈高樓起於壘土,積基樹本;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"無論是CMDB層、MetaData層、IaaS層、ServiceMesh層、Monitor層等,它們都是服務治理必須依賴的基礎能力,務必規劃先行,規範先行,能力先行。這些能力層缺一不可,而且無一不重要,怎麼樣做好都不過分。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"平臺層要統一"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"能力層位於底層,而且可能是異構的(不同數據中心有不同的實現方案),服務治理必須封裝一個平臺層:把底層抽象掉,爲上層管控提供接口;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"平臺層可以實現收口,同時落地規範。今後能力層有進化,規範有調整,只需要迭代平臺層即可;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"也可以讓能力和規範都聚集起來,不再散落,不再失控。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"交互層要友好"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"關鍵詞是“友好”二字;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務治理解決方案在面向用戶(研發\/測試\/運維等技術人員)時一定要提供足夠友好的交互門戶,包括但不限於頁面UI、工單流、消息通知機制等等;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"越友好,越全面,越直觀,越精細,越智能,這樣的門戶不僅可以提高生產效率,還能降低上手門檻和出錯概率。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"演進要果敢"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"業務在發展,會提出更多新需求和新問題;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"社區在演進,會提供更多新工具和新創意;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"銀彈是不存在的,當你察覺到治理現狀對新需求和新問題已經顯得捉襟見肘、無能爲力時,你就應該果斷啓動新方案的研發和試點。業務那邊不用太擔心,當前版本還在繼續跑着,只需無感式地迭代你的“能力層\/平臺層\/交互層”並適時推出新版本即可。至於老系統和老版本,該退役的就勿過於留念。從1到1.1也是創新。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"小結"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務治理要解決十大類問題,還是那句話,每一類問題單拎出來都是一個大型課題,都需要充分實踐,而且沒有一成不變的最佳實踐。本文是嚴選在服務治理歷程上的一些心得總結,權當拋磚引玉,望大家不吝勘正,發表評論和文章分享自己的經驗。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"路漫漫其修遠兮,吾將上下而求索。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"作者簡介"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"書技, 網易嚴選運維SRE負責人,專注系統容量與穩定、DevOps效能、服務治理、線上質量等體系的搭建和發展。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"horizontalrule"},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"頭圖"},{"type":"text","text":":Unsplash"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"原文"},{"type":"text","text":":"},{"type":"link","attrs":{"href":"https:\/\/mp.weixin.qq.com\/s\/WyVjo8OJFOZuFSdUH58D1A","title":"","type":null},"content":[{"type":"text","text":"在路上:嚴選服務治理實踐"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"來源"},{"type":"text","text":":嚴選技術產品團隊 - 微信公衆號 [ID:YanxuanTechProd]"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"轉載:著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章