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

云原生數據系統的設計思考

譯文 精選
云計算 云原生
本文將介紹云原生架構、應該考慮的設計原則以及優秀的云原生平臺具備的特征。

?譯者 | 盧鑫旺

審校 | 孫淑娟

在設計云原生數據系統時,并沒有特定的托管基礎設施、編程語言或者設計模式。構建云原生系統有多種多樣的方式。讓我們來看一看云原生架構應該牢記的設計原則,以及一個優秀的云原生平臺具備哪些特征。

一、云原生架構

云原生架構本質上是使用云構建應用程序的設計模式。雖然沒有具體的方法來實現這種架構或預定義的云原生設計,但最常見的方法是將應用程序分解為幾個微服務,讓每個微服務處理不同類型的功能。然后,每個微服務都由一個小團隊維護,通常作為容器部署。

圖片

讓我們來進一步看看云原生架構。

二、擁抱微服務

云原生設計和開發依賴于松耦合的架構,應用程序的不同部分獨立開發,獨立操作,獨立部署,通常使用微服務實現。

可以肯定地說,微服務是云原生系統的基礎。通過使用容器,可以將運行時環境及其庫、二進制文件和依賴項壓縮為有邏輯且易于管理的單元,從而從中受益。因此,應用程序服務可以根據需要存儲、復制、傳輸和使用。

圖片

與單體程序不同,微服務由一個個小而獨立的服務組成

微服務(或者說松耦合架構)對云計算非常重要。原因有幾個,例如它提升了服務的簡單性、可擴展性和彈性。讓我們來進一步看看這是如何實現的。

使用這種架構,你可以將復雜的應用程序分解為獨立的小的模塊,使應用程序的開發周期變得簡單且易于管理。分離應用程序配置和基本代碼也使開發和維護應用程序更加容易。同樣,保持核心應用程序與支持服務的分離允許代碼庫按照自己的速度發展和擴展。

此外,伸縮一個應用程序的各個部分比伸縮整個整體應用程序更容易(也更快)。同樣,更新應用程序更容易,因為你只需要更新需要更改的部分(或微服務),而不是再次部署整個應用程序的新更新版本。

擁抱微服務也增加了彈性,使應用程序更加可靠。例如,如果微服務架構中的一個組件發生故障,整個應用程序不會崩潰。它還促進了IaC(代碼即基礎設施),這反過來為自動化部署鋪平了道路(我們稍后將介紹)。最后,微服務架構涉及通過API使用無狀態進程和組件,將每個微服務與其他服務隔離,從而提高安全性和效率。

為了確保應用程序遵循松耦合的體系結構,必須避免在不同部分之間形成緊耦合的依賴關系。例如,兩個微服務不應該依賴于同一個數據庫。如果他們這樣做了,你將無法獨立更新和操作它們。

三、代碼即一切

雖然使用微服務從現代應用程序中受益很重要,但采用自動化實踐也很重要。這旨在優化應用程序開發過程,使開發人員和用戶都受益。為此,最終目標是實現EaC?—?代碼即一切。因此,將EaC視為IaC的領先一步,這里說的IaC包括應用程序代碼庫、基礎設施和平臺。

這種方法在硬件和軟件方面都有許多好處。例如,它有助于在各個級別實施版本控制,并改善部門間的協作。它還促進了不同組件的模塊化,并通過及時更新幫助防止漏洞來增強安全性。

云原生數據系統的一個關鍵方面是使用CI/CD工具在不同級別實現自動化的能力。通過采用DevOps和敏捷原則,你可以得到一些好處,例如更低的運營成本、更好的安全性、更靈活、可擴展性和快速的開發周期。

安全尤其重要。手動處理通常會導致對云原生平臺的攻擊,但通過自動化實現最佳安全實踐可以提高安全性。此外,CI/CD中的SecDevOps允許你在SDLC的早期階段執行安全測試,以便可以在開發階段早期處理漏洞。

四、API優先的思考方式

開發人員通常專注于代碼優先的開發方式,而不是API優先,但問題是這種方法不是開發現代應用程序的最佳方法。對于云原生數據系統,我們應該鼓勵開發人員采用API優先的思考和開發方式,并在此基礎上構建軟件。這樣做有助于在為現代分布式應用奠定基礎時節省大量時間和精力。

正如我們前面提到的,云原生數據系統應該遵循微服務架構,其中應用程序的服務是分開的,每個服務都作為一個自主應用程序執行。因此,微服務依賴于API來相互通信和交互。

請記住微服務架構和現代應用程序的流行,API的重要性是顯而易見的。此外,API優先的原則也讓開發人員獲得了微服務模式的所有好處。遵循API優先方法的應用程序可以被視為緊密聯系的服務的生態系統,其中來自應用程序的調用和用戶界面的調用,它們被視為API消費者。

這種方法有許多優點。例如,它使系統具有高度的可擴展性,并減少了失敗幾率。它還降低了開發成本,改善了開發體驗,并通過加快開發過程加快了上市速度。除了通過API促進用戶和應用程序之間的通信之外,它還促進了內部流程的自動化和通信。

