如何做好微服務?
譯文【51CTO.com快譯】
隨著全世界穩步邁向云計算,微服務意義重大。不像整體式應用程序,您可以將應用程序分解為可獨立部署的不同服務,使不同的團隊可以使用青睞的編程語言、工具和數據庫等。因此,難怪一些調查發現多達84%的企業在擁抱微服務。
但是這沒有告訴我們企業是否在微服務方面取得成功或如何取得成功。
為此,有必要探究一下O'Reilly新的微服務調查結果,它調查了其郵件列表上的1502多人。鑒于O'Reilly的群體往往比大多數人更精通技術(超過四分之一的受訪者從事軟件行業),這些結果很可能是表明微服務成功的主要指標,而不是表明當今市場所處的行情。即便如此,92%的受訪者聲稱微服務方面至少“取得了一定的成功”,因此前景一片光明。
但是如何使前景更光明呢?這個問題涉及組織和容器。
豪賭微服務,取得成效
雖然僅10%的受訪者表示微服務投入獲得了“全面成功”,但約55%的受訪者至少“大體上成功”。考慮到受訪者供職于微服務有點成熟的公司,這也許不足為奇。約三分之一(28%)的受訪者在其企業內使用微服務至少有三年,而超過五分之三(61%)的受訪者使用微服務不少于一年。
因此,總的來說,受訪者不是微服務新手。他們也沒有退縮。報告聲稱,29%的受訪者表示雇主在使用微服務遷移或實施大部分系統(超過50%)。考慮到將整體式應用程序分解成微服務所需的工作量,這表明成效很大。
對于微服務方面最成功的那些人來說,O'Reilly的數據揭示了什么?據撰寫報告的Mike Loukides和Steve Swoyer聲稱,成功的關鍵歸結為讓開發團隊掌控整個開發周期(即構建、測試、部署和維護)。在這個群體中,約49%的人在微服務方面“大體上成功”,另外的10%認為聲稱“全面成功”。
換句話說,掌控整個開發周期在微服務方面帶來了回報。
但這不是全部真相,因為受訪者中近75%的人供職于開發團隊全面掌控開發周期的公司。同樣鑒于O'Reilly郵件列表上的人普遍精通技術,應把這看成是行業的理想狀態:更多的團隊掌控整個開發周期,帶來了更多的微服務成功案例。
容器方面的成功
容器是促使微服務成功的另一個重要因素。有趣的是,大多數受訪者(58%)使用容器之外的方法為微服務創建實例。這么做有充分的理由(報告作者特別指出,有時,由于技術負擔或其他因素,在虛擬機層面為微服務創建實例完全更容易/更快捷)。
但是對于那些確實走容器這條路的人來說,成功的可能性大得多。報告聲稱:“聲稱微服務方面成功的受訪者中一半以上的人選擇使用容器為微服務創建實例;反過來,稱微服務項目“一點也不成功”的受訪者中比例高得多的人并不使用容器為微服務創建實例。”舉例說,聲稱微服務方面“全面成功”的人49%還使用容器為大多數微服務創建實例(75%-100%),這是基準的5倍。對于聲稱微服務項目“一點也不成功”的那些人而言,他們絕大多數聲稱幾乎不將容器用于微服務,這是基準的11倍。
這個數字應該會減小,速度可能比我們預期的快得多。Diamanti首席執行官Tom Barton接受采訪時估計,雖然目前容器的采用率為5%,但我們可能會在六年內接近100%的采用率,所用時間是虛擬機達到同樣采用率的一半。原因何在?因為行業在Kubernetes等通用工具方面實現了準化。
如果您希望提高微服務方面的成功率,有必要讓開發團隊全面掌控開發流程,并使用容器。容器越來越像是穩妥的舉措,但確保貴組織可充分利用容器。這是公司現在應做出的決策。
原文標題:How to get microservices right,作者:Matt Asay
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】