成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Twilio的經驗分享:合理設計的系統可避免“云震”的傷害

原創
運維 系統運維
美國時間4月21日凌晨開始,Amazon位于東海岸的某個數據中心發生故障,并直接導致其網絡服務經歷了數次嚴重中斷。Twilio是一家提供云計算平臺上通訊服務的公司,提供各種API服務。在本次Amazon服務中斷事故當中,Twilio的API及相關服務并未受到太大的影響。Twilio的CTO在本文中分享了他們的“防震”策略。

【51CTO精選譯文】美國時間4月21日凌晨開始,Amazon位于東海岸的某個數據中心發生故障,并直接導致其網絡服務經歷了數次嚴重中斷(51CTO編輯注:本次事件之后被命名為4.21“云震”)。這次停機事故使得互聯網上的許多主流網站也相繼陷入癱瘓。這些受到影響的知名網站從一方面證明了云服務當前在推動互聯網整體系統發展當中所獲得的驚人成功,但也從另一方面昭示了構建云服務時采用穩定的分散式設計的重要性。

Twilio是一家提供云計算平臺上通訊服務的公司,提供各種API服務。在本次Amazon服務中斷事故當中,Twilio的API及相關服務并未受到太大的影響。下面,Twilio的CTO Evan Cooke在其團隊官方博客上分享了Twilio采取的“防震”策略。以下為譯文:

Twilio

我們在日趨成熟并且將Twilio拓展到Amazon網絡服務之上的同時,也嚴格遵循架構設計的原則,以盡量減少偶然發生的底層基礎設施故障對業務的影響。

將故障范圍控制于單獨的主機之中

如果有可能,選擇一些服務項目以及基礎設施來模擬主機發生故障時的狀況。通過建立一套簡單的單主機服務系統(而不是引入多臺主機),我們就可以構建出不受其它主機工作狀態影響的獨立服務供應體系。

例如,如果我們的某個應用程序包含A,B,C三種業務邏輯組成部分,那么每一部分都要運行于獨立的主機之上。我們當然可以將服務群組設置為(A,B,C),(A,B,C)……或者我們也可以創建一套組件池(A,A,…),(B,B,…),(C,C,…)。如果我們選擇了前一種方案,那么單個主機發生故障將會使整套系統群組遭到破壞。將資源拆開并分配給獨立的池則能夠在單個主機發生故障時只會對該主機本身的功能性造成影響。我們會在另一篇文章中向大家介紹上述方案的其它優勢及存在的缺陷。

極短超時與快速重試

當故障發生時,我們有相應的軟件快速識別那些失敗及重復提交的請求。通過為每項服務運行多個冗余副本的方式,我們可以使用快速超時及重試來對無法執行或連接失敗的服務器進行路由操作。

1. 提出請求,若該請求返回的是一條暫時性錯誤提示或是短時間內沒有響應(這個短時間到底有多短,可以根據大家的應用程序類型而定)

2. 對另一臺服務器重復上述請求

3. 繼續對另一臺服務器重復上述請求

如果不迅速采取上述措施,分布式系統——尤其是那些按序處理或是基于線程的類型——很有可能會把運算資源浪費在等待緩慢甚至完全無響應的服務器上。

冪等服務接口

構建服務器要求能夠安全地對某項請求進行重復操作。如果大家對“冪等”這個概念不太熟悉,可以先讀讀“冪等領域的精彩世界”一文。

 “在計算機科學當中,冪等這個術語被用來全面地形容一種在執行了一次或是多次的情況下始終產生相同結果的操作。”

如果某臺服務器的API符合冪等定義,那就意味著其在失敗請求進行重試的過程中是安全的(即我們在前文第2條中所描述的內容)。例如,如果某臺服務器提供這樣一種功能,將指定數目的資金匯入另一位用戶的賬號當中,那么具備冪等接口也就意味著該項請求若是提交失敗,則無論重復提交多少次,都不會造成預期之外的負面效果。關于這個話題其實有很多內容可談,我們以后會就更多細節展開深入的討論。

小型無狀態服務

將邏輯業務獨立為小型無狀態服務能夠使其更容易地通過均等的池加以組織。Twilio的基礎設施中包含了許多分別實現API不同功能部分的服務池。例如,當大家在TwiML中使用<Record>指令來進行錄音時,對錄制內容進行后期處理以改善音質并進行上傳存儲的工作是由錄制服務中的某個池來完成的。無狀態池錄制服務允許上游服務通過不同的錄制服務器對失敗的請求進行重試。此外,錄制服務池的大小在負載進行中也很容易加以調節。

