云原生(Cloud native)

云原生(Cloud native)

一 定義

目前比較權威的定義主要來自Pivotal公司和云原生計算基金會(Cloud Native Computing Foundation,簡稱CNCF)。

1.1 Pivotal

  • 4個要點:
    DevOps持續交付微服務容器化
  • 六個特質:
    模塊化(Modularity)可觀測性(Observability)可部署性(Deployability)
    可測試性(Testability)可處理性(Disposability)可替換性(Replaceability)
  • 云原生是一個思想的集合,既包含技術(微服務,敏捷基礎設施),也包含管理(DevOps、持續交付、康威定律以及重組等),云原生是一系列云技術、企業管理方法的集合。

1.2 CNCF

  • 云原生技術有利于各組織在公有云、私有云和混合云等新型動態環境中,構建和運行可彈性擴展的應用。
  • 云原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式API。這些技術能夠構建容錯性好、易于管理和便于觀察的松耦合系統。
  • 結合可靠的自動化手段,云原生技術使工程師能夠輕松地對系統作出頻繁和可預測的重大變更。

二 技術特點

2.1 微服務架構:

云原生化倡導使用微服務架構來構建應用程序,將應用程序拆分為多個小型、獨立且可獨立部署的服務,每個服務專注于解決特定的業務功能。這樣可以提高應用程序的可擴展性、靈活性和可維護性。

2.2 容器化部署:

云原生應用程序通常使用容器技術(如Docker)進行部署,通過將應用程序及其依賴打包為容器鏡像,實現跨平臺、可移植和一致的部署。容器化還提供了隔離性和資源利用率的優勢,使應用程序能夠更高效地運行。

2.3 動態編排和自動化管理:

云原生化強調使用自動化工具和平臺(如Kubernetes)來進行應用程序的動態編排和管理,自動化地管理容器的部署、伸縮、升級和監控等操作,提高應用程序的彈性和可靠性,并減少人工操作的復雜性。

2.4 彈性伸縮:

云原生化允許應用程序根據負載情況進行彈性伸縮,通過自動化的容器編排和服務發現,動態地添加或移除容器實例,以適應不同的負載變化,提高應用程序的性能和資源利用率。

2.5 持續交付和部署:

云原生化倡導使用持續集成和持續交付(CI/CD)的方法來實現應用程序的快速交付和部署,通過自動化的構建、測試和部署流程,快速、可靠地將應用程序更新推送到生產環境,減少發布的風險和時間成本。


三 技術棧

3.1 容器化

  • 容器引擎:如Docker,是一種開源的應用容器引擎,它將應用程序及其依賴打包成標準化的容器鏡像。容器鏡像可以在任何支持Docker的環境中運行,確保應用在開發、測試和生產環境之間的一致性。
  • 容器運行時:如containerd或runc,負責容器的生命周期管理,包括容器的創建、啟動、停止、刪除等操作,以及與宿主機的資源交互。
  • 容器編排:如Kubernetes(K8s),是目前最流行的容器編排平臺,提供了一套強大的API和工具集,用于自動化容器的部署、調度、擴縮容、負載均衡、滾動升級、自我修復、服務發現、配置管理等操作。

3.2 微服務架構

  • 微服務:將大型單體應用分解為一組小型、獨立的服務,每個服務專注于單一業務功能,通過API進行交互。微服務之間通過輕量級的通信機制(如RESTful API、gRPC等)互相協作,有助于提升開發速度、降低耦合度、增強系統的可伸縮性和容錯能力。

3.3 服務間通信

  • RESTful API:
    基于HTTP協議和其各種方法(GET、POST、PUT、DELETE等),遵循資源導向的架構風格設計接口,廣泛應用于微服務間的交互。
  • gRPC:
    由Google開發的一種高性能、通用的RPC(Remote Procedure Call)框架,基于HTTP/2協議和Protocol Buffers序列化協議,適用于對性能和效率要求較高的場景。
  • 消息隊列:
    如RabbitMQ、Apache Kafka、Amazon SQS等,作為異步通信中間件,用于解耦服務、處理峰值負載、實現事件驅動架構。

3.4 服務網格

  • 服務網格技術:
    如Istio、Linkerd、Envoy等,位于服務之間,作為一層透明的基礎設施層,負責服務間的網絡通信、路由、安全、可觀測性等功能。服務網格抽象了服務間通信的復雜性,使得開發者無需在應用代碼中實現這些功能。

3.5 持續集成與持續部署(CI/CD)

  • CI/CD工具:
    如Jenkins、GitLab CI/CD、GitHub Actions、Azure DevOps等,用于自動化軟件開發的構建、測試、打包、發布和部署流程。CI/CD實踐有助于縮短迭代周期、提高軟件質量、減少人工干預帶來的錯誤。

