微服務與單體架構:IT變革中企業及個體如何自處?

當下,企業愈來愈多地受到競爭對手和他們本身的客戶的壓力,既須要讓應用程序更快地在線運行,同時又要最大限度地下降開發成本。這些不一樣的目標,迫使企業IT組織必須一刻不停地迅速發展。自20世紀60年代以來經歷了一次又一次的強制演變以後,大量的企業IT已經準備從單體應用架構中走出一步,走上微服務之路。python

圖1:傳統單體應用程序和微服務之間的架構差別安全

更高的指望和更有能力的客戶服務器

那些可以接觸到全球產品及服務的客戶,如今愈發強勢地但願他們的供應商企業可以快速響應其餘供應商正在作的事情。網絡

CIO雜誌在報道Ovum的研究時曾指出:架構

在「客戶之旅」中,是「客戶」自己佔據着上風。擁有更多的購物方式,以及開始花費更少的時間在購物上,客戶們須要的不只是快速地收集信息和完成交易。他們常常但願能無需進行冗長的對話、甚至在去往某地的途中、在移動設備上就能快速完成這項工做。框架

處於壓力之下的ITless

這場激烈的全球競爭,也迫使企業尋找新的方法來削減成本或找到更有效的新方法。開發人員在過去其實已經看到了這一切。這只是企業IT十多年來所面臨的「少花錢多辦事」這一永恆號召的當代新版本罷了。他們已經瞭解到,儘管IT總預算增加了,但在新IT服務以及通訊服務這一塊須要的投資也增多了。運維

圖2:Gartner的2018年全球IT支出增加預測分佈式

企業IT組織須要對時代的發展和新的需求做出迴應,這一壓力也使得他們不得不從新審視他們的開發流程。傳統的長達兩年開發週期,或許在過去是能夠接受的,但在現階段早已再也不使人滿意。沒有人可以等待。微服務

趨勢的匯合

企業IT也被迫對各類趨勢做出迴應,這些趨勢是分歧和矛盾的。

  • 引入廉價但高性能的網絡鏈接,讓分佈式功能彼此之間經過網絡進行通訊的速度,與以前可在單個系統內相互通訊的流程同樣快。

  • 推出功能強大的微處理器,可在廉價和小型封裝中提供大型機級性能。在標準化X86微處理器架構以後,企業如今不得不考慮其餘架構來知足他們對更高性能、更低成本、以及更低功耗和熱量的需求。

  • 內部系統內存容量不斷增長,所以能夠在小型系統中部署大型應用程序或應用程序組件。

  • 外部存儲的使用正逐漸從使用旋轉介質變爲固態設備,這樣能夠提升性能、減小延遲、下降整體成本並提供巨大的容量。

  • 開源軟件和分佈式計算功能的發展使企業可以在須要新功能時廉價地添加一系列系統,而不是面對昂貴且耗時的叉車升級來擴展中央主機系統。

  • 客戶要求即時、輕鬆地訪問應用程序和數據。

要應對這些趨勢,企業IT部門很快就會發現,他們一直依賴的方法——專一於充分利用昂貴的系統和網絡——必須改變了。現在最大的成本是人員、電力和冷卻。二十多年前,企業將重點從單體大型機計算轉移到基於X86的分佈式中端系統,誠然那是一次變革,但當下的變化趨勢及變革與那時不一樣了。

下一步發展在哪?

如下是企業IT爲響應全部這些趨勢所作的工做。

他們選擇從使用傳統的瀑布式開發方法轉向各類形式的快速應用程序開發。他們也正在從編譯語言轉向解釋或增量編譯的語言,如Java、Python或Ruby,以提升開發人員的工做效率。

例如,IDC預測:

到2021年,65%的CIO將把敏捷開發/DevOps實踐擴展到更普遍的業務中,以實現創新、執行和變革所需的速度。

複雜的應用程序愈來愈多地被設計爲獨立的功能或「服務」,能夠託管在網絡上的多個地方,以提升應用的性能和可靠性。這種方法意味着能夠解決不斷變化的業務需求,以及能夠在無需並行更改任何其餘功能的前提下,向一個功能中添加新功能。NetworkWorld的Andy Patrizio在對2019年的預測中指出,他預計「微服務和無服務器計算將起飛」。

另外一個重要變化是這些服務託管在地理位置分散的企業數據中心、雲端或二者兼有之中。此外,功能能夠駐留在客戶的口袋中,也能夠駐留在基於雲或公司系統的某種組合中。