五、云原生設計原則

云原生應用通常遵循12要素應用框架中定義的原則,并圍繞安全性、彈性(和可用性)、彈性和性能(包括可擴展性)構建。讓我們進一步了解這些云原生設計原則。

1.可擴展性

可伸縮性背后的理念是,可以為應用程序和相關服務添加額外的容量,以應對需求和負載的增加。特別是,在設計可擴展性時,應考慮每個應用程序層、如何擴展以及如何避免瓶頸。

在這種情況下,需要考慮三個關鍵領域:容量、負載和數據。

關于容量,請考慮是否需要擴展各個層,以及是否可以在不影響應用程序可用性的情況下進行擴展。你還需要考慮擴展服務的速度,以及是否可以在不影響運營的情況下在業務服務外的時間縮減應用程序的部署規模。

當涉及到數據時,請考慮是否可以擴展,同時要記住服務的限制,如事務吞吐量和數據庫大小。然后,找出如何在保持平臺約束的同時對數據進行分區以進一步提高可伸縮性。同樣,你需要弄清楚如何高效地使用平臺資源。

在負載方面,你需要確定如何改進設計以避免瓶頸,以及如何在流量高峰時使用異步操作來幫助負載平衡。你還需要探索如何使用所選平臺的不同速率均衡和負載平衡功能。

確保可擴展性的一種方法是創建自動化流程,以便在需要時擴展、修復和部署系統。您可以設置系統以生成有意義的日志(以及事件),然后將其用作不同自動化活動的掛鉤。生成的系統應該能夠自動調配基礎設施,如機器實例,構建、測試和部署CI/CD管道中的不同階段,并處理動態可擴展性和運行狀況監視和備份。

許多人認為云原生系統應該是無狀態的,但這在現實應用中很難實現。由于在分布式應用程序中很難管理狀態,所以最好盡可能使用無狀態組件。這是因為無狀態組件使負載平衡、擴展、修復和回滾更加容易。

2.可用性

可用性是指如果底層操作系統、硬件、網絡依賴性或應用程序本身出現了故障,系統仍能對消費者可用的能力。重要原則包括性能、正常運行時間、災難恢復和備份。

當涉及到性能時,你需要定義可接受的性能級別、如何衡量它們,以及當性能低于可接受級別時應觸發的操作或事件。你還需要確定應用程序中最可能導致問題的部分,以及以隊列為中心的設計或自動縮放是否有助于解決問題。此外,你需要弄清楚使云原生系統的某些部分異步是否有助于提高性能。

正常運行時間保證也很重要。特別是,你需要定義產品應滿足的SLA,以及你選擇的云服務是否可能滿足這些SLA。同時,在災難恢復方面,你需要確定在發生故障時如何重建云原生系統,以及在這種情況下可以承受多少數據損失。最后,還需要確定在發生故障時如何處理備份、運行中隊列和消息,并確定要將鏡像存儲在何處以及是否有備份。

最后,在復制方面,你需要確定系統中存在高故障風險的部分以及受故障影響最大的部分。此外,確定是否需要數據副本以及如何防止不可靠數據的副本帶來的影響。

3.安全性

云原生數據系統中的安全性是一個非常廣泛的話題,涉及很多方面。首先,但也最重要的是,你需要了解以下內容:

保存數據的所在地的當地法管轄區和法律,包括保存度量和故障切換數據的國家/地區

如果是混合云應用程序,如何保護云和企業網絡之間的鏈接

是否能夠滿足聯邦安全的要求

如何控制對云提供商管理門戶的訪問、處理密碼更改以及限制對數據庫的訪問。

如何處理云供應商和操作系統安全更新和修補程序

4.可管理性

可管理性是指了解系統性能和運行狀況以及管理操作的能力。關于云,我們必須考慮兩個原則?—?部署和監測。

當涉及到部署時,需要問自己一些問題。例如,考慮如何實現部署的自動化,以及如何在不中斷實時系統的情況下修補或重新部署。此外,考慮如何檢查部署是否成功,以及在部署失敗時如何回滾。同樣,部署還包括確定需要的環境數量以及它們需要多少存儲和可用性。

同時,對于監控方面,你需要計劃如何監控應用程序(打算使用現成的服務還是從頭開始開發?)以及將監控數據物理存儲在何處。你還需要確定監控計劃將產生的數據量,以及如何訪問度量日志。類似地,問問自己是否能夠承受丟失一些日志數據,以及是否需要在運行時更改監控級別。

5.可行性

最后,可行性包括在時間和預算限制的情況下維護和交付系統。這一原則需要考慮的一些事項是:

  • 是否可以滿足SLA?例如,是否有云提供商可以保證需要向客戶提供的正常運行時間?
  • 是否擁有構建云應用程序所需的內部經驗和技能,或者需要將其交給第三方?
  • 要在收益和成本之間權衡,維持云提供商復雜定價的同時能接受的花費

六、一個優秀的云原生數據平臺具備的特征

