AWS Fargate告訴你:什么是容器即服務(wù)

本文翻譯自:Freecodecamp, 原文地址:An intro to Amazon Fargate: what it is, why it’s awesome (and not), and when to use it, 英文原作者為 Emmanuel Marboeuf

當(dāng)亞馬遜在2017年底的AWS re:Invent大會上和EKS一起宣布 Fargate的時候,它還備受冷落,當(dāng)時我所關(guān)注的博客和大佬只是輕描淡寫地說:

哦糖驴,有這么個新玩意芥被,它將允許ECS用戶直接在云中運行容器。

作為開發(fā)人員冲粤,這真的讓我大吃一驚恢着。讓我們看看為什么途凫。

解放生產(chǎn)力

我覺得軟件開發(fā)領(lǐng)域已有五次重大革命桐汤,大大提高了開發(fā)者的工作效率,并以最高效率編寫與部署應(yīng)用靶壮。他們都解決了一系列的重大問題:

  • 云服務(wù)(IaaS)的出現(xiàn):解決了基礎(chǔ)架構(gòu)的成本和可擴展性問題
  • 開源社區(qū)怔毛,會議,工作坊腾降,技術(shù)博客拣度,StackOverflow等:讓知識惠及到更多人
  • 版本控制系統(tǒng),協(xié)作工具螃壤,持續(xù)集成工具 解決了項目的并行開發(fā)和集成問題
  • 容器化架構(gòu)
  • 無服務(wù)器計算服務(wù)(PaaS) 降低服務(wù)器和系統(tǒng)管理成本

這些革命中的都有一個共同特點:它們都為軟件工程師賦予了更多的控制權(quán)抗果,降低了對服務(wù)器的系統(tǒng)管理員,DevOps奸晴,IT支持人員等的依賴冤馏。

所以,F(xiàn)argate算其中的哪一種呢寄啼?

你的“船”才是問題所在

Life jacket is advised

Docker使容器技術(shù)普及開來逮光,便很快成為開發(fā)中被廣泛采用的新標(biāo)準(zhǔn)代箭。

不久之后,隨著Kubernetes的成功涕刚,AWS推出了自己的(更基本的)容器管理服務(wù):Amazon Elastic Container Service(ECS)嗡综,它引入了任務(wù)(Task)的概念。

一個任務(wù)可以是一起工作的容器的任何實例杜漠。它可以是從運行一個服務(wù)的Web應(yīng)用极景,多個微服務(wù),數(shù)據(jù)庫和反向代理驾茴,還可以是定期運行的批處理shell腳本盼樟。

作為使用ECS的“老司機”,我很喜歡它沟涨,曾經(jīng)在一段時間內(nèi)用得很爽恤批,但到最后,我發(fā)現(xiàn)在管理EC2 Instance的同時裹赴,還必須管理一些額外的層(任務(wù)和容器)喜庞,這讓ECS變得越來越復(fù)雜。(譯者注棋返,請參考AWS“層”的概念

同時延都,我對ECS的安全性也不甚滿意,層越多睛竣,就越要保持警惕晰房,而每一層都帶來了更多的復(fù)雜性,以及誤配置射沟、漏洞的可能性殊者。

使用ECS在集群中運行中的EC2 實例(Instance)配置彈性伸縮時,每個實例上可以承載多個不同的Task验夯,每個Task都可以運行多個容器猖吴。
由于任務(wù)(Task)會在具有可用資源的相同類型的EC2實例上隨機部署(默認(rèn)情況下),將面臨以下問題:

  • 一個集群必須遵循相同的彈性伸縮規(guī)則挥转,伸縮的EC2實例類型必須相同海蔽。
  • 有些容器需要完全不同的資源(譯者注,AWS將網(wǎng)絡(luò)绑谣、虛擬機党窜、負(fù)載均衡都稱為資源),但仍需要協(xié)同工作借宵。
  • 某些容器不一定遵循相同的彈性伸縮規(guī)則幌衣。
  • 有時同一任務(wù)中的多個容器都需要有自己的負(fù)載均衡,無法為同一任務(wù)設(shè)置多個負(fù)載均衡器暇务。

面對這些問題時泼掠,首選的解決方法是:

  • 根據(jù)需求手動部署一些具有不同資源的EC2實例
  • 將這些EC2實例添加到您的集群
  • 為任務(wù)運行一個容器
  • 手動鏈接到您的EC2實例
  • 在ECS上配置復(fù)雜的任務(wù)策略怔软,把不用任務(wù)根據(jù)他它們的需求配置在適當(dāng)?shù)腅C2上

這需要大量、繁瑣的工作择镇,還不易維護挡逼,這違背了使用容器的初衷。

有人不得不提出一個更好的主意腻豌。

讓它們“漂”起來

事實證明家坎,AWS團隊在過去一年中也遇到了同樣的問題,他們考慮過并致力于解決這些問題:

我們怎樣才能運行容器而不必?fù)?dān)心服務(wù)器和集群吝梅?

這就是AWS Fargate的意義所在虱疏。它完全抽象了底層基礎(chǔ)架構(gòu),你可以把每個容器視為一臺機器苏携。

你只需定義每個容器所需的資源做瞪,它將為你完成復(fù)雜的任務(wù)而不必再管理多個“層”之間的訪問規(guī)則,您可以像在單個EC2實例之間那樣調(diào)度容器那樣右冻。

Fargate上的容器

這就讓你的容器像水面上的船只擁有自己的帆装蓬、船舵、船員一樣纱扭,自己可以漂流到想要去的地方牍帚。

容器即服務(wù)(CaaS)

我一直堅信容器即服務(wù)(CaaS)是開發(fā)人員夢寐以求的、真正的平臺及服務(wù)(PaaS)乳蛾。它允許開發(fā)人員直接在云中部署他們的容器暗赶,而不必?fù)?dān)心底層細(xì)節(jié)。

