国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Serverless五大優勢,成本和規模不是最重要的,這點才是

haitiancoder / 2467人閱讀

摘要:導讀近期靈雀云技術專家邵明岐翻譯了所著的一書的部分內容,可以說是對科普與觀察的上佳素材。移動應用程序可以無縫訪問同一個數據庫,以檢索過去的結果和排行榜數據。這些是統計信息,例如執行持續時間和面向客戶的指標,而不是可用磁盤空間或使用率。

導讀:近期靈雀云技術專家邵明岐翻譯了Mike Roberts & John Chapin所著的《What is Serverless》一書的部分內容,可以說是對Serverless科普與觀察的上佳素材。
在了解了何為Serverless,各種服務組件之后,如何將服務組件組合成完整的應用程序? 基于Serverless開發的應用架構什么樣子?與傳統非Serverless應用程序架構相比,Serverless有哪些優勢?本文將回答這些問題。
原著:
《What is serverless : understand the latest advances in cloud and service-based architecture》
作者:Mike Roberts & John Chapin
譯文來源:深入淺出談架構(ID:deep-easy-arch)
譯者:靈雀云邵明岐
假設有這么一個應用程序,它是一個支持多用戶的手機游戲,具有以下高級要求:
友好的移動端交互界面
具備用戶管理和身份驗證
有一些基本的業務邏輯,比如游戲排行榜,歷史記錄等
我們暫時忽略游戲中可能會遇到的其他功能,畢竟我們的目的不是實際開發一個游戲,而是將Serverless程序架構與傳統的非serverless架構進行比較。

傳統非Serverless架構

根據上面的要求,傳統非Serverless架構看起來應該是這樣的:

Native Mobile App 是iOS或者安卓客戶端。
Java Application Server是Java代碼編寫的應用邏輯,運行在Tomcat或者JBoss這類應用服務器里面。
數據存儲在關系型數據庫,比如Mysql里面。
在這個架構中,移動應用程序負責呈現游戲界面并處理來自用戶的輸入,但它將大多數實際邏輯刪除到后端,從代碼的角度來看,移動應用程序簡單輕便,它使用HTTP調用后端Java應用程序提供的不同API。
用戶管理、身份驗證和各種游戲操作都使用Java應用程序代碼進行封裝, 后端應用程序還與單個關系數據庫交互,以便維護正在進行的游戲的狀態,并存儲已完成游戲的結果。

為什么要改變架構?

這個簡單的架構似乎符合我們的要求,那么為什么對它做改進呢? 關鍵在于未來開發和運維方面帶來的一系列潛在的挑戰和陷阱。

在構建游戲時,需要具備iOS和Java開發方面的專業知識,以及配置,部署和操作Java應用程序服務器的專業知識,還需要配置和操作關系數據庫服務器。 除了應用服務器和數據庫,也需要配置和運行各自的主機,無論這些系統是基于容器還是直接在虛擬或物理硬件上運行。 我們還需要通過配置路由策略,訪問控制列表等,來確保系統組件之間以及用戶端和服務端之間的網絡連通性。

有了上面這些,我們仍然只是提供最基本的讓游戲可用的環境還沒有涉及安全性、可擴展性或高可用性,這些都是現代生產系統的關鍵方面。 最重要的是,即使在簡單的體系結構中,也存在許多固有的復雜性,用來滿足現實世界各種各樣的需求。 構建系統并不難,但是當我們修復錯誤,添加功能或嘗試快速構建新的創新想法時,所有這些復雜性將會變成強大的阻力。

如何改變?

現在已經發現了傳統架構的一些挑戰,如何改變它? 讓我們看看如何能夠滿足高級需求,并使用Serverless架構模式和組件來解決傳統方法的一些挑戰。
在之前的文章已經說過了,Serverless組件可以分為兩類,BaaS和FaaS。 考慮到游戲的要求,其中一些可以通過BaaS組件解決,一些可以通過FaaS組件解決。

Serverless 架構
基于Serverless構建的游戲,架構看起來應該是下圖這個樣子的:

雖然用戶界面仍是移動應用程序的一部分,需要自己通過代碼來實現,但用戶身份驗證和管理可由AWS Cognito等BaaS服務處理,這些服務可以直接從移動應用程序調用,以處理注冊和身份驗證等面向用戶的功能,其他后端組件可以使用相同的BaaS來檢索用戶信息。
現在由BaaS處理用戶管理和身份驗證,后端Java應用程序的邏輯被簡化了, 可以使用另一個組件AWS API Gateway,以安全、可擴展的方式來處理移動應用程序和后端游戲邏輯之間的HTTP請求。 然后可以將每個不同功能的操作封裝在FaaS函數中。

