在AWS上的架構部署與設計

danny_2018發表於2020-09-21

ABC是企業資訊化發展的三駕馬車。AB很容易理解:A是人工智慧;B就是大資料;C就是Cloud雲。CIO經常會問三個雲端計算問題,比如:雲是什麼?雲能解決什麼問題?為什麼要使用雲?雲端計算是大資料和人工智慧的基礎,它是統一、整體的一個技術平臺。雲有一個非常重要的特性,它更具彈性,能按需分配。也就是說,如果你用了雲之後,就能杜絕重複投資、獨立建設,能最大化節省成本。

業務需求驅動下的IT架構發展趨勢

首先,我們來看一下業務需求驅動下的IT架構發展趨勢。如果你現有的技術架構已經無法滿足業務快速的增長,無法快速響應新增業務系統和現有一系統平滑過度,基礎設施無法順利擴容,我們就要考慮基礎架構的完善。最早,傳統架構是以伺服器為中心,比如業務系統要上線,我可能就要買一套伺服器來部署,滿足業務需求。

▲IT架構發展趨勢

在2000年左右的時候,基本上用傳統架構。但是,有個很大的問題,當我的業務量大了之後,要擴容的話,只能透過增加機器來實現水平、垂直擴容,比如說要加CPU、加記憶體。如果再大的話,我機器水平垂直擴充套件的話,可能就會有問題,擴不上去了。如果應用量比較小,我上線一個系統,就買一臺伺服器,價格比較昂貴,造成了資源浪費。

在雲的1.0版本里,主要用虛擬化,這種服務模式是在2005年、2006年左右興起的,比較有代表的廠商當屬VMware。虛擬化的服務形式是,資源可以複用,什麼意思呢?就是我買一臺伺服器,如果業務量不大,可以同時部署兩個、三個業務,讓資源實現複用,這樣能降低成本,同時也能提升運維能力,因為使用者可以統一在VMware上面去操作。

再往後,大概是2012、2013年的時候,興起了OpenStack這種私有云以及公有云。Cloud2.0的時候,是以管理為中心,基於IaaS雲平臺,好處是多租戶、自服務、審批工單、統一管理、自動化等等,大大提高了我們的管理和運維效率。

現在,已經發展到Cloud3.0時代,這個時代主要以業務為中心,在雲的IaaS層要發展Pass。所以,現在雲做得比較好的平臺,他的Pass平臺能力也比較好,能夠融合Pass層。Pass又分iPaaS和APaaS,和大資料平臺、資料庫平臺、DevOps比較靠近的就是iPaaS;和業務中臺、資料中臺比較靠近的叫做ApaaS。創新業務、快速開發、全自動化,這是大家為什麼都在做Pass的根本原因。從實際業務場景來看,比如製造業,對於雲平臺的能力有很多特定要求。

▲製造業對於雲的能力要求

製造業分三個階段,研發、製造、營銷。我們以使用者為中心,圍繞著需求把三個階段推到使用者的價值最大化。上層的業務打通,要實現底層資料的互聯互通,底層需要一個強大的平臺支撐,雲天生就有這麼好的能力。製造業的研發、製造、營銷,這三個環節,每個環節都不一樣,對整個IT架構的需求也不一樣。

以研發為例,製造業發展最快的一塊就是研發,如果把研發搬到雲的環境上面去,雲平臺要很好的支撐業務的話,需要用到高效能運算HPC,要按需提供不同的規模、不同型別的計算資源、計算量,而云能快速交付出來,所以把業務搬到雲上是一件可能的事情。在整個研發領域,不同的專案按不同使用者需求、資源這種邏輯隔離,甚至是物理隔離,實際上就用到了多租戶概念。