這對你意味着什麼?

這些趨勢的到來,意味着企業開發人員和運維人員必須對其傳統方法進行一些重大變革,包括:

  • 開發人員必須願意學習更適合當今快速應用程序開發方法的技術。經驗豐富的「學生」能夠經過在線學校快速學習。例如,Learnpython.org提供Python免費課程,而codecademy提供Ruby、Java和其餘語言的免費課程。

  • 他們還必須願意學習如何將應用程序邏輯從單體靜態設計分解爲獨立但協做的微服務集合,各種在線學習網站依然是不錯的選擇,例如IBM的微服務課程(https://www.coursera.org/learn/intro-ibm-microservices)、Lynda.com等等。

  • 開發人員必須採用新工具來建立和維護微服務,以支持它們之間快速可靠的通訊。善於使用各類商業和開源的信息傳遞和管理工具,能夠大大簡化這一過程。例如Rancher Labs的全開源平臺Rancher爲用戶提供Kurbernetes-as-a-service。

  • 運維專家須要學習容器和Kubernetes的編排工具,以瞭解它們是如何讓團隊快速開發和改進應用程序和服務,而又不會失去對數據和安全性的控制。長期以來,運維一直是企業數據中心的守門人。畢竟,若是應用程序變慢或失敗,運維人員就要在此時負責解決這一局面。

  • 運維人員必須容許這些功能託管於他們直接控制的數據中心以外。爲了說明這一點,Market Research Future的分析師最近發表了一份報告稱,「2017年全球雲微服務市場價值爲5.844億美圓,預計到預測期結束時將達到21.467億美圓,複合年增加率爲25.0%」。

  • 應用程序管理和安全問題如今必須成爲開發人員思考的一部分。在線課程又一次地能夠幫助我的發展這方面的專業知識。不少網站包括LinkedIn提供瞭如何成爲IT安全專家的課程。

很是重要的一點是,IT和運維人員都必須理解IT的世界正在快速發展變革,每一個人都必須專一於提高自身的技能和專業知識。

微服務如何使企業受益?

微服務這種分佈式計算的最新發展,爲企業帶來了許多實際和可衡量的收益。在IT組織採用這種形式的分佈式計算後,開發時間和成本花費均可以大大下降。以後,能夠根據須要並行開發每一個服務並進行細化,而無需中止或從新設計整個應用程序。

開發團隊能夠專一於開發人員的工做效率,而且仍然能夠快速、在線地提供新的應用程序功能。運維團隊則能夠專一於爲應用程序執行定義可接受的規則,並經過編排和管理工具強制執行它們。

企業面臨哪些新挑戰?

與任何IT方法同樣,微服務架構的應用在帶來益處的同時也將帶來挑戰。

監控和管理大量「移動部件」,要比處理一些單體應用程序更具挑戰性。採用企業管理框架能有助於應對這些挑戰。除此以外,此類分佈式計算的安全性也須要首要考慮。隨着網絡上獨立功能的增長,每一個功能都必須進行分析和保護。

全部單體應用程序都應該遷移到微服務嗎?

一些單體應用程序很難改變。這多是因爲技術挑戰或多是因爲監管限制。今天使用的一些組件可能來自於已經倒閉的供應商,使得遷移或重構變得極其困難甚至不可能。

對於企業來講,完成整個審計過程既費時又費錢。一般狀況下,企業繼續投資舊應用程序的時間,比他們相信本身在節省資金的時間長得多。

企業應該先評估清楚某個單體應用是具體作什麼的,再考慮是否是要分離某些單獨的功能並做爲較小的獨立服務運行。這些能夠實現爲基於雲的服務或基於容器的微服務。

最明智的方法,不是等待並試圖解決整個舊技術,而是進行一系列漸進式的更改,使得加強或替換舊系統的計劃更容易被接受。這與那句古老的諺語很是類似,「植樹的最佳時機,是20年前,其次是如今。」

這些變化值得嗎?

大量已經採用基於微服務的應用程序架構的企業已經證實了,他們的IT成本一般會下降。他們還常常表示,一旦他們的團隊掌握了這種方法,當市場需求發生變化時,添加新功能和特性會更容易、更快捷。

若是您的企業還徹底沒有踏上微服務之路,從如今開始瞭解更多信息也是好的。此外也應該多關注業界的一些新近流行的技術與解決方案,如Kubernetes、Rancher、Serverless等等。

相關文章
相關標籤/搜索