<nobr id="lbrxn"><delect id="lbrxn"></delect></nobr>
<menuitem id="lbrxn"></menuitem>
<menuitem id="lbrxn"><delect id="lbrxn"><i id="lbrxn"></i></delect></menuitem>

<span id="lbrxn"></span><b id="lbrxn"><delect id="lbrxn"><th id="lbrxn"></th></delect></b>

      <menuitem id="lbrxn"><thead id="lbrxn"></thead></menuitem>

      <menuitem id="lbrxn"><delect id="lbrxn"><th id="lbrxn"></th></delect></menuitem>
        掃一掃
        關注微信公眾號

        云原生數據系統的設計考慮
        2023-07-12    今日頭條

          當涉及設計云原生數據系統時,并沒有特定的托管基礎設施、編程語言或設計模式是您應該使用的。云原生系統有各種不同的規模和形式。然而,確實存在大多數遵循相同云原生設計原則的系統。讓我們來看一下云原生架構、您應該記住的設計原則以及構成一個良好的云原生平臺的特點。

          云原生架構云原生架構本質上是為云端構建的應用程序的設計模式。雖然沒有特定的實現方式或預定義的云原生設計,但最常見的方法是將應用程序拆分成多個微服務,讓每個微服務處理不同的功能。每個微服務由一個小團隊維護,并通常部署為容器。

          擁抱微服務云原生設計和開發依賴于松散耦合的架構,在該架構中,應用程序的不同部分是獨立開發、操作和部署的。通常通過使用微服務來實現這一點。

          微服務可以說是云原生系統的基礎,通過使用容器,您可以將運行時環境及其庫、二進制文件和依賴關系壓縮為一個邏輯和易于管理的單元,從而獲得實際好處。因此,應用服務可以根據需要存儲、復制、傳輸和使用。

          與單體應用程序不同,微服務由小的獨立服務組成。

          使用微服務(或松散耦合的架構)對于云計算來說是重要的,原因有很多。例如,它促進了簡化、可擴展性和彈性。讓我們更詳細地看一下為什么會這樣。

          通過這種架構,您可以將復雜的應用程序分解為較小的獨立部分,使應用程序開發周期簡單并易于管理。更不用說,將應用程序配置和基礎代碼分離也使應用程序的開發和維護更加容易。同樣,將核心應用程序與后端服務分離允許代碼庫以自己的步調演變和擴展。

          而且,相較于整個單體應用程序,擴展或縮減一個應用程序的個別部分更容易(也更快)。同樣,由于只需更新需要更改的部分(或微服務),而不是再次部署新的更新版本的整個應用程序,所以更新應用程序更加容易。

          擁抱微服務還增加了韌性,使應用程序更可靠。如果微服務架構中的一個組件失敗,整個應用程序不會崩潰。它還促進了基礎設施即代碼(InfrastructureasCode),從而為自動化部署鋪平了道路。最后,微服務架構通過API使用無狀態進程和組件,將每個微服務與其他服務隔離開來,從而實現更好的安全性和效率。

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

          一切都作為代碼雖然使用微服務從現代應用程序中獲益很重要,但采用自動化實踐也同樣重要。它的目的是優化應用程序開發流程,使開發人員和用戶都能受益。為此,最終目標是實現EaC-一切作為代碼。將EaC視為IaC的進一步步驟,其中包括應用程序代碼庫、基礎架構和平臺。

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

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

          可擴展性可擴展性的理念是為了能夠增加應用程序和相關服務的額外容量,以處理需求和負載的增加。尤其是在設計可擴展性時,應考慮每個應用程序層、如何進行擴展以及如何避免瓶頸的問題。

          在這種背景下,有三個關鍵方面需要考慮:容量、負載和數據。

          在容量方面,需要考慮是否需要擴展各個層,并且在不影響應用程序可用性的情況下是否可以進行擴展。還需要考慮服務的快速擴展速度,并且在非工作時間是否可以縮小應用程序的規模而不影響運營。


          在數據方面,需要考慮您是否可以進行擴展,并記住服務的約束條件,比如事務吞吐量和數據庫大小。找出如何對數據進行分區以進一步提高可擴展性,同時在平臺限制內實現。同樣,您需要找出如何有效和高效地使用平臺資源。

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

          確??蓴U展性的一種方法是創建可隨時進行擴展、修復和部署的自動化流程。您可以設置系統以生成有意義的日志(從而產生事件),然后將其用作執行不同自動化活動的鉤子。生成的系統應能夠自動配置基礎設施,如機器實例,構建、測試和部署CI/CD管道中的不同階段,并處理動態擴展、健康監控和備份。

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

          可用性可用性指的是在底層操作系統、硬件、網絡依賴或應用程序本身的故障情況下,系統仍能對用戶有用的能力。重要的原則包括性能、可用時間、災難恢復和復制。

          在性能方面,您需要定義可接受的性能水平,如何衡量它們以及當性能低于可接受水平時觸發的操作或事件。還需要確定最可能引起問題的應用程序部分,以及隊列中心化設計或自動縮放是否有助于解決這些問題。此外,您還需要確定使云原生系統的某些部分異步化是否有助于提高性能。

          可用性保證也是需要考慮的重要因素。特別是需要定義產品應滿足的服務級別協議(SLAs),以及您選擇的云服務是否能夠達到這些協議。同時,在災難恢復方面,需要確定在系統故障的情況下如何重新構建基于云的系統,以及在這種情況下您能承受多少數據丟失。您還需要確定在系統故障的情況下如何處理備份、傳輸隊列和消息,并確定虛擬機鏡像存儲的位置以及是否有備份。

          最后,在復制方面,您需要確定系統中存在哪些高風險故障部分,以及哪些部分會受到故障的最大影響。此外,確定是否需要數據復制,以及如何防止復制損壞的數據。

          安全性云原生數據系統的安全性是一個相當廣泛的話題,涉及許多內容。但最重要的是,您需要弄清楚以下幾點:

          數據所在地的法律管轄權和法律規定,包括指標和故障轉移數據存儲的國家。如果您使用混合云應用程序,您如何保護云與企業網絡之間的鏈接。是否存在應滿足聯合安全性的任何要求。如何控制對云提供商管理門戶的訪問,處理密碼更改并限制對數據庫的訪問。如何處理供應商和操作系統的安全更新和補丁??晒芾硇钥晒芾硇允侵咐斫庀到y性能和健康狀況以及管理運維的能力。在云方面,我們需要考慮兩個原則-部署和監控。

          在部署方面,您需要考慮幾個問題。例如,考慮如何自動化部署以及如何在不影響實時系統的情況下進行修補或重新部署。還要考慮如何檢查部署是否成功,并在部署失敗時如何回滾。類似地,部署還涉及確定所需的環境數量以及它們所需的存儲空間和可用性。

          與此同時,在監控方面,您需要計劃如何監控應用程序(是否使用現成的服務還是自行開發?)以及在物理上存儲監控數據的位置。您還需要確定監控計劃將產生多少數據以及如何訪問指標日志。同樣,詢問自己是否可以承受一些日志數據的丟失,并在運行時是否需要更改監控級別。


          可行性最后,可行性包括在時間和預算限制下維護和交付系統的能力。對于這一原則,您需要考慮以下幾點:

          是否可能滿足服務級別協議?例如,是否有云提供商保證您需要向客戶提供的可用性?您是否擁有內部構建云應用程序所需的必要經驗和技能,或者是否需要將其交給第三方?您可以接受什么樣的權衡,并在復雜的云提供商定價中可以花多少資金用于運營成本?良好的云原生數據平臺特征現在,您已經了解了制作云原生平臺時應牢記的原則和架構考慮因素?,F在讓我們看看一個優秀平臺應該提供的一些更多功能。設計良好的云原生平臺的優勢。

          良好設計的云原生平臺的優勢(來源)

          成本效益毫無疑問,完全托管的云服務與自行管理的本地服務之間存在很大差異。然而,前者的彈性和大多數云平臺的按需付費模式使得可以以最低的資源(同時也是成本)浪費來運行適當規模的系統。

          這意味著您不需要擔心為未使用的資源支付額外費用,甚至不需要進行容量規劃。此外,由于云平臺的多租戶性質,服務提供商可以以比自行管理服務更低的成本定價他們的服務。

          按使用量付費如上所述,大多數云平臺采用按使用量付費模式,這意味著您只需為實際使用的資源付費,而不是根據預配置的資源來支付費用。這些資源既可以是高級別的(如API請求和響應),也可以是低級別的(如內存或CPU使用率)。因此,與本地數據相比,您無需為可能根本不使用的許可核心支付費用。


          彈性和可擴展性良好的云原生平臺還包括可以通過簡單的API調用或單擊進行自動縮放的服務。如果平臺可以根據定義的策略自動縮放服務,那將更好。由于預先管理的容量規劃和彈性縮放,只有在極端情況下才會暴露可擴展性限制。

          可用性高效的云原生平臺也具有高可用性,并設計為處理大多數故障。大多數平臺提供至少99.95%的服務級別協議,這意味著一年中的停機時間不超過4.5小時,但實際上,您可以期望更高的可用性。

          多租戶多租戶有兩個好處-可管理性和規模經濟-大多數云原生服務從中受益。您可以通過像S3這樣的服務提供最佳用戶體驗,它以查詢或請求的方式提供服務,而所有租戶都經過良好的隔離,用戶不知道其他租戶也使用同一物理系統。

          是的,在某些情況下,用戶確實需要購買專用的計算資源,如內存和CPU(AWSAurora就是這種情況),但底層基礎設施,如存儲和網絡,仍然共享。

          性能優化最后,為了能夠處理不同類型的客戶工作負載,您的系統應該在多個維度上具有可擴展性。約束條件應在整個基礎架構中得到對齊和優化,包括硬件、操作系統和應用程序。此外,在托管系統的情況下,應該有與生產環境之間的緊密反饋機制。系統還應具備分析和從不同的可擴展性和性能相關事件中學習的能力,并推出改進措施以優化性能。

        熱詞搜索:云原生 數據系統

        上一篇:人工智能如何改善網絡安全 <譯文>
        下一篇:最后一頁

        分享到: 收藏
        很色的网站(胸)|午夜剧场无码一级在线观看|亚洲中文字幕视频无线|无码国产在线啊v

        <nobr id="lbrxn"><delect id="lbrxn"></delect></nobr>
        <menuitem id="lbrxn"></menuitem>
        <menuitem id="lbrxn"><delect id="lbrxn"><i id="lbrxn"></i></delect></menuitem>

        <span id="lbrxn"></span><b id="lbrxn"><delect id="lbrxn"><th id="lbrxn"></th></delect></b>

            <menuitem id="lbrxn"><thead id="lbrxn"></thead></menuitem>

            <menuitem id="lbrxn"><delect id="lbrxn"><th id="lbrxn"></th></delect></menuitem>