還有製造,最核心的內容是什麼?要做好資料採集,要把人、裝置、機器、產品、流程串起來,做好資料採集,做好資料分析,做好資料決策,最後透過一個平臺執行下去,還能不斷的去修正它。比如說製造行業要做資料採集、資料分析、要做邊緣計算、霧計算,就是IOT的資料,採集端處理,計算的需求不同,時間的要求不同,可以按地域分成邊緣計算,向區域的霧計算,再往後是雲端計算的資料中心平臺。

製造業還有什麼要求呢?我們知道製造業的工廠遍佈全球各地,雲平臺要實現分散式的部署,集中式的管理,要分發下去,就需要雲平臺。要具備這種跨地區的、跨地域的部署能力,跨資源排程能力,這是雲平臺的一個共性需求。

另外,還有一個混合雲需求,比如一家全球工廠,它的混合雲不但做好管控,還要透過混合雲打通私有云和公有云,把網路打通。藉助容器的技術,K8S的排程技術,容器對環境的無感知,通用了這種Pass類的服務能力,工業類這種 Pass的快速交付能力,這是製造。

營銷,很多toB、toC的業務,像網際網路時代的電商類,使用者請求放在公有云,然後把電商所獲取的資料加工處理後,放到私有云,做好這種管控資源的打通。因為公有云有比較好的頻寬,更卓越的SDN裝置,有很好的加速促銷環節。我有網際網路的電商應用,移動端的業務要部署到我的雲端上去,所以雲平臺天生就有這麼好的能力。營銷環節也有邊緣計算、霧計算,比如說我買一個智慧裝置,智慧裝置到底在執行一個什麼狀態?智慧裝置的生命週期是什麼?使用者的體驗是什麼?最終要返回到我們的研發環節,最終我們能製造出更好的產品裝置。大資料分析服務,透過終端或者大量的資料做演算法、做分析,然後再去做售後服務,不斷提高使用者體驗。

那麼,如何打通工業雲全鏈路?我們很難有一個平臺把工業雲所有層面全部打通。所以,工業雲和傳統雲還是不太一樣。如果一個技術,滿足我80%的需求,另外20%要透過合作伙伴生態很好的維護起來,對使用者來說才是有幫助的。那麼,什麼技術是最好的技術呢?很簡單,能幫我解決問題的技術。實際上,智慧製造的核心內涵是:感知和收集,決策和控制,執行和修正,形成智慧化的產品、裝備、車間、工廠,類似於IT服務管理領域的接、管、控。

雲以及AWS發展歷程

在瞭解什麼是雲之前,我們先想下什麼是作業系統?作業系統能做什麼?作業系統是不是驅動底層的CPU、記憶體、磁碟等硬體?給你上面部署的應用提供硬體資源?AWS雲服務有點像作業系統,你要做什麼?就去驅動它,底層各種應用資源為你所用。所以,亞馬遜說自己的雲服務就是一套 Internet雲作業系統。

那麼,Amazon架構需求的是怎樣的?2000年的時候,Amazon的新購物網站的服務力求變得高可用、安全、穩定、可靠並能無限擴充套件架構。Amazon云為什麼叫AWS?其實A、W、S這三個字母代表不同的字義:A是Amazon;W是Web;S是service。AWS代表所有服務都透過API呼叫,透過網路,使用者就能獲得所有資源。Amazon以前是電商,現在也是電商,只是我們今天討論的是它的雲服務。

Amazon之所以推出雲,是因為自己遇到了一些問題。電商網站的業務發展非常快,所以電子商務工具也是混亂不堪。比如:應用程式和架構構建沒有正確的規劃,服務不得不彼此分離等。

其實,AWS一開始也沒有技術特別強的人,只是把所有的需求和服務都搭起來。現在,因為踩了很多的坑,終於找到了比較行之有效的方法,才有了雲端計算。之前也是不斷買伺服器,不斷搭建系統,然後各種系統之前沒辦法相互呼叫。尤其規模大了以後,問題越來越多,怎麼解決呢?那就是把所有的服務變成一套技術相連的API,然後服務之間可以相互呼叫。AWS上面現在有很多服務,每個服務只幹一件事情,比如EC2是做計算的,Lambda也是做計算的,然後RDS是資料庫, 這些服務之間還可以輕鬆地呼叫。做軟體的人都知道,一定要遵循一個核心設計理念,叫做松耦合,AWS的各種服務之間也是松耦合狀態。