3.6 聲明式基礎設施

  • 聲明式配置:
    使用YAML或JSON格式的配置文件來描述應用部署的目標狀態,如Kubernetes的YAML manifests。開發者只需定義期望的狀態,系統會自動處理如何達到這個狀態。
  • 基礎設施即代碼(IaC)管理工具:
    如Terraform、CloudFormation等,用于跨云平臺的基礎設施管理,實現基礎設施的版本控制、自動化部署和一致性管理。

3.7 DevOps工具鏈

  • 日志聚合:
    如ELK Stack(Elasticsearch、Logstash、Kibana)、Splunk、Datadog等,用于收集、解析、存儲、搜索、分析和可視化日志數據。
  • 監控:
    如Prometheus、Grafana、New Relic、Dynatrace等,提供系統和應用性能監控。
  • 錯誤追蹤:
    如Sentry、Bugsnag、Rollbar等,用于捕獲、分析和管理應用運行時的異常和錯誤。
  • 混沌工程:
    如Chaos Monkey、Chaos Toolkit等,通過主動在生產環境中引入故障,測試系統在異常條件下的表現和恢復能力。

3.8 無服務器計算(Serverless)

  • 無服務器服務:
    如AWS Lambda、Google Cloud Functions、Azure Functions等,允許開發者編寫和運行代碼片段(函數),無需關心底層服務器的運維,僅在函數被觸發時按需執行并計費。

四 應用場景

云原生技術在多個領域都有廣泛的應用前景,包括但不限于:

  • 大規模互聯網應用:構建高可用性、高性能和高可擴展性的互聯網應用。
  • 金融業務:提供安全、可靠、高效的應用程序開發和部署方式,提高金融業務應用的可靠性和安全性。
  • 人工智能和大數據:為AI和大數據應用提供高效、可擴展、彈性伸縮的應用程序開發和部署方式。
  • 物聯網:處理海量的傳感器數據,實現快速部署和彈性伸縮,提高物聯網應用的可靠性和可維護性。
  • 區塊鏈:為區塊鏈應用提供高效、可擴展、彈性伸縮的應用程序開發和部署方式。

以上就是云原生的全部內容,感謝閱讀!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43692.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43692.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43692.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Java后端】Service層讀取yml配置文件中內容

前言 最近寫代碼,看到別人寫的讀取application.yml配置文件中數據,寫的挺規范,挺好的;雖然之前也讀取過yml文件,但用的其他方法,沒這個規范,所以記錄下 正文 假設要讀取視頻地址,…

微信小程序切換商戶號

1.登錄微信公眾平臺小程序 2.功能->微信支付 3.關聯成功后會志一關聯商戶號列表顯示 4.登錄你需要切換的商戶號 在下面選擇你需要開通的產品服務 5.切換到賬戶中心的api安全里面 只需要改變當前下面的配置即可切換小程序的收款商戶號 申請API證書按照官方的指引即可解…

關于redis的運維面試題-2

21. Redis的客戶端連接數限制如何設置? 在Redis中,客戶端連接數的限制可以通過配置文件redis.conf來設置,也可以通過命令行直接設置。以下是如何通過配置文件和命令行來設置Redis客戶端連接數限制的步驟和示例代碼。 通過配置文件設置客戶端…

JS計算某一年的土地租金收入和土地承租支出

涉及到多年的地租 , 例如 2024年5月15日 - 2026年5月15日 , 總承包租金是60000 假設 當前年是2024年 , 則計算2024年5月15日-2024年12月31日的租金收入 , 如果是2025年則是2025年1月1日-2025年12月31日 //示例交易數據 var transactions [ { type: "轉出土地收益&qu…

怎么區分住宅IP還是機房IP?機房IP和住宅IP有哪些不同?

在網絡技術的應用中,IP地址扮演著至關重要的角色。了解IP地址的種類及其特性,對于進行網絡管理、優化網絡安全策略、以及實施數據分析等任務至關重要。本文將深入探討如何區分住宅IP和機房IP,并分析兩者的主要差異。 一、IP地址分類簡介 IP…

pytorch-RNN存在的問題

這里寫目錄標題 1. RNN存在哪些問題呢?1.1 梯度彌散和梯度爆炸1.2 RNN為什么會出現梯度彌散和梯度爆炸呢? 2. 解決梯度爆炸方法3. Gradient Clipping的實現4. 解決梯度彌散的方法 1. RNN存在哪些問題呢? 1.1 梯度彌散和梯度爆炸 梯度彌散是…

