1. 程式人生 > >【演講實錄】下一代企業級應用架構管理體系

【演講實錄】下一代企業級應用架構管理體系

0?wx_fmt=gif&wxfrom=5&wx_lazy=1

在IT系統的建設和管理中,敏態和穩態似乎不可協調的兩個問題,那麼在企業IT系統的管理中,如何根據需求去合理管控,今天將通過王璞老師在第七屆資料技術嘉年華上的分享進行詳細解讀。

本次分享重在講解企業系統上雲後,針對應用級的管控。

作者簡介

王璞,數人云CEO,為美國George Mason大學計算機博士,擅長分散式計算、大規模機器學習、海量資料處理。曾擔任 Google 廣告部門資料平臺構架師,負責管理每秒訪問量全球最高的架構平臺,2014年9月創立數人云。

0?wx_fmt=gif&wxfrom=5&wx_lazy=1

在我們的工作中,接觸到很多的傳統行業的客戶,比如金融、零售和製造業等等,傳統行業由於受到網際網路環境的衝擊,很多企業都開始做數字化轉型,因此逐漸走向我們今天經常聽到的新金融、新零售、新制造,主要是通過大資料雲端計算等新技術的應用,提升業務能力,改變服務模式,從以產品為中心而逐漸轉向以消費者需求為中心轉變。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

企業級客戶的IT狀況是什麼樣的呢?

簡單來講,可以概括為:雙態並存

0?wx_fmt=png

在業務層面,目前企業中既有傳統業務,也有網際網路的新型業務。拿金融行業來說,目前做很多的新業務創新,包括線上的理財貸款等業務,同時加上傳統的存款匯款的老業務仍然大量存在,也就是說在業務層面,是老業務和新業務並存

IT主要作用就是對業務進行支撐。因此支撐老業務的IT架構和支援新業務的架構也都有。傳統的架構對於老業務的支撐是很穩定的,比如銀行的核心繫統仍然跑在大型機上,尤其是大型的銀行。而新的IT架構,雲化的網際網路化的架構,則用於支撐網際網路的新業務。

傳統的業務和架構需要穩定,而新的業務和架構要求敏捷,因此出現穩態和敏態並存的現狀

0?wx_fmt=png

上圖表示了金融行業的客戶現在在業務層面和IT層面所面臨的挑戰。某金融企業現在面向網際網路場景的2C的零售業務的增速,年複合增長率超過百分之百;某銀行企業的信用卡中心,每個月應用的迭代更新超過100次(主要是為了支援大量的線上營銷活動,比如節假日),因此IT系統大大小小的迭代也達到100多次;還有來自證券企業的壓力,銀行網路支付業務在雙11的時候,其IT系統面臨發壓力都是非常大的,甚至達到指數倍。

我們看到這些傳統行業在網際網路的衝擊下,業務面臨的壓力是非常大的,這在以前的環境下是不敢想象的。

0?wx_fmt=png

業務的轉型不可避免地推動IT的轉型,那麼IT 究竟發生了哪些變化呢?我們根據經驗總結了一些場景。主要變化發生在以下五個維度。

1、計算資源

在傳統的業務需求下,銀行等大型企業都是買大型機小型機等高階的儲存和伺服器,而現在面臨網際網路化的需求,都逐漸走向x86,並構建虛擬化環境,還有一些客戶,使用公有云。那麼我們看到,硬體鎖提供的計算資源逐漸向廉價的方向發展,計算資源也都在做IaaS雲化。

2、應用的封裝和交付

在應用的封裝上,之前JAVA都是用JVM做封裝,基本上都是採用java程式然後拋在java虛擬機器上。而現在更多的是採用容器的交付方式。容器在很大程度上解決了程式異構所帶來的問題。

3、應用管理的問題

傳統模式下對應用做管理,尤其是java的應用,大多數是通過java中介軟體,比如weblogic等,管理的內容包括應用的許可權,應用端的訪問,資料庫訪問的金鑰,應用的session共享等。在新的架構上,都是基於容器的PaaS平臺,應用上雲之後,都是容器化交付的,通過PaaS平臺管理容器化的應用。