另外,很多人對SOA應該也非常瞭解,叫做面向服務的架構,其實和雲的理念也相同。所以,雲並不是什麼新事物,十幾年前就提出來了。比如:IBM構建一個系統一定要有中介軟體,遵循SOA的設計架構。只不過,亞馬遜把SOA理念貫穿得非常徹底,推出了雲。

有句話說:IT領域每15年就有一次變革,回過頭來看,確實如此。從小型機到虛擬化,再到雲端計算,企業資訊化的底層架構在不斷演化。AWS從2006年開始就在賣雲服務, 第一個服務是S3 (Simple Storage Service),簡單的儲存服務。S3是物件儲存,區別於塊儲存。我們每個人都有膝上型電腦,上面會有一塊硬碟,叫“塊儲存”。與塊儲存不同的是,物件儲存就是網盤,比如說百度雲盤,你放在網盤上的每一個檔案就是物件,並且可以透過全球唯一的URL能反應到,就是用HTTP就能反應到它。

S3是如何誕生的呢?是因為電商要擴充套件,比如從歐洲要擴充套件到非洲,但非洲基礎設施環境非常不好,總是停電、丟資料,急需要一個資料不丟的應用來儲存,S3順勢而生。S3永續性很高,放進去的資料有11個9的永續性。

雲的設計準則

那麼,什麼是雲?不同廠商有不同定義!

▲雲端計算的主要特徵

大體來看,雲有三個特性:

第一個,可程式設計的資源。它是一種可程式設計的雲資源的管理機制,由網路資源、計算資源、儲存資源和可程式設計的管理單元構成。透過採用這種可程式設計的雲資源的管理模型,和和可程式設計的這種資源管理規則,實現雲資源的這種高效管理。

第二,這種動態能力。這些資源是動態獲取的,我需要雲資源的時候就拿,不需要的時候就扔掉。所以,計算無處不在,很方便,只要有網路的地方,就隨時可以獲取到資源。就像家裡的水跟電一樣,水龍頭一開水就來了。

第三,按使用量付費。是一種先使用後付費的這種計算方式,透過按量付費,你可以按需開通和釋放資源,無需提前購買大量資源,成本比傳統服務模式便宜很多。

另外,雲端計算有六大優勢:

第一,將資本支出變成可變支出。什麼是資本支出?其實很簡單,就是你借一個資料中心叫資本支出;可變支出,其實有點難理解,我們叫運營支出。比如: 公司每個月要交水電費,就是運營支出,交給AWS的費用同樣是運營支出,不要一下子把錢全部砸到資料中心。尤其是初創公司,拿了風投的錢,風投肯定不願意投重資產。如果用AWS就不會有這樣的問題,哪天不幹了,可以快速收回成本。當然,如果你業務爆發很快,你可以考慮自己建資料中心。

第二,是規模效應。

第三,是停止猜測容量。換言之,你可以認為AWS的資源取之不盡。

第四,提高速度和敏捷性。這一概念如何理解?如果我們在資料中心啟動一個虛擬虛擬機器,在AWS上也啟動一個虛擬虛擬機器,到底誰更快?可能還是資料中心本地快。比如:你在AWS上啟動EC2, 可能至少要5分鐘, 才能反應到例項。但是,你在本地,如果你的基礎設施比較好,一分鐘或者半分鐘,虛擬機器就起來了。怎麼能體現出你的速度和敏捷性呢?不同的是AWS環境中的例項,有防火牆,有公網IP。如果你要做資料庫,直接啟動RDS;如果你要有一個資料庫快取的話,那就啟動Redis;如果你需要大資料的話,那就啟動EMR。你要的所有資源。在幾分鐘之內全部到位。在傳統資料中心要實現這一點,不是不可能,但是有難度,你要投入很多人力、物力、財力才能達到這種效果。

