成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

從零到千萬用戶的云端(AWS)基礎(chǔ)架構(gòu)最佳實踐

ZHAO_ / 2421人閱讀

摘要:本期大綱隨著從到千萬用戶的業(yè)務(wù)增長,通過的不同服務(wù)輕松地實現(xiàn)高性能和高可用的基礎(chǔ)架構(gòu)。方坤老師本次的主題比較偏向?qū)嵺`的基礎(chǔ)部分,假設(shè)了一個應(yīng)用從小型到中型和大型的時候,可能需要用到的服務(wù),以及相關(guān)介紹和實踐建議。

極牛技術(shù)實踐分享活動

極牛技術(shù)實踐分享系列活動是極牛聯(lián)合頂級VC、技術(shù)專家,為企業(yè)、技術(shù)人提供的一種系統(tǒng)的線上技術(shù)分享活動。
每期不同的技術(shù)主題,和行業(yè)專家深度探討,專注解決技術(shù)實踐難點,推動技術(shù)創(chuàng)新,每兩周的周三20點正式開課。歡迎各個機構(gòu)、企業(yè)、行業(yè)專家、技術(shù)人報名參加。

本期大綱
隨著從0到千萬用戶的業(yè)務(wù)增長,通過aws的不同服務(wù)輕松地實現(xiàn)高性能和高可用的基礎(chǔ)架構(gòu)。

嘉賓介紹
方坤,AWS解決方案架構(gòu)師,9年服務(wù)器開發(fā)和云計算領(lǐng)域解決方案經(jīng)驗。曾任Intel亞太研發(fā)公司軟件開發(fā)工程師和UCloud云計算高級解決方案架構(gòu)師,熟悉互聯(lián)網(wǎng)領(lǐng)域多種應(yīng)用場景,有豐富的初創(chuàng)企業(yè)IT解決方案項目設(shè)計經(jīng)驗。

方坤老師本次的主題比較偏向AWS實踐的基礎(chǔ)部分,假設(shè)了一個web應(yīng)用從小型到中型和大型的時候,可能需要用到的AWS服務(wù),以及相關(guān)介紹和實踐建議。

可能有的小伙伴沒太了解,所以幾個重要的基礎(chǔ)概念先說明下:

首先是區(qū)域(Region),它是一個物理的概念,數(shù)據(jù)中心的集合,可以覆蓋一個地區(qū)或國家。

比如說北京區(qū),就是覆蓋中國地區(qū),然后區(qū)域下面有可用區(qū)的概念,一個區(qū)域包括多個可用區(qū)。而可用區(qū)是若干物理數(shù)據(jù)中心(由高速光纖連接)邏輯上組成的,北京區(qū)有兩個可用區(qū),通俗來說可以理解為同城的多數(shù)據(jù)中心。

可用edge location,邊緣節(jié)點可以理解為CDN分發(fā)節(jié)點,今天主要涉及到的服務(wù)會是計算、存儲、網(wǎng)絡(luò)三個部分。

為什么可用區(qū)的概念這么重要?是因為AWS的很多服務(wù)都是天然跨可用區(qū)的,提供高可用或失效轉(zhuǎn)移的特性,這樣企業(yè)就不用花費額外的工作量和成本來搭建。最初的時候,測試環(huán)境或者剛上線的時候,考慮到便利性,通??梢圆捎胊ll-in-one的結(jié)構(gòu)。

首先需要在AWS環(huán)境中創(chuàng)建一個VPC,VPC就像是為你提供了一個虛擬的私有云,一張大的二層網(wǎng)絡(luò)。再通過我們的控制臺工具,在里面劃分的子網(wǎng),配置路由。然后創(chuàng)建一臺EC2,就可以SSH登錄上,部署您的服務(wù)了,甚至可以把數(shù)據(jù)庫也搭建在上面。

配置好IP,綁定到這個EC2上,你的用戶就能通過DNS解析訪問到這臺EC2上的服務(wù)了。大體架構(gòu)如下圖:

Route 53是AWS提供的DNS服務(wù),他可以基于延遲、地區(qū)等規(guī)則來進行路由。但是目前在中國區(qū)不可用,您需要用到國內(nèi)第三方的DNS服務(wù)。這是一個最簡單的架構(gòu),即使是只有一臺EC2,也是大有文章可做,因為EC2本身的配置非常多樣。

它有不同的機型,比如內(nèi)存優(yōu)化型,適用于構(gòu)建基于內(nèi)存的數(shù)據(jù)庫、大數(shù)據(jù)處理引擎、高性能計算等應(yīng)用。還有GPU的機型,適用于3D圖形應(yīng)用等等,包括計算優(yōu)化和存儲優(yōu)化機型。

EC2磁盤的IOPS也是可以配置的,如果有對io要求很高的話,可以選擇存儲優(yōu)化,然后加上PIOPS配置,也就是預定義它的IOPS能力。

但是這樣一個小型的架構(gòu),會存在以下問題:

很有可能訪問會突增,那么勢必會扛不住

沒有失效轉(zhuǎn)移

數(shù)據(jù)也沒有冗余

所以,可以考慮先將web和DB拆開,DB的部分既可以選擇比較合適的EC2機型自建,也可以選擇AWS托管的數(shù)據(jù)庫服務(wù)。其實關(guān)系型數(shù)據(jù)庫服務(wù)為RDS,菲關(guān)系行數(shù)據(jù)庫服務(wù)為DynamoDB。

RDS會比較常用,它可以支持oracle,SQL Server、PstgreSQL,MysQL和MariaDB。

好處是維護簡單,因為底層都是AWS在維護??梢钥v向更改配置,而且有自動備份。它還會在另一個可用區(qū)配置一個同步復制的從庫,一旦主庫失效,就能failover過去,DynamoDB的話后面再詳細介紹。

于是,將DB拆出來后,架構(gòu)圖就會演變成這樣:

當然,這個架構(gòu)還是在單個可用區(qū)部署的,所以隨著業(yè)務(wù)的繼續(xù)擴展,后面需要考慮到負載均衡和多可用區(qū),我們會建議再演變成下圖:

ELB支持HTTP和HTTPS,而且會對后端做健康檢查,這樣一個原型,擴展性很好了。

可以一直橫向的擴展,當然,最后的瓶頸勢必會出在DB上。這樣的擴展還是存在一個問題,就是所有的事情都要人手動來做。

AWS提供了一個工具,叫auto scaling。讓企業(yè)結(jié)合監(jiān)控規(guī)則來自動擴展,比方說,可以定義web server這一層的最小和最大數(shù)量,根據(jù)CPU的負載來決定是否要擴容縮容,具體配置方法比較細節(jié),就不在這贅述了。

同時,還要考慮動靜分離,將靜態(tài)資源分離出來,比如圖片、css、js、視頻等等,結(jié)合源站存儲和CDN來部署,源站可以使用S3服務(wù)。S3是對象存儲,自動擴容,只需要把你的對象放進來,通過控制臺或者命令行工具或者SDK來讀寫。

海外的話,AWS提供cloudfront服務(wù),也就是CDN加速;國內(nèi)的話,暫時需要用第三方的CDN服務(wù)。

S3的好處是持久性高,有11個9,每個對象最高達5TB。S3有兩種,除了通用的S3服務(wù)外,還可以選擇低冗余的類型,用來存儲不是那么敏感的數(shù)據(jù),這樣可以節(jié)省成本,這是靜態(tài)的內(nèi)容緩存。而動態(tài)的內(nèi)容緩存,基本上是用到內(nèi)存型存儲或者NoSQL。

有個服務(wù)叫ElastiCache可以提供memcache和redis服務(wù),可以把DB的熱點數(shù)據(jù)放在這里面,提供更高的IO性能。ElastiCache也是托管型服務(wù),好處是可以方便的分片或者構(gòu)建集群和副本集,像redis的話可以支持數(shù)據(jù)持久化,多個可用區(qū)。

緩存也可以用DynamoDB來替代,它可以提供延遲低于10ms的數(shù)據(jù)存取,總之,架構(gòu)可以演變成下圖:

簡單起見,這里只顯示了一個可用區(qū)關(guān)于這兩個服務(wù)的更多細節(jié),所以基本上,一個中型的web服務(wù),在AWS上就可以這樣架構(gòu):

再之后的優(yōu)化,就是自動化了,一方面是auto scaling這個工具,另一方面AWS也提供了一些自動化運維的工具。

像ElasticBeanstalk,你可以把你的應(yīng)用上傳過來,只需要簡單的配置,這個服務(wù)就會幫你配置好網(wǎng)絡(luò)、服務(wù)器和數(shù)據(jù)庫;像OpsWorks,它是一個托管型的chef服務(wù);還有Cloudformation,它可以幫助你把AWS上使用的服務(wù)通過一個JSON文件來管理,這樣不論是基礎(chǔ)架構(gòu)的版本管理還是自動部署,都會更加方便,一切都代碼化。

另外,監(jiān)控方面,需要用到CloudWatch服務(wù),它不僅基本的基礎(chǔ)架構(gòu)監(jiān)控,也可以讓你自定義應(yīng)用級別的監(jiān)控。后者需要用到我們的代理agent。然后,AWS也有工具和服務(wù)可以幫助你把架構(gòu)SOA化,把服務(wù)當做獨立的單元對待,獨立地進行擴展,比如郵件服務(wù),消息通知服務(wù),消息隊列服務(wù)等等。

那消息隊列服務(wù)來說,AWS提供的SQS服務(wù),可以幫助架構(gòu)解耦合,通過簡單的API來首發(fā)消息,消息存儲在無限制容量的SQS里,然后可以對隊列做認證和權(quán)限控制,而且這個消息隊列也是基于多個可用區(qū)存儲的,所以也提供高可用。

當然,出于性能的高可用考慮,它無法百分百保證先進先出,所以只需要在應(yīng)用里面加入對順序?qū)Φ目刂萍纯伞?/p>

還有一個lamdba服務(wù),它是一個函數(shù)的托管服務(wù),您可以把基于事件觸發(fā)的函數(shù)托管過來,不需要關(guān)心底層的擴展,比如說你有一個用戶在S3上傳了圖片,可以觸發(fā)Lambda的函數(shù)來處理,并將通過SQS隊列來把任務(wù)發(fā)給EC2,處理完后又觸發(fā)Lambda函數(shù)把該圖片的元數(shù)據(jù)保存到數(shù)據(jù)庫里。

在各個AWS服務(wù)之間,都通過Lambda來粘合,讓你的應(yīng)用更輕量級,也不需要考慮其擴展性和可用性,所以當你的應(yīng)用到達大型之后,就可以考慮如下幾個方法了:

部署多可用區(qū)

用ELB負載均衡流量

用auto scaling自動擴展

利用AWS的服務(wù)SOA化

利用S3和CDN動靜分離

緩存DB

把應(yīng)用盡量無狀態(tài)化,這一點可以通過SQS、lambda等服務(wù)來支持,參考下圖:

最后的話,就要解決DB的瓶頸了。如果您在使用關(guān)系行數(shù)據(jù)庫的話,只有兩個辦法。要么按業(yè)務(wù)和功能劃分數(shù)據(jù)庫,這一點AWS能協(xié)助的是幫助你方便地搭建讀副本,但是更多的需要您從業(yè)務(wù)層面來梳理和劃分;要么就是做sharding,這一點來說,AWS RDS也只是能提供底層的支撐,更多的是應(yīng)用層面的分片。

然而,在NosQL這一部分,AWS的DynamoDB可以提供強大的幫助,所以您需要考慮哪些數(shù)據(jù)是可以上NoSQL的,這一點的擴展性在AWS上是非常好的支持的。

DynamoDB是一個托管式的NoSQL數(shù)據(jù)庫,可以提供很高的性能,您可以更具實際的需求來配置讀寫性能。底層支持分布式和容錯,基于SSD的存儲,平均延遲低于10ms??梢蕴峁┳罱K一致性或強一致性。數(shù)據(jù)的副本基于多可用區(qū)分布是部署,您只需要管理你的表和項目,而至于底層的節(jié)點,對您來說是透明的。

當然,更重要的是從業(yè)務(wù)層面來梳理,再來歸納幾個重要的點:

要使用多可用區(qū)部署

充分利用能自動擴展的服務(wù),比如ELB,S3,SNS,SQS等等

充分考慮NoSQL的可行性

外部和內(nèi)部的緩存

盡可能的自動化,充分利用AWS的自動化工具,比如auto scaling、cloudformation等等

確保您充分利用了cloudwatch的監(jiān)控服務(wù)和日志工具

充分利用AWS的服務(wù)來進行服務(wù)模塊化

別在AWS上重復造輪子

Q&A

Q1:如果業(yè)務(wù)既面向國內(nèi),也面向海外,是使用aws國內(nèi)版,還是海外版?互通性會不會不同地區(qū)用戶的體驗問題?

A1: 首先不可避免的是海內(nèi)外網(wǎng)絡(luò)的穩(wěn)定性和性能問題,基于國情建議如下考慮:

如果主要的用戶來自國內(nèi),您可以部署在國內(nèi),然后海外部分通過將靜態(tài)內(nèi)容CDN加速來降低延遲、甚至是使用國際專線,我們也有合作伙伴來支持;反之國際亦然。

還有一個辦法,就是看能否分開部署,這個完全取決于您的業(yè)務(wù)和應(yīng)用能否支持了,這個主要還是網(wǎng)絡(luò)基礎(chǔ)設(shè)施層面的問題。

Q2:從國內(nèi)現(xiàn)有的云服務(wù),遷移到aws,有什么好的方式不?

A2:其實困難主要就是在于數(shù)據(jù)庫的遷移。我們有個工具叫DMS,國內(nèi)尚不可用,將來應(yīng)該會有。所以一般的方法就是先將全庫拷貝過來,然后再增量復制。因為不同數(shù)據(jù)庫特性不同,總的來說,就是AWS會幫助大家一起想出最佳的方案。

下期預告
時間:2016年11月23日 晚8點
方式:線上微信群
主題:直播中視頻編碼實踐經(jīng)驗總結(jié)

報名請關(guān)注極牛公號(ji-niu)并回復技術(shù)分享。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/61827.html

相關(guān)文章

  • 淺述APM采樣與端到端

    摘要:主題大綱淺述采樣與端到端何為何為端到端何為采樣的做法與弊端嘉賓介紹高馳濤,官方開發(fā)組成員,作者,云智慧高級架構(gòu)師。 極牛技術(shù)實踐分享活動 極牛技術(shù)實踐分享系列活動是極牛聯(lián)合頂級VC、技術(shù)專家,為企業(yè)、技術(shù)人提供的一種系統(tǒng)的線上技術(shù)分享活動。 每期不同的技術(shù)主題,和行業(yè)專家深度探討,專注解決技術(shù)實踐難點,推動技術(shù)創(chuàng)新,每兩周的周三20點正式開課。歡迎各個機構(gòu)、企業(yè)、行業(yè)專家、技術(shù)人...

    seasonley 評論0 收藏0
  • 拷問傳統(tǒng)企業(yè)CIO:微服務(wù)化值得嗎?

    摘要:以推出輕舟微服務(wù)平臺的網(wǎng)易云為代表,云計算公司正在微服務(wù)領(lǐng)域發(fā)力,促進企業(yè)數(shù)字化創(chuàng)新。以網(wǎng)易云輕舟微服務(wù)平臺為例,該平臺已經(jīng)在物流工業(yè)和金融等領(lǐng)域得到了深度應(yīng)用。 所謂數(shù)字化轉(zhuǎn)型升級,就是以數(shù)字技術(shù)優(yōu)化傳統(tǒng)資源,企業(yè)需要謹慎地選擇合適的技術(shù)逐步完成自己的數(shù)字化戰(zhàn)略。以推出輕舟微服務(wù)平臺的網(wǎng)易云為代表,云計算公司正在微服務(wù)領(lǐng)域發(fā)力,促進企業(yè)數(shù)字化創(chuàng)新。那么,微服務(wù)對數(shù)字化轉(zhuǎn)型意味著什么?...

    bovenson 評論0 收藏0
  • 從小白程序員一路晉升為大廠高級技術(shù)專家我看過哪些書籍?(建議收藏)

    摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級技術(shù)專家我看過哪些技術(shù)類書籍。 大家好,我是...

    sf_wangchong 評論0 收藏0
  • 亞馬遜新時代:云服務(wù)獨領(lǐng)風騷,AI助手無處不在

    摘要:亞馬遜人工智能語音助手技能超過萬個,全球各主要硬件廠商紛紛搭載或兼容,使得其亞馬遜助手無處不在。物聯(lián)網(wǎng)設(shè)備透過云端實現(xiàn)跨行業(yè)和跨設(shè)備互聯(lián)互通,所收集數(shù)據(jù)除了在邊緣側(cè)處理,還需要上傳至云端,云端作為數(shù)據(jù)集散地,各種數(shù)據(jù)經(jīng)過云端AI處理后,對這些數(shù)據(jù)利用將會帶來新的商業(yè)模式。在物聯(lián)網(wǎng)資深專家楊劍勇看來,云計算是全球物聯(lián)網(wǎng)重要基礎(chǔ)設(shè)施,作為物聯(lián)網(wǎng)產(chǎn)業(yè)發(fā)展基石,聚集了亞馬遜、微軟、谷歌和BAT等重量...

    Bmob 評論0 收藏0
  • 從0千萬級并發(fā)服務(wù)架構(gòu)演化

    摘要:包括服務(wù)的自動化部署,以及鏈路監(jiān)控等并未細說提及。結(jié)語誠然,整個服務(wù)架構(gòu)可以輕松應(yīng)對千萬級并發(fā)。期望,整個服務(wù)架構(gòu)能伴隨公司繼續(xù)成長壯大。 背景介紹 回顧 ShareSDK,顧名思義,分享的SDK組件,公司基于互聯(lián)網(wǎng),早期主要以ShareSDK起家。今日思來,很幸運,能陪著ShareSDK一起成長。 showImg(https://segmentfault.com/img/bV0Wo5...

    starsfun 評論0 收藏0

發(fā)表評論

0條評論

ZHAO_

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<