這些后端FaaS功能可以與像DynamoDB這樣的NoSQL數據庫進行交互,以存儲游戲的狀態。 實際上,一個重大變化是不再在服務器端應用程序代碼中存儲任何會話狀態,而是將所有會話狀態保存到NoSQL存儲中。 雖然這可能看起來很麻煩,但它有助于擴展。

移動應用程序可以無縫訪問同一個數據庫,以檢索過去的結果和排行榜數據。 這允許我們將一些業務邏輯移動到客戶端實現,而不是將其放到到后端實現。

Serverless架構優勢

這種新的Serverless架構看起來很復雜,而且它比傳統架構需要更多的組件,但是,由于我們使用完全托管的Serverless組件,已經消滅了很多因為管理應用程序基礎設施和底層系統而帶來的挑戰。

我們編寫的代碼現在幾乎完全集中在游戲獨特的業務邏輯上,更重要的是,組件已經解耦和分離,因此,可以非常快速地將它們切換出來或添加新邏輯,而不會出現非無服務器架構中固有的阻力。

擴展,高可用性和安全性也有所提升,這意味著隨著我們的游戲越來越流行,不需要擔心購買功能更強大的服務器,也不需要擔心數據庫是否會崩潰,或者排查防火墻配置故障。

簡而言之,我們降低了制作游戲的人工成本,以及運行游戲的風險和計算成本,它的所有組成部分都將靈活擴展。 當我們有一些新的想法,交付期會大大縮短,可以開始獲得反饋并更快迭代。

云計算的基礎設施外包帶來五大好處:降低人工成本、降低風險、降低基礎設施成本、擴展性、交付時間 。Serverless 同樣也有這五大優點, 前四個都或多或少是關于成本節約的,這就是Serverless最為人所知的:如何以更低的成本做以前做過的同樣的事情。但是,對我們來說,節省成本并不是無服務器最令人興奮的部分,最大的好處是,它減少了從新的想法到實施上線的時間,換句話說,它能夠讓你更快地創新。

降低人工成本

我們在之前說過,Serverless本質上不再需要關心自己的服務器和進程 ,只需要關心應用程序的業務邏輯和狀態,所有其他不必要的工作都交給平臺來處理。這里的第一個明顯好處是運維工作量減少, 您不再管理操作系統,補丁級別,數據庫版本升級等。如果您正在使用BaaS數據庫,消息總線或對象存儲,那么祝賀你,這些基礎架構也都不要你來運維。

通過其他BaaS服務,對于節省人工成本是比較直觀的,自己開發的邏輯更少了。 我們已經多次討論過身份驗證的BaaS服務,其中最大的好處是可以使用較少的代碼來定義開發、測試、部署和運營,所有這些都減少了工程師時間成本,另一個例子是像Mailgun這樣的第三方郵件 BaaS 服務,它消除了處理電子郵件發送和接收的大部分復雜工作。

與傳統方法相比,FaaS還具有顯著的勞動力成本優勢。 使用FaaS進行軟件開發得以簡化,因為大部分基礎架構代碼已移至平臺。 這里的一個例子是HTTP API服務的開發,這里所有的HTTP級請求和響應處理都是由API網關完成的。

使用FaaS進行部署更容易,因為我們只是上傳打包成Zip格式(如果是 JS或者Python腳本語言)的基本代碼,或者如果是Java的話,則上傳普通的JAR文件,沒有要管理的Puppet,Chef,Ansible或Docker配置。其他類型的操作活動也變得更加簡單,例如,由于不再關注“永遠在線”服務器進程,因此可以將監控限制為更多面向應用程序的指標。 這些是統計信息,例如執行持續時間和面向客戶的指標,而不是可用磁盤空間或CPU使用率。

降低風險

當考慮軟件應用風險時,我們經常考慮對故障和宕機的敏感程度,我們的團隊負責管理的不同類型的系統或組件的數量越多,發生問題的風險就越大。我們可以不是自己管理這些系統,而是像之前描述的那樣,讓“外包”系統來解決這些問題。

雖然整體而言仍然面臨應用程序發生故障的風險,但我們選擇以不同的方式管理風險--我們現在依靠其他人的專業知識來解決其中的一些故障,而不是自己修復它們。這通常來說是一個好主意,因為應用的技術棧中,一些技術是平時很少發生變更的,當它們發生故障時,修復時間和難度都不確定。通過Serverless,我們可以顯著減少直接操作的技術棧數量,那些我們仍在自己管理的技術,通常是我們非常熟悉并且頻繁變更的,因此我們更有能力在失敗時自信地處理失敗。