放寬對一致性的要求

當對信息的一致性沒有太高要求時,為復制及重復讀取數據創建對應的池。大家能在應用程序層面所部署的最重要的方案之一就是將數據的讀取與寫入分別處理。例如,如果某個巨大的數據池在寫入方面的操作極少,就應該將數據的讀取與寫入分別進行處理。通過這種區分,對應的池就能夠獨立創建一套可供服務請求重復讀取的數據副本。例如,當服務器整體的數據寫入表現良好而數據讀取表現較差時,我們可以通過增加讀取服務池的數量來改善接收及運行讀取請求的效果。

AWS的事故說明我們需要認真反思一下自己云托管應用程序的設計是否合理。我們已經著重強調了幾種知名的分布式系統設計的亮點,而當我們決定將其作為外部服務整合進Twilio之后,它們也確實在工作中起到了良好的作用。

AWS事故的關鍵癥結在于Amazon彈性模塊存儲(簡稱EBS)服務。我們在Twilio中使用了EBS方案,但只應用于那些不太重要且對延遲不太敏感的任務上。我們在將EBS引入自己設施的核心部分方面一直有所保留,因為它不符合我們所追求的“局部故障只影響某臺單獨的主機”這一原則。如果EBS一旦發生問題,所有相關的服務也很可能同時陷入癱瘓。相反,我們一直堅持在每臺EC2主機上都部署額外的臨時硬盤。如果某塊臨時硬盤出了問題,該問題也只會影響硬盤所在的主機。我還計劃向大家介紹如何將臨時硬盤構建為RAID0以提高讀寫性能,感興趣的朋友們可以繼續關注我們的博客。

原文:Why Twilio Wasn’t Affected by Today’s AWS Issues

【編輯推薦】

  1. 亞馬遜EC2中斷 “可用區”遭質疑
  2. 傷不起!亞馬遜史前***宕機事件的啟示
  3. 從亞馬遜云服務故障中吸取的七個教訓
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2013-05-30 10:20:39

系統架構

2009-01-15 09:43:51

Web架構設計緩存

2011-04-26 09:21:55

亞馬遜

2011-05-17 17:51:43

SEO網站優化

2017-08-21 08:20:03

海云捷迅教育云實戰

2015-11-10 09:50:51

IT實施計劃IT

2013-04-12 10:24:43

云通訊平臺Twilio

2016-10-28 20:49:50

Linux

2011-07-12 17:53:21

PHP

2015-09-28 10:10:24

游戲設計表達

2013-06-25 10:59:25

卡牌游戲策劃手機游戲

2012-07-09 11:15:22

電子商務

2009-09-25 17:58:00

CCNA自學

2010-06-13 09:09:34

MySQL 4.0.2

2020-03-27 16:02:42

數據安全信息安全5G

2017-06-07 14:34:48

數據DB修改

2013-01-08 09:25:36

移動應用產品設計

2011-07-12 18:20:45

降權

2011-06-28 14:02:49

表分區

2013-11-27 11:04:05

震網病毒震網Stuxnet
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品亚洲二区 | 日韩精品免费视频 | 国产一区在线免费观看视频 | 在线亚洲欧美 | 九九九久久国产免费 | 精品国产一区二区三区日日嗨 | 日韩av在线一区 | 中文字幕精品一区二区三区精品 | 粉嫩国产精品一区二区在线观看 | 精品国产色 | 国产在线一区观看 | 久久99精品久久久久久噜噜 | 成人免费小视频 | 日韩色综合 | 亚洲欧洲一区二区 | 成人一区二区三区在线 | 91亚洲国产 | 成人在线播放 | 在线91| 日韩电影在线 | 国产精品视频不卡 | 不卡视频在线 | 91精品国产高清一区二区三区 | 欧美日本韩国一区二区 | 日韩欧美国产精品 | 日日躁狠狠躁aaaaxxxx | 久久婷婷香蕉热狠狠综合 | 国产精品69毛片高清亚洲 | 色婷婷激情综合 | 日韩在线观看 | 久久91| 国产高清一区二区三区 | 天堂一区二区三区四区 | 国产精品久久久久久久久久免费看 | 国产精品一区在线观看 | 久久久精 | 久热精品在线观看视频 | 真人一级毛片 | 日日夜夜天天 | 日韩亚洲一区二区 | 香蕉久久久久久 |