第五,專注於重要工作。AWS上有很多託管服務,比如RDS關係型資料庫,很多常規的功能都具備,DBA不用自己搭建底層架構,部署上層應用,還要維護系統,只專注業務本身。

第六,數分鐘內實現全球化部署,主要體現在AWS的全球化資源部署能力。

架構完善的框架

問題是,我們在架構上要遵循一些什麼原則?或者比如說我是甲方,乙方幫我做方案,我要看一下是不是滿足,做的是不是達到安全性、可靠性、成本最佳化、效能效率、卓越運維這幾個要求。

在安全性上,身份機制怎麼做,如何實現可追溯性,如何在所有層確保安全性,風險評估與緩解策略怎樣操作?所有能力AWS都具備。

什麼是可靠性?我們經常聽到公有云廠商斷線的訊息,包括AWS在北京的服務曾經也掛過。按道理說,AWS的資料中心有兩個可用區,它的風火水電都是獨立供應,有獨立的網路,一個挖掘機下去只會挖斷一個可用區,為什麼兩個可用區都當機了?這是因為在架構設計的時候,埋線的時候,把兩根線繞了一圈,然後又埋到另外一個溝裡去了。所以,一出現問題,兩個可用區都不能工作了。

成本最佳化很好理解,就是消除一些不必要的支出。比如:有些服務我們用EC2跑,但是一天的訪問很少,就幾個人,這時我們就可以換成Lambda。我也可以考慮使用託管,雖然託管的費用很高,但是我可以把運維人員的成本省下去,要看你站在什麼角度考慮問題。

卓越的運維,是指透過一些專業工具來幫你做一些自動化運維。 現在大家都在講DevOps, DevOps是常見的開發、部署、運維模式,所以需要專業的工具支撐。AWS就有全部的應用工具,可以支撐使用者的DevOps。

效能效率,EC2有很多資源型別, 比如:大家一開始用T系列,但如果我今天要做測試,承載量不大,我就用 t系列;如果很吃CPU,我就用c系列。類似這樣,普及先進技術。當然,從應用表現來看,S3也不算什麼新技術,實現起來非常簡單。但你自己搭的應用要達到像 S3一樣高可靠、高可用不容易。包括RDS關係型資料庫,你自己要搭起來也能用,但是你要保證它的可靠性、信譽,會有一些麻煩。所以,我們要利用AWS上的一些服務來實現。

AWS全球基礎設施

前文說道,AWS在全球有很多資源可以用,包括有些外企要出海,比如像吉利這樣的公司,全球有很多工廠、銷售點等等,AWS在全球有各種各樣相對應的資源。

AWS在全球有很多資料中心,比如在北京,每個資料中心都有幾千或上萬臺伺服器,而且資源都是線上的,沒有所謂的冷備,因為冷備關了之後,這個服務就不能用了。資料中心裡面有很多種網路裝置是AWS自己定製的,來自多家ODM原廠設計;AWS的伺服器是由戴爾以及其他廠商代工;交換機是自己設計的;自定義網路協議堆疊;還有晶片,AWS全部託管給第三方製造。

平常,我們建資料中心可能看不到可用區,但肯定會看到可用性。可用區是最小單元,你在建EC2的時候就能看到:A可用區、B可用區、C可用區。那麼,什麼是可用區?它包括一個或多個資料中心,兩個不同的可用區之間,就是一個容災的距離。兩個可用區之間,一般最佳是40公里,不能超過100公里。