例如,管理分布式NoSQL數據庫。 一旦安裝了組件,節點發生中的故障可能相對罕見,但是當它發生故障時,會發生什么? 您的團隊是否具備快速有效地診斷,修復和恢復問題的專業知識? 常常沒有。 相反,團隊可以選擇使用Serverless 的NoSQL數據庫服務,例如Amazon DynamoDB, 雖然DynamoDB中的中斷偶爾會發生,但由于亞馬遜擁有致力于此特定服務的整個團隊,因此它們發生故障的次數更少,并且能夠更快的恢復。

因此,我們說當使用Serverless技術時,風險會降低,因為組件的預期宕機時間會減少,并且修復它們的時間會更少。

降低資源投入成本

通常,當運行應用程序時,我們必須弄清楚它們將運行的底層主機類型和數量。 例如,數據庫服務器需要多少內存和CPU? 需要多少個不同的實例來支持擴展? 或者如何支持高可用性(HA)?

一旦規劃了我們需要的主機或資源,就可以分配應用程序的哪些部分將在哪些資源上運行。 最后,一旦我們開始準備部署應用程序,就需要實際獲得我們想要的主機,這是環境配置。

整個環境配置過程很復雜,我們很少提前知道我們的資源要求是什么,因此高估了我們的計劃,這稱為過度配置,這實際上是正確的做法:擁有備用容量并保持應用程序運行比在負載下降低更好。對于某些類型的組件(如數據庫),可能很難在以后擴展,因此可能希望通過過度配置,來承載未來預期的負載。

過度供應意味著我們總是為滿足處理峰值預期負載所需的容量付費,即使我們的應用程序沒有遇到負載也是如此。最極端的情況是,我們的應用程序處于空閑狀態時,我們正在為服務器付費,而事實上它并沒有做任何有用的事情。但即使我們的應用程序處于活動狀態,我們也不希望主機得到充分利用。相反,我們希望留下一些空間,以應對意外的負載峰值。

無服務器給這個領域帶來的巨大好處是不需要計劃,分配或配置資源,讓服務精確地提供我們在任何時間點所需的容量,如果我們沒有任何負載,那么不需要任何計算資源,也不會支付任何費用。 如果我們只有1 GB的數據,我們不需要容量來存儲100 GB。我們相信當需要時,服務將按需擴展,并且這同樣適用于FaaS和BaaS服務。

除了消除資源分配帶來的問題,無服務器還使成本更加高效。對于負載不一樣的各種應用程序,我們將通過使用無服務器來節省資源成本。 例如,如果我們的應用程序每小時只運行5分鐘,我們只需支付每小時5分鐘,而不是整個60分鐘。 此外,良好的無服務器產品將具有非常精確的使用增量; 例如,AWS Lambda按100毫秒的使用時間收費,比EC2的每小時計費精確36,000倍。

在現代非 Serverless 應用程序中,我們通過自動伸縮等技術獲得了一些收益,但是,這些方法通常不如無服務器產品那么精確,并且通常無法自動擴展數據庫。

提高擴展性
所有這些資源成本優勢都來自于這樣一個事實,即Serverless服務可以精確地滿足我們的需求。那么如何才能真正實現這種擴展呢? 我們需要設置自動縮放組嗎? 監控流程? 沒有! 事實上,縮放是自動完成的,不費力氣。

以AWS Lambda為例。 當平臺收到第一個觸發函數事件時,它會啟動一個容器來運行代碼,如果在收到另一個事件時仍在處理此事件,則平臺將啟動代碼的第二個實例以處理第二個事件。 這種自動、零管理、水平擴展將持續到Lambda有足夠的代碼實例來處理負載。

一個特別好的方面是AWS仍然只會根據你代碼執行的時間收取費用,無論它有多少個容器要啟動。例如,假設所有事件的總執行時間相同,在一個容器中按順序調用Lambda 100的成本與在100個不同容器中同時調用Lambda 100次的成本完全相同。

減少交付周期
通過采用Serverless技術,可以帶來顯著的成本節省。
康卡斯特有線電視公司首席技術官Sree Kotay在2016年8月AWS峰會上說:他不是在談論Serverless,他在談論康卡斯特如何從各種其他基礎設施外包中獲益匪淺,從“本地”轉向云計算:

經歷了云和敏捷的這一旅程,過去五年我們已經實現了收益,而且這些收益都是圍繞成本和規模進行的,它們是關鍵且重要的,但有趣的是它們并不是最引人注目的,最關鍵部分是這真的改變了你的創新周期,它從根本上改變了你對產品開發的看法。
Sot Kotay
復制代碼我們要提出的一點是,一家大公司的首席技術官說,成本和規模對他來說并不是最重要的,最重要的是創新。 那么Serverless如何在這方面提供幫助呢?
Adrian Cockcroft(AWS云架構戰略副總裁,Netflix前云架構師)談到:

我們開始看到開發應用程序的時間越來越短,小型開發團隊在短短幾天內從頭開始構建生產就緒的應用程序。 他們使用簡短的功能和事件將強大的API驅動的數據存儲和服務粘合在一起。 已完成的應用程序已具有高可用性和可擴展性,高利用率,低成本和快速部署。
-Adrian Cockcroft

復制代碼在過去幾年中,我們看到通過持續交付和自動化測試以及Docker等技術改進開發的增量周期時間取得了很大進展。 這些技術很棒,但只有在設置和穩定后才能實現。 對于真正蓬勃發展的創新而言,縮短周期時間是不夠的,您還需要更短的交付周期--從新產品或功能的概念化到以最小的可行方式部署到生產環境的時間。

由于Serverless消除了在生產中大規模構建,部署和運行應用程序的大量附帶復雜性,因此它為我們提供了巨大的杠桿作用,以至于軟件交付方式可以顛倒過來。通過正確的組織支持,創新和“精益創業”風格,實驗可以成為所有企業的默認工作方式,而不僅僅是為初創公司或“黑客日”保留的東西。
這不僅僅是一種理論。 除了Adrian的的觀點之外,我們看到相對缺乏經驗的工程師完成項目通常需要幾個月的時間,并需要更多資深工程師的幫助。 相反,使用Serverless,他們能夠在幾天內基本上無需幫助地實施項目。

這就是為什么對Serverless感到非常興奮:除了節省所有成本之外,還可以釋放他們的能力,讓他們專注于讓產品與眾不同的地方。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27794.html

相關文章

  • Serverless系列 | 云計算究竟如何進化出了Serverless?

    摘要:導讀近期靈雀云技術專家邵明岐翻譯了所著的一書的部分內容,可以說是對科普與觀察的上佳素材。的另一半是是的另一種形式,概念上容易混淆的地方在于,有時候將自己的服務,,稱為。 導讀:近期靈雀云技術專家邵明岐翻譯了Mike Roberts & John Chapin所著的《What is serverless》一書的部分內容,可以說是對Serverless科普與觀察的上佳素材。本文為第1篇,他...

    yanbingyun1990 評論0 收藏0
  • CloudBest:年度復盤丨盤點2020無處不在「云原生」

    摘要:華為云華為云在云原生這場游戲中,最具競爭力的玩家之一。年,金山云在云原生領域推出了三款重磅產品星曜裸金屬服務器云服務器和云盤。在線上智博會上,浪潮云發布了經過全新迭代升級的浪潮云,進一步提升平臺云原生服務能力。面對數字時代復雜系統的不確定性,傳統的 IT 應用架構研發交付周期長、維護成本高、創新升級難,煙囪式架構,開放性差、組件復用度低,這些都成為了企業業務快速增長的瓶頸。而云原生以其敏捷、...

    Tecode 評論0 收藏0
  • 小程序上云,有點猛

    摘要:另外小程序云應用有一套高可用架構,提供監控預警能力。自主可控小程序云應用提供服務器,開發者可以擁有登錄或重啟,也可以修改密碼。也就是說,服務器是由小程序云應用提供,但使用權歸開發者?! ∏安痪糜幸粋€朋友問我,到底是做什么端的小程序比較好?   我只問了一句,你的產品里是否涉及錢和服務,如果涉及這兩者,建議你選擇支付寶小程序。你可以通過其他小程序玩裂變,但如果你想做服務和商業,一定要考慮支付寶...

    jsdt 評論0 收藏0
  • FaaS如何在云2.0時代發揮優勢,又將走向何方?

    摘要:相反,楊皓然認為,目前有一些開源的框架,重點解決了彈性伸縮的問題,但還沒有廣泛的和其它服務連接,沒有充分發揮的威力。以應用為中心,而不是以資源為中心對于函數計算的實現方式,楊皓然認為立足點應該是以應用為中心,而不是以資源為中心。 摘要: 過去十年,云服務深刻地改變了社會獲取和使用計算能力的方式,云服務自身也以極快的速度演進。在基礎設施云化之后,容器、Serverless等技術迅猛發展,...

    luqiuwen 評論0 收藏0
  • 2016影響數據中心云計算五大趨勢

    摘要:未來幾年將是現代數據中心和整個云生態系統的決定性時刻。有了這一切,讓我們來看看年影響數據中心和云計算環境的五大趨勢物聯網規模越來越大物聯網設備的爆發將轟動業界。從現在起到年,我們將看到在數據中心和云計算呈爆炸式增長態勢?! ∥磥韼啄陮⑹乾F代數據中心和整個云生態系統的決定性時刻。人們開始看到越來越多的市場、產業和行業采用新一代技術。所有這些都將影響人們設計數據中心方式,以及支持我們的不同的應用...

    Brenner 評論0 收藏0

發表評論

0條評論

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