【摘要】 微服務是近期非常熱門的話題,蕓蕓眾生言必談微服務。但是,在實踐程序中,我們發現一些專案,貌似用著微服務的技術,但做出了非服務化的應用,非但沒有達到目的,反而徒增了架構的復雜性,讓人汗顏。因此,在微服務之前,有必要搞清楚什么是服務化。
微服務是近期非常熱門的話題,蕓蕓眾生言必談微服務。但是,在實踐程序中,我們發現一些專案,貌似用著微服務的技術,但做出了非服務化的應用,非但沒有達到目的,反而徒增了架構的復雜性,讓人汗顏。因此,在微服務之前,有必要搞清楚什么是服務化。
1. 官僚不是服務化
河北省武邑縣需要往返6次才能辦一個護照,深圳小孩出生要跑社保局、街道辦、派出所,這些都是服務化程度低的標志。官僚化的程度越高,服務化的程度就越低。買房子相對好些,在入伙的時候,水、電、煤氣一站式搞定。

2. 煙囪不是服務化
最近一次出差,使用了 e系統、i系統、s系統 等好幾個應用,經過長期的優化,這幾個系統的體驗都還算不錯。但用起來總感覺怪怪的,問題在什么地方呢?很多時候,當你需要找一個想要的資訊,比如航班資訊時,你往往不知道要到那個系統去查。 e系統、i系統、s系統都是品牌和口碑很好的應用,但放在服務化場景下重新思考,我們很容易的發現:煙囪化的應用不是服務化。

3. 超鏈接不是服務化
既然煙囪不是服務化,那我用超鏈接把各個煙囪串聯起來,是不是就是服務化了呢?顯然不是,簡單的超鏈接讓事情變得更加糟糕,而不是更好了。超鏈接就如同單向的門,為了打通兩個房間,我們需要安裝兩個單向的門,房間數更多的時候,門的數量也更多,最后組成了一個什么呢?對,一個迷宮。
服務化的系統,不是僅僅將相關功能連接在一起,而是有機的整合、簡化成 One System,讓基于當前場景的用戶感覺可以流暢的處理端到端的業務,而不必到處在風格迥異的系統間跳轉以致摸不著頭腦。

4. REST 不一定是服務化
我做了一個應用,有前臺,有后臺,前臺通過REST(或者SOAP、RPC等)呼叫后臺,是不是就服務化了呢?其實不然,這個還可能是一個煙囪,一個偽裝了的煙囪。
5. 單體應用不一定不是服務化
服務化(SOA)是一種構建分布式應用的方法,本質上是實作能力在分布式環境中的重用。單體應用通常跟微服務應用對立起來,單體應用并沒有跟SOA對立起來,單體應用也一樣可以暴露足夠的服務供其他的分布式應用來使用(與煙囪的區別),從而實作服務化的重用。
另外,單體架構并不一定不是好的架構,這取決于應用的復雜度。一個初創的公司,要在互聯網-上開展業務,由于業務規模不大,業務復雜性有限,碼農數量也不多,這個時候,單體架構就是最合適的。即使對于華為這樣的大型公司,在某些獨立的領域,如果一個單體應用能很好的覆寫完整業務場景,單體架構仍然是合適的。
6. 組織結構服務化才能實作服務化。
俗話說,組織架構決定技術架構。有煙囪式的組織架構,很容易導致煙囪式的系統。要實作服務化,必須打破原先一個團隊搞定一個煙囪的組織架構,變為一種服務化的組織架構。應用的前端和后臺應該采用完全不同的設計方法,前臺UI的設計是完全以用戶為中心的,而后臺的服務設計則是以業務為中心的。前臺和后臺最好歸屬到不同的團隊,以避免他們造煙囪的強烈生理沖動。

7. 針對完整場景的才是好的服務化。
割裂的場景導致割裂的體驗,好的服務化設計都是針對完整的場景的。讓用戶在端到端的場景中擁有完整的、一致的、簡單的、明確的體驗。什么是端到端完整的場景呢?
o 差旅就是一個完整的端到端場景,從出差申請,到機票預定、酒店預定、簽證申請,再到出差報告、報銷整個一條*LONG*服務。
o HIC也是一個完整的端到端場景,從應用注冊,到應用開發、測驗、資源申請、配置管理、持續集成、持續交付、運維自動化,整個鏈路覆寫。
如果割裂開來,針對部分場景設計一個應用,另外的場景設計另外一個應用,則很容易形成煙囪。即使只是針對完整場景中的任何一個遺漏,都會導致服務化體驗的劣化。
8. 大型系統服務化的必然結果,是業務中臺化。
前面提到過,前臺UI的設計是完全以用戶為中心的(我的任務、我的訂單、我的合同),而后臺的服務設計則是以業務為中心的(比如訂單處理、合同處理、財務處理等)。用戶通常希望一站式的體驗,那如何將一站式的以用戶為中心的前臺和分散的以業務為中心的后臺結合起來?答案是業務中臺。業務中臺承接前臺的請求,并整合后端的服務,在這個程序中,可以進行特定的映射、整合、規則化處理、自動化處理、智能化處理,這里側面印證了IT中臺化戰略,即前輕、中強、后穩的戰略。

總體來說,服務化的目標,是通過更加服務化的組織和完整的服務化的實踐,構建針對完整業務場景的一站式的ROADS用戶體驗(套用一句流行的話)、更加解耦的架構,從而實作全流程的在線處理、更高的業務作業效率,提升業務數字化轉型效果。我們不能過度強調技術,而忽略體驗,因此,理解什么是服務化比理解什么是微服務更加重要。
下篇,再講講我對微服務的理解,敬請關注。
點擊鏈接加入交流分享群:http://a.sccs56.cn/c/6613cd987dc465413b71f38f4ef4fc7d
文章來源華為云社區:http://bbs.huaweicloud.com/blogs/2be9c4a9456d11e9bd5a7ca23e93a891
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41089.html
標籤:華為云計算