當(dāng)然肃叶,已經(jīng)有很多技術(shù)允許您在云上無縫運行代碼蹂随,而不必?fù)?dān)心擴展或服務(wù)器管理(比如HerokuLambda因惭,甚至以自己的方式使用Google應(yīng)用引擎)糙及,但它們都有局限性。

  • 必須選擇喪失一點靈活性
  • 必須使用它們所支持的語言
  • 無法使用它們所支持的語言完成擬定項目筛欢,因為可能您的項目需要在指定操作系統(tǒng)系統(tǒng)上可用的低版本的原生庫
  • 您的項目采用了尖端技術(shù),未來幾年將無法為大眾所用
  • 其中一些平臺非常非常昂貴唇聘,特別是在擴展時

Fargate(或CaaS)為您帶來兩全其美的方案版姑。

容器化架構(gòu)為您提供所需的靈活性和控制權(quán),它允許您在任何類型的系統(tǒng)中使用任何技術(shù)迟郎。而容器技術(shù)能確保你的應(yīng)用在每個主機上具有相同的行為剥险,無論是開發(fā)(Dev),測試(Testing/QA)宪肖,預(yù)發(fā)布(Staging)還是生產(chǎn)(Production)環(huán)境表制。

我覺得這一點對眾多的科技初創(chuàng)公司至關(guān)重要健爬。事實上,有時您的競爭優(yōu)勢之一就是么介,您參與開發(fā)出最先進的技術(shù)娜遵,或者是把機智地原有的技術(shù)用在新的應(yīng)用場景中。

無服務(wù)器部署使您可以專注于編寫優(yōu)秀的代碼壤短,沒有配置设拟,易于擴展。

限制

CaaS vs PaaS

也許確實你放棄了真正的“平臺即服務(wù)”的一些優(yōu)勢久脯,比如您仍然需要手動更新容器的鏡像纳胧,有時您必須編寫自己的Docker鏡像。如果您不了解系統(tǒng)管理的基礎(chǔ)知識帘撰,這的確很麻煩跑慕。

但是,這也意味著您可以放手地做任何您能想做的事情摧找,并且在您想要使用的系統(tǒng)上核行,保證語言,工具慰于,庫和版本中的靈活性和自由度钮科。

成本

讓我們直面這樣的現(xiàn)實:云服務(wù)(IaaS)比擁有自己的基礎(chǔ)架構(gòu)更昂貴(如果你想要按需擴展你的基礎(chǔ)架構(gòu))。同樣的道理婆赠,不必關(guān)心配置绵脯、管理和擴展服務(wù)器是要需要付出代價。如果你的應(yīng)用十分簡單休里,云服務(wù)并不是最優(yōu)解蛆挫。

Fargate實好,但是其價格幾乎是等配置EC2實例的價格的 4 倍(例如t2.medium)這讓我們很難抉擇妙黍,讓我們期待它能夠降價悴侵。

Fargate 和 EC2 價格對比 (USD)

我應(yīng)該將所有ECS任務(wù)都切換到Fargate嗎?

當(dāng)然不是拭嫁。如上所述可免,在某些情況下,您的成本將增加三倍以上做粤,所以在它們降低成本之前浇借,您可能最好使用標(biāo)準(zhǔn)EC2實例。

但是怕品,在以下情況下妇垢,F(xiàn)argate可能對您更有益:

  • 如果您無法很好地伸縮你的ECS任務(wù),會導(dǎo)致大量空閑的CPU或內(nèi)存,而使用Fargate闯估,您只需為在任務(wù)中定義的資源付費灼舍。
  • 對于按需或按定時計劃運行的任務(wù),并不需要一直運行著的EC2實例涨薪。使用Fargate骑素,您只需在任務(wù)運行時付款。
  • 適用于有內(nèi)存和/或CPU使用率峰值的任務(wù)尤辱。這僅僅是因為使用Fargate可以在這類情況下節(jié)省您配置和管理的時間砂豌。

彩蛋

對于那些喜歡Kubernetes而非ECS的人來說,F(xiàn)argate很快就會支持EKS了光督。

原文:http://wangbaiyuan.cn/an-intro-to-amazon-fargate-when-and-why-use-it.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阳距,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子结借,更是在濱河造成了極大的恐慌筐摘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件船老,死亡現(xiàn)場離奇詭異咖熟,居然都是意外死亡,警方通過查閱死者的電腦和手機柳畔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門馍管,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人薪韩,你說我怎么就攤上這事确沸。” “怎么了俘陷?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵罗捎,是天一觀的道長。 經(jīng)常有香客問我拉盾,道長桨菜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任捉偏,我火速辦了婚禮倒得,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夭禽。我一直安慰自己屎暇,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布驻粟。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜀撑。 梳的紋絲不亂的頭發(fā)上挤巡,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音酷麦,去河邊找鬼矿卑。 笑死,一個胖子當(dāng)著我的面吹牛沃饶,可吹牛的內(nèi)容都是我干的母廷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼糊肤,長吁一口氣:“原來是場噩夢啊……” “哼琴昆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起馆揉,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤业舍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后升酣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舷暮,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年噩茄,在試婚紗的時候發(fā)現(xiàn)自己被綠了下面。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡绩聘,死狀恐怖沥割,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情君纫,我是刑警寧澤驯遇,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站蓄髓,受9級特大地震影響叉庐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜会喝,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一陡叠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肢执,春花似錦枉阵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侦厚。三九已至,卻和暖如春拙徽,著一層夾襖步出監(jiān)牢的瞬間刨沦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工膘怕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留想诅,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓岛心,卻偏偏與公主長得像来破,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子忘古,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容