【人工智能】深度學習:神經網絡模型

【人工智能】深度學習:神經網絡模型 神經網絡基礎知識 BP神經網絡的概念 單個神經元的結構 CNN模型匯總 LeNet5 模型 AlexNet 模型 VGG模型 Inception Net(GoogleNet)模型 ResNet (殘差網絡) RNN模型&#x…

css實現漸進中嵌套漸進的方法

這是我們想要的實現效果: 思路: 1.有一個底色的背景漸變 2.需要幾個小的塊級元素做絕對定位通過漸變filter模糊來實現 注意:這里的采用的定位方法,所以在內部的元素一律要使用絕對定位,否則會出現層級的問題&…

小白攻克歌曲“無名的人”,逐句精研的歌唱訣竅

《無名的人》 作詞:唐恬 作曲:錢雷 演唱:毛不易 今天不講解練習技巧,有需要的可以查看往期文章,我給大家帶一下無名的人,練習一下情感融入。 對于眾多唱歌小白而言,學習歌曲《無名的人》是一…

ctfshow-web入門-文件上傳(web164、web165)圖片二次渲染繞過

web164 和 web165 的利用點都是二次渲染,一個是 png,一個是 jpg 目錄 1、web164 2、web165 二次渲染: 網站服務器會對上傳的圖片進行二次處理,對文件內容進行替換更新,根據原有圖片生成一個新的圖片,這樣…

【Linux】進程優先級 + 環境變量

前言 在了解進程狀態之后,本章我們將來學習一下進程優先級,還有環境變量等。。 目錄 1.進程優先級1.1 為什么要有優先級? 2.進程的其他概念2.1 競爭性與獨立性2.2 并行與并發2.3 進程間優先級的體現:2.3.1 O(1) 調度算法&#xf…

Apache Web安全分析與增強

Apache HTTP Server 概述 Apache HTTP Server(通常簡稱為Apache)是一個開源的Web服務器軟件,由Apache軟件基金會開發和維護。它是全球使用最廣泛的Web服務器之一,支持多種操作系統,包括Unix、Linux、Windows和Mac OS X。以下是Apache Web服務器的詳細概述,包括其功能特點…

數字高壓表0-30kv

最近在制作數字高壓表,自己DIY玩玩,有沒有朋友一起研究看看

SpringCloud--常用組件和服務中心

常用組件 Euroke和nacos 區別 負載均衡 負載均衡策略有哪些 自定義負載均衡策略

【Red Hat 4.6---詳細安裝Oracle 19c】---靜默方式安裝

🔻 一、安裝前規劃 規劃項:(本環境) 描述:操作系統版本Red Hat Enterprise Linux Server release 4.6 (Santiago)主機名langtest數據庫版本 Oracle 19c IP規劃10.10.10.164服務器空間要求根據實際要求數據庫名/實例名orcl數據庫塊大小oracle建庫一般設置數據庫塊大…

物業系統自主研發接口測試框架

1、自主研發框架整體設計 1.1、什么是測試框架? 在了解什么是自動化測試框架之前,先了解一下什么叫框架?框架是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法;另一種定義認為,框架是可被應用開發者定制的應用骨架…

Redis 主從復制,集群與高可用

雖然Redis可以實現單機的數據持久化,但無論是RDB也好或者AOF也好,都解決不了單點宕機問題,即一旦單臺 redis服務器本身出現系統故障、硬件故障等問題后,就會直接造成數據的丟失 此外,單機的性能也是有極限的,因此需要使用另外的技…

捷配生產筆記-細間距芯片的表面處理工藝:OSP與沉金工藝的重要性

在現代電子制造領域,隨著技術的進步,電子設備變得越來越小型化和高性能化。細間距芯片作為實現這一目標的關鍵組件,其制造工藝要求極為嚴格。在這些要求中,表面處理工藝尤為關鍵,因為它直接影響到芯片的焊接質量和長期…

江蘇云服務器適用于哪些場景?

云服務器主要是指一中基于云計算技術的虛擬化服務器,用戶能夠通過互聯網網絡進行遠程訪問和管理,與傳統的物理服務器相比較,云服務器更具有可擴展性與靈活性,所以云服務器受到越來越多的企業所使用,同時在各個領域中都…

實驗7 數據查詢(2)

一、實驗目的 學習SQL語言的定義、操縱功能熟悉通過SQL語言對數據庫進行查詢操作,包括單表查詢、多表查詢、嵌套查詢、集合查詢 二、實驗軟件 MySQL三、實驗內容和要求 給定四個關聯表,其定義和數據加載如下: 學生表 Student create tab…