AWS在全球由18個區域,中國和美國比較大,中國有兩個區域,在北京和寧夏都由兩個或者更多可用區組成,這些區域各自獨立,但在北京有兩個區域是為故障隔離而設計,它們相差幾十公里。中國區域和海外區域是隔離狀態,比如你註冊一個海外的賬戶,按理說你全球都可以用,但實際上他把中國這兩個區域排除在外。就是說,AWS在中國你得單獨註冊,只能看到北京和寧夏可以用。你即使想使用海外的資源,又想使用中國的資源,你需要兩個賬戶,而且中國賬戶要用企業賬戶才能註冊,個人賬戶不行,個人賬戶可以註冊海外的。

你要實現跨區域的資料複製,比如我要從東京把資料複製到新加坡,可不可以?當然可以!區域之間是用AWS這種骨幹網路相互通訊。

為什麼強調區域?因為AWS客戶多,需求多,最終產生的資源多,所以新服務一定在需求多的地方出現。

除了18個區域,還有很多邊緣站點,是用來跑IOT物聯網。比如:新疆要訪問北京的資源,會把一些靜態的資源推送到新疆使用者最近的地方。所以,這些服務在邊緣站點上面,跑跟終端使用者最近距離的服務,包括CDN、IOT、DNS以及防火牆等等。

大型架構設計

如果是大型使用者場景,那就要從S3開始部署,然後涉及到Route 53,還有和網路相關的內容分發CDN(CloudFront),主要放靜態內容。接下來是網際網路閘道器,負載均衡(APPlication Load Balancer),自動擴充套件(Auto Scaling),NAT閘道器,EC2、快取(Memcached)、資料庫RDS等等。

很多人可能會說,你講的內容是不是都是公有云服務。實際上,AWS的應用環境,很多是都是混合雲的統一管理,混合雲管理已是一種常態。比如:我既有AWS的雲,又有阿里雲,然後還有私有云,這麼多種雲都有不同的計費,不同的資源和很多賬戶,操作起來比較麻煩。怎麼辦呢?我會在很多雲之上部署混合雲,來管理下面這些雲,統一去申請資源,統計計費,統一進行自動化運維。

最後,到底哪些客戶在使用雲?

有這麼幾種:

一種是創業公司,為了省錢,就在雲上買一個伺服器資源,部署一個虛機。比如:公司比較簡單,你一開始就部署一個靜態環境的話,只要用物件儲存,用S3就可以了。費用很便宜,一個月儲存一個G的資料,只要0.1到0.17元。

第二種是電商類企業,經常要搞活動,需要彈性擴充套件能力,等活動過後可以對資源進行收縮。

第三種是政企客戶,需要透過現代化手段實現惠民服務。

第四類是傳統行業,要打通煙囪式的孤島,透過雲方式連線資料,實現底層的互聯互通。

總之,上雲已是主流趨勢,各行各業都在把傳統的資料中心和雲連線。

講師簡介:

郭一軍,雲貝學院院長,雲端計算、資料庫、大資料知名講師,雲貝學院創始人,ITPUB管理版資深版主,Oracle MySQL認證講師,騰訊雲TDSQL認證講師,擁有AWS雲端計算解決方案高階架構師SAP認證,阿里云云計算高階架構師ACE認證, Oracle Certified Master OCM 認證等。曾就職於連連支付、唯品會、吉利汽車研究院,參與設計巨頭型網際網路公司資料架構,對超高併發、極快效能資料架構有豐富經驗。並主導吉利超大規模製造企業資料架構與雲架構。10年培訓授課經驗,開創了國內線上Oracle DSI(Data Server Internals)系列課程的先河,MySQL系列課程,雲端計算架構與大資料管理課程。曾給中國金融期貨交易中心、浙江電力、安徽電力、浙江大學、杭州郵儲銀行、安徽電信、浙江電信、嘉興菸草等企業開展內訓,結合多年企業界實踐與教學經驗,自創獨郭九劍教學法,融合算力、資料、演算法於一體,所培訓學員遍佈國內各個企業,並在企業內負責重要的資料相關工作,已培訓學員超5000+,深受學員好評。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547898/viewspace-2722899/,如需轉載,請註明出處,否則將追究法律責任。

相關文章