《成功備戰微服務的5個準備步驟》要點:
本文介紹了成功備戰微服務的5個準備步驟,希望對您有用。如果有疑問,可以聯系我們。

時至今日,微服務相關的話題不勝枚舉,上百次的會議,在線討論以及相關文章.你可以假設大家已經認識到其優點以及與之俱來的風險.然而,有很多組織沒有事先準備就邁入這個潮流了.自然,這也就導致了在架構實現過程中的失敗.
有一位智者曾經說過,“對于商業中所應用的任何技術而言,有2條規則,其一,將自動化應用于高效的運維上才能增加效率;其二,將自動化應用于低效的運維反而會降低效率.”我認為這種哲學對微服務而言亦行之有效.如果你的組織沒有為此準備就貿然遷移,很可能會招致失敗.以上就是本文的出發點,我將為大家帶來在實現微服務架構前需要準備的5個關鍵步驟.
1. 從繪圖入手
在開發特定的微服務時,許多開發者都會犯同一個錯誤:直接寫代碼.或許,這可能就是你能夠犯的最嚴重的錯誤了.誠然,對于一個服務而言,你可能會獲得成功,但是隨著服務數量的上升,所有事情都會變得一團亂.和其它產品一樣,它也需要被創造,需要以設計作為初始步驟.將團隊匯聚到桌子周圍,自由地在紙上(或者白板)繪制服務.首先,找出你所構建的應用的main函數.然后,自頂向下地將它分解成最小單元.最后,找出不同單元的互聯通性.這些功能將會成為你的微服務.

比如,在一款圖書預覽應用中,其主要的功能就是比較不同的圖書.然而,也有許多其他功能需要開發,例如創建用戶履歷,評分,評論,圖書數據庫等.識別每個功能,是將它們轉為微服務的關鍵.
整個過程將會持續超過一天時間,并且需要多次迭代直至完美.當然,你將需要從許多不同部門的人員手中獲得輸入,以確保能夠知曉其視角和觀點,并確保你不會遺漏任何系統功能.
2. 微服務并不是組織結構
根據你所在公司的組織結構定義微服務,這似乎是很自然的.如果你正在構建單體(monolithic)應用,這或許真是一個恰當的解決方案.但是,在實現微服務架構時,它可能就是一個錯誤的決定了.
也許,這對于銷售部門或客戶服務是可行的,但是許多組織只有一個部門處理所有的數據庫.因此,為所有數據庫創建一個微服務將會導致單點故障.而沒有單點故障,則是微服務的關鍵特性之一.
你希望通過服務實現的一些功能可能會涉及幾個組織部門,或者,你可能將會需要為一個部門構建許多微服務.總結一下,你需要將架構聚焦于你想要提供的服務,而非你們公司的組織結構.
3. 創建合適的組織結構
轉變到一個全然不同的組織架構,能夠滿足公司在管控活動上變化的需要.之前2個步驟關注于應用的設計,以便能夠為最終用戶提供正確的功能.現在,是時候確保對于新的架構而言,你擁有恰當的運維支持了.
你將不得不放棄原有的部門結構,并使團隊關注于某個微服務.這意味著這些團隊將由擁有不同技能的成員組成,如系統分析師、UX/UI設計師、后端工程師、前端工程師等.如此一來,團隊就能夠徹底負責它們的項目(微服務)——從開發部署到運維、監控和管理.反過來,由于團隊覺得自己擁有這個產品,因此將提升其創建產品的積極性.

團隊的規模視公司/項目的總體人數而定;當然,根據專家的建議,比較理想的規模是每個團隊8-10人.和單體架構不同,微服務架構使得你能夠根據業務的增長來擴展團隊規模.
當然,所有團隊將會(需要)積極配合,以最終促成整個項目.這便是這種結構的主要好處,使我們能夠盡可能快地向市場交付產品.
4. 性能和可靠性同樣重要
切換到微服務架構的整體想法,便是使得創建的最終產品相比于單體應用而言擁有更好的性能,更佳的穩定性(例如,更低的下線風險),同時可以更快地交付市場.將改進性能作為設計的一部分是很重要的,這將確保潛在問題能夠盡早被考慮.通常,(性能)問題都源自微服務設計主要考慮功能.然而,如果在更大的服務下,服務崩潰或者變得很慢,那么它就沒什么用了.每個服務應該擁有2-3個替代機制,當下層資源失敗時,它便可以繼續運作.當其中一個機制無法在可接受時間窗口內響應時,服務也需要做到快速切換.
在前期考慮讓服務支持更大的負載變動,你的應用將能夠應對實際挑戰,你將領先市場,當然這也是你在第一時間考慮切換到微服務的主要原因!
5. 變更先行
忽略應用的變化是不切實際的.開發者一直在增加和移除功能,變更代碼,替換應用的核心元素等,這在微服務應用中更甚.更確切地說,微服務就是持續演進的.當你每天需要處理多次代碼升級時,最好接受一個觀點:變更是持續的,而非對于穩定狀態的一次偶然性中斷.一旦你認知到這一點,你將意識到一開始便整合變更的靈活性需求的重要性.確保應用一直正常工作的一種方式便是準備服務API,這樣微服務間便可繼續通信,即使它們已被改變.另外,你還需要引入版本控制,以允許服務同時開放新舊接口.另一方面,數據存儲的演進是一個更大的挑戰.改進數據庫模式(schema),使其支持新的功能,傳統觀點中,這是應用升級時最難處理的部分,微服務并不會使其變得更加簡單.然而,單就增加新的域且不破壞現有結構這一點而言,NoSQL數據庫會更加靈活.如果你希望你的數據存儲需求持續演進(誰不希望呢?),那么你應該將可演化的數據存儲作為微服務設計的努力方向之一.
在遷移到微服務架構時,做適當的準備是整個項目成功的關鍵因素,這一點我們可以認同.只有經過仔細的準備,創新設計思維,并且具備合適的運維和管理結構,你才能收獲微服務帶來的所有好處!
原文鏈接:https://dzone.com/articles/5-steps-to-successfully-prepare-for-microservices
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/2212.html