4、應用架構

這個主要是指應用怎麼做開發,怎麼做架構設計,怎麼寫程式,傳統的架構是採用SOA的架構,或者說單體架構,而在新的環境下,SOA的維護成本和迭代成本都很高,因此在雲端計算IT架構裡面,普遍採用的是微服務架構。微服務架構是一種分散式的架構,每個應用程式相對輕量,每個程序封裝在單獨的容器裡,實現獨立的功能等。

5、開發運維

這裡會涉及到企業的組織部門的架構,在傳統的IT企業中,開發部門,運維部門是兩個並列的部門,在開發部門中比如採用傳統的瀑布式開發,運維則是傳統的面向資源為中心的運維,到了雲端計算的時代,由於業務壓力很大,上雲在很大程度上是為了解決效率的問題,提升敏捷能力,因此開發部落地敏捷開發,而在運維部門,逐漸落地DevOps的模式,也通過這種方式,促進開發和運維部門的融合和一體化。

在上述的五個層面,應用架構和應用管理則是我今天重點要關注和分享的。

什麼是企業級應用架構管理?

0?wx_fmt=png

企業級應用架構管理主要解決應用的開發架構和應用的執行時管理問題。

主要的價值是

1、實現應用執行環境的標準化,提升交付速度

2、達到運維過程的高度自動化,降低運維成本

3、形成軟體研發的技術路徑統一和把控研發質量

4、優化企業 IT 架構治理

未來企業級應用的發展方向是什麼?

在我今天的演講題目中,增加了‘下一代’,那麼我們來看一下在上雲之後的下一代的企業級應用會向哪個方向發展?

0?wx_fmt=png

我們認為未來企業上雲後,應用主要會朝著輕量化、敏捷化和開源化的方向發展。

1、輕量化

這裡主要是針對傳統的JAVA 中介軟體應用。應用容器化、架構微服務化,使得企業級應用變得輕量化。

2、敏捷化

包含以下幾個理念:

  • DevOps 理念逐步推廣

  • 研發人員更多關注業務開發本身而無需關注太多底層技術細節,落地敏捷開發

  • 運維人員大量採用自動化運維平臺和工具,運維效率極大提升

3、開源化

  • 企業級 IT 全面擁抱開源軟體

  • 開源技術選型上面臨挑戰,開源技術頻繁更新迭代,企業需要量體裁衣,取長補短(目前很多的開源技術都處於半成熟的狀態,在開源技術選型上的困難是很大的)

我根據自己在Google的經驗,接下來跟大家分享一下Google在企業級應用架構方面的管理。

0?wx_fmt=png

Google作為 IT 行業的標杆,是雲端計算領域公認的領頭羊之一。我在Google工作的時候,很深刻地感受到Google在應用架構的管理方面是非常強大的,所有的業務都能實現統一管理。

在Google 內部的 EAMS 最為強大,主要體現在以下幾個方面:

1、管理內部上億應用程式,並執行在數百萬臺伺服器上,極大地提升了資源利用率。

2、使得研發人員專注業務開發,提升了開發效率,而無需關注分散式系統的底層架構,諸如計算、網路、儲存等細節。

3、落地了SRE,Google 的 DevOps 實踐,極大地提升了運維的效率

而事實上,Google的應用管理代表了網際網路公司對應用管理的正規化。

0?wx_fmt=png

那麼,當企業應用上雲之後,其應用架構管理要關注哪些要素?

1、容器

容器正在成為雲端計算原生應用的標準交付方式

2、微服務

微服務將成為雲端計算原生應用的標準開發架構

3、服務治理

  • 微服務治理成為下一階段應用管理的核心

  • 服務網格是微服務領域最新的服務治理技術

  • 資料網格是服務網格的特例,是微服務應用資料治理方面最新的技術

接下來我重點講一下服務網格技術。

0?wx_fmt=png

服務網格如何對微服務做服務的管理呢?

服務網格很像一個輕量的網路代理,當客戶端的程式需要訪問服務端的時候,客戶端 程式首先要知道服務端在哪,一般靜態的方式是通過IP地址埠或者域名埠來訪問。