你已經知道了在創建云原生平臺時應該考慮的原則和架構考慮因素。現在讓我們來看看一個好的平臺應該提供哪些更多的功能。

圖片

1.成本效益

完全托管管理的云服務和內部部署/自我管理的服務的成本確實存在很大差異。然而,前者的彈性和大多數云平臺遵循的按使用付費模式,使得可以在沒有任何資源(成本以及)浪費的情況下運行適當的規模。

這也意味著你無需擔心為未使用的資源支付額外費用,甚至無需處理容量規劃。此外,由于云平臺的多租戶,服務提供商可以以比自管理服務低得多的成本為其服務定價。

2.為你所用的付費

如上所述,大多數云平臺都遵循按使用量付費模式,這意味著你只需為所使用的資源付費,而不必為所提供的資源付費。這些資源既可以是高級的(如API請求),也可以是底層的(如內存或CPU使用)。因此,與本地數據的情況不同,你不需要為可能根本不使用的許可核心付費。

2.彈性和和擴展性

一個好的云原生平臺還包括可以通過簡單的API調用或點擊來擴大或縮小服務規模。如果平臺能夠根據定義的策略自動擴展服務,那就更好了。此外,由于預管理容量規劃和彈性擴展,只有在最極端的情況下才會暴露可擴展性限制。

4.可用性

高效的云原生平臺還由其高可用性定義,并設計用于處理大多數故障。例如,大多數平臺提供至少99.95%的服務水平協議,這意味著一年最多只會有4.5小時的停機時間。不過,在現實中,你可以要求更高的可用性。

5.多租戶

多租戶有兩個好處?—?可管理性和規模經濟性?—?大多數云原生服務都從中受益。首先,你可以使用S3這樣的服務為客戶提供最佳的用戶體驗,S3將服務作為查詢或請求而不是CPU提供。所有租戶都被隔離得很好,以至于用戶不知道同一個物理系統也為其他租戶服務。

是的,在某些情況下,用戶必須購買專用計算資源,如內存和CPU(AWS Aurora就是這樣)。然而,底層基礎設施(如存儲和網絡)仍然是共享的。

6.性能優化

最后,為了能夠服務不同類型的客戶工作負載,你的系統應該在多個維度上可擴展。應在整個基礎架構(包括硬件、操作系統和應用程序)中調整和優化約束條件。此外,在管理系統的情況下,應該有一個緊密的生產反饋機制。系統還應能夠分析和學習不同的可擴展性和性能相關事件,并推出改進以優化性能。

原文鏈接:https://dzone.com/articles/design-considerations-for-cloud-native-data-system

譯者介紹:

盧鑫旺,51CTO社區編輯,編程語言愛好者,對數據庫,架構,云原生有濃厚興趣。?

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2023-07-10 15:47:05

2022-06-23 07:34:58

云原生數據庫

2023-10-25 16:31:50

云原生數據治理

2022-05-09 11:57:39

云原生實踐安全

2022-02-22 07:40:10

邊緣計算云原生中心云

2020-11-23 18:58:53

云原生遷移平臺

2013-07-08 09:49:23

2024-02-27 07:27:58

云原生推薦系統架構云原生技術棧

2021-07-07 17:26:20

云原生云原生架構阿里云

2021-08-09 21:02:02

云原生規模化演進

2022-06-24 09:38:43

數據庫大數據

2021-07-07 10:43:40

云計算數據架構數據分析

2022-07-08 09:02:07

云原生軟件供應鏈

2024-10-25 10:48:42

云原生云計算

2021-07-13 07:52:03

云原生彈性模式

2015-05-06 15:41:22

大數據服務HDFS云計算

2022-03-07 10:27:21

云原生云計算數據庫

2023-01-26 00:18:53

云原生數據庫云資源

2017-04-06 14:16:37

SOA云平臺架構

2022-03-15 10:20:00

云原生系統實踐
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日爽| 国产美女视频黄a视频免费 国产精品福利视频 | 一级免费毛片 | 欧美成人激情 | 7777奇米影视 | 最新中文在线视频 | 日韩成人免费 | 日韩一级免费电影 | 国产精品婷婷 | 97视频在线观看免费 | 欧美自拍视频 | 99re超碰| 亚洲在线高清 | 91大片| 黄网免费看| 中文字幕在线观看第一页 | 国产精品久久久久久中文字 | 综合激情av | 国产午夜视频 | 欧美亚州综合 | 国产成人免费 | 中文字幕欧美一区 | 中文字幕一区二区三区精彩视频 | 国产日韩精品一区二区三区 | 成人午夜视频在线观看 | 国产精品日产欧美久久久久 | 国产精品国产精品国产专区不卡 | 国产精品视频网 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 亚洲444kkkk在线观看最新 | www.日韩| 日韩欧美一区二区三区四区 | 国产资源网| 成人在线免费视频 | 天天干夜夜 | 国产女人与拘做受免费视频 | 久久久久国产精品一区二区 | 这里只有精品99re | 国内精品久久久久久久 | 国产影音先锋 | 欧美日韩国产中文字幕 |