在服務網格下的處理方式是這樣的:

1、由於客戶端不知道服務端在哪裡,因此用簡單的方式將請求傳送給本地的服務網格例項(的代理)。

2、服務網格進行服務發現

3、服務網格找到請求之後,將其轉發給目標的服務端。

當服務端響應之後,也是將結果返回給服務網格,然後由服務網格轉發給客戶端。

通過這種方式,客戶端不需要查詢服務端地址,服務端也不需要對客戶端進行註冊。極大地簡化了服務流程。

那麼為什麼叫服務網格?加入以下是一個企業內部的伺服器,一個格子代表一個伺服器,綠色的是應用程式,藍色的是輕量級的網路服務代理,所有的微服務程式互相通訊都是通過網格來實現。

所有藍色的網格的代理會裝在每一臺伺服器上,最終的通訊是網格來完成的。這樣網路就形成了格子狀。

0?wx_fmt=png

服務網格有哪些關鍵點

0?wx_fmt=png

  1. 抽象:基礎設施層

  2. 功能:實現請求的可靠傳遞

  3. 部署:輕量級網路代理

  4. 關鍵:對應用程式透明

網格是如何演進過來的?

0?wx_fmt=png

如何理解網格對於應用程式的透明無侵入,我們先來看一下tcp/ip的例子,在這個協議之前,需要有大量的邏輯處理網路上的問題,比如網路連線失敗,網路重傳,網路丟包和資料錯誤和流量控制等問題,因此在tcp/ip之前,寫網路應用程式是非常痛苦的一件事情。所有網路的處理和程式的邏輯混合在一起。

後來隨著tcp/ip的出現,網路的處理直接寫入到作業系統的核心裡面,在程式的設計中再也不需要關注。

同樣的道理,網格也是起到這樣的作用。就是將通訊的細節問題抽象到核心裡面,應用程式設計的時候不需要再去處理和關注。

在實現上,我們可以參考最近新推出的Istio,是服務網格的王者。

0?wx_fmt=png

Istio主要做的就是,當我們將網路的管理部分與應用程式進行剝離開來之後,它能夠進一步將這些服務進行抽象化並做統一的管理和控制。其作用和好處也是非常多的。

企業級應用架構管理會朝著什麼樣的方向發展?

0?wx_fmt=png

主要會朝著標準化、統一化和模組化的方向發展。

1、標準化

  • 容器對應用標準化封裝

  • 微服務成為雲端計算原生應用標準化架構

2、統一化

基於容器和微服務打造的標準化應用,可以實現應用統一化管理

3、模組化

  • 容器化應用的每個例項是可獨立部署的最小模組

  • 微服務架構非常強調應用的模組化

  • 模組化降低系統耦合度,降低系統維護成本

數人云在這方面也一直在不斷地努力。

0?wx_fmt=png

主要致力於兩個方面,一個是微服務的開發和管理,另一個就是容器的層面。從目前來看,微服務的選擇以後也會大部分落在對容器的選擇上。而微服務的開發測試,要走的路還很長,尤其是開發測試,需要大量的工作。

隨著技術的發展,資料在企業中的價值日益凸顯,由ACOUG和雲和恩墨主辦的資料技術嘉年華,圍繞資料及資料庫領域的核心技術,分享前沿資訊、乾貨技術,企業變革之路與戰略方向,邀你一起探索資料價值,共創未來! 第八屆資料技術嘉年華將於2018年11月16日盛大開幕,精彩等你來!

0?wx_fmt=jpeg

0?wx_fmt=jpeg

相關閱讀:

資源下載

關注公眾號:資料和雲(OraNews)回覆關鍵字獲取

‘2017DTC’,2017DTC大會PPT

‘DBALIFE’,“DBA的一天”海報

‘DBA04’,DBA手記4經典篇章電子書

‘INTERNALS’,Oracle RAC PPT

‘122ARCH’,Oracle 12.2體系結構圖

‘2017OOW’,Oracle OpenWorld資料

‘PRELECTION’,大講堂講師課程資料

0?wx_fmt=png