自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

云原生架構(gòu)概述 不了解你就OUT了

云計(jì)算 云原生
本文主要是對(duì)云原生的概述。云原生應(yīng)用的三大特征:容器化封裝、動(dòng)態(tài)管理、面向微服務(wù)。首先由CNCF組織介紹了云原生的概念,然后分別對(duì)這三個(gè)特征進(jìn)行詳述。

1. 什么是云原生

1.1 CNCF組織

在講云原生之前,我們先了解一下CNCF,即云原生計(jì)算基金會(huì),2015年由谷歌牽頭成立,基金會(huì)成員目前已有一百多企業(yè)與機(jī)構(gòu),包括亞馬遜、微軟。思科等巨頭。

目前CNCF所托管的應(yīng)用已達(dá)14個(gè),下圖為其公布的Cloud Native Landscape,給出了云原生生態(tài)的參考體系。

云原生架構(gòu)概述
Cloud Native Landscape

1.2 云原生

CNCF給出了云原生應(yīng)用的三大特征:

  1. 容器化封裝:以容器為基礎(chǔ),提高整體開發(fā)水平,形成代碼和組件重用,簡(jiǎn)化云原生應(yīng)用程序的維護(hù)。在容器中運(yùn)行應(yīng)用程序和進(jìn)程,并作為應(yīng)用程序部署的獨(dú)立單元,實(shí)現(xiàn)高水平資源隔離。
  2. 動(dòng)態(tài)管理:通過集中式的編排調(diào)度系統(tǒng)來動(dòng)態(tài)的管理和調(diào)度。
  3. 面向微服務(wù):明確服務(wù)間的依賴,互相解耦。

云原生包含了一組應(yīng)用的模式,用于幫助企業(yè)快速,持續(xù),可靠,規(guī)模化地交付業(yè)務(wù)軟件。云原生由微服務(wù)架構(gòu),DevOps 和以容器為代表的敏捷基礎(chǔ)架構(gòu)組成。

這邊引用網(wǎng)上關(guān)于云原生所需要的能力和特征總結(jié),如下圖。

云原生架構(gòu)概述
云原生所需要的能力和特征

1.3 The Twelve Factors

12-Factors經(jīng)常被直譯為12要素,也被稱為12原則,12原則由公有云PaaS的先驅(qū)Heroku于2012年提出(https://12factor.net/),目的是告訴開發(fā)者如何利用云平臺(tái)提供的便利來開發(fā)更具可靠性和擴(kuò)展性、更加易于維護(hù)的云原生應(yīng)用。具體如下:

  • 基準(zhǔn)代碼
  • 顯式聲明依賴關(guān)系
  • 在環(huán)境中存儲(chǔ)配置
  • 把后端服務(wù)當(dāng)作附加資源
  • 嚴(yán)格分離構(gòu)建、發(fā)布和運(yùn)行
  • 無狀態(tài)進(jìn)程
  • 通過端口綁定提供服務(wù)
  • 通過進(jìn)程模型進(jìn)行擴(kuò)展
  • 快速啟動(dòng)和優(yōu)雅終止
  • 開發(fā)環(huán)境與線上環(huán)境等價(jià)
  • 日志作為事件流
  • 管理進(jìn)程

另外還有補(bǔ)充的三點(diǎn):

  • API聲明管理
  • 認(rèn)證和授權(quán)
  • 監(jiān)控與告警

距離12原則的提出已有五年多,12原則的有些細(xì)節(jié)可能已經(jīng)不那么跟得上時(shí)代,也有人批評(píng)12原則的提出從一開始就有過于依賴Heroku自身特性的傾向。不過不管怎么說,12原則依舊是業(yè)界最為系統(tǒng)的云原生應(yīng)用開發(fā)指南。

2. 容器化封裝

最近幾年Docker容器化技術(shù)很火,經(jīng)常在各種場(chǎng)合能夠聽到關(guān)于Docker的分享。Docker讓開發(fā)工程師可以將他們的應(yīng)用和依賴封裝到一個(gè)可移植的容器中。Docker背后的想法是創(chuàng)建軟件程序可移植的輕量容器,讓其可以在任何安裝了Docker的機(jī)器上運(yùn)行,而不用關(guān)心底層操作系統(tǒng)。

Docker可以解決虛擬機(jī)能夠解決的問題,同時(shí)也能夠解決虛擬機(jī)由于資源要求過高而無法解決的問題。其優(yōu)勢(shì)包括:

  • 隔離應(yīng)用依賴
  • 創(chuàng)建應(yīng)用鏡像并進(jìn)行復(fù)制
  • 創(chuàng)建容易分發(fā)的即啟即用的應(yīng)用
  • 允許實(shí)例簡(jiǎn)單、快速地?cái)U(kuò)展
  • 測(cè)試應(yīng)用并隨后銷毀它們

自動(dòng)化運(yùn)維工具可以降低環(huán)境搭建的復(fù)雜度,但仍然不能從根本上解決環(huán)境的問題。在看似穩(wěn)定而成熟的場(chǎng)景下,使用Docker的好處越來越多。

3. 服務(wù)編排

筆者看到Jimmy Song對(duì)云原生架構(gòu)中運(yùn)用服務(wù)編排的總結(jié)是:

Kubernetes——讓容器應(yīng)用進(jìn)入大規(guī)模工業(yè)生產(chǎn)。

這個(gè)總結(jié)確實(shí)很貼切。編排調(diào)度的開源組件還有:Kubernetes、Mesos和Docker Swarm。

Kubernetes是目前世界上關(guān)注度最高的開源項(xiàng)目,它是一個(gè)出色的容器編排系統(tǒng)。Kubernetes出身于互聯(lián)網(wǎng)行業(yè)的巨頭Google公司,它借鑒了由上百位工程師花費(fèi)十多年時(shí)間打造Borg系統(tǒng)的理念,通過極其簡(jiǎn)易的安裝,以及靈活的網(wǎng)絡(luò)層對(duì)接方式,提供一站式的服務(wù)。

Mesos則更善于構(gòu)建一個(gè)可靠的平臺(tái),用以運(yùn)行多任務(wù)關(guān)鍵工作負(fù)載,包括Docker容器、遺留應(yīng)用程序(例如Java)和分布式數(shù)據(jù)服務(wù)(例如Spark、Kafka、Cassandra、Elastic)。Mesos采用兩級(jí)調(diào)度的架構(gòu),開發(fā)人員可以很方便的結(jié)合公司業(yè)務(wù)場(chǎng)景自定制MesosFramework。

他們?yōu)樵圃鷳?yīng)用提供的強(qiáng)有力的編排和調(diào)度能力,它們是云平臺(tái)上的分布式操作系統(tǒng)。在單機(jī)上運(yùn)行容器,無法發(fā)揮它的最大效能,只有形成集群,才能最大程度發(fā)揮容器的良好隔離、資源分配與編排管理的優(yōu)勢(shì),而對(duì)于容器的編排管理,Swarm、Mesos和Kubernetes的大戰(zhàn)已經(jīng)基本宣告結(jié)束,Kubernetes成為了無可爭(zhēng)議的贏家。

4. 微服務(wù)架構(gòu)

傳統(tǒng)的Web開發(fā)方式,一般被稱為單體架構(gòu)(Monolithic)所有的功能打包在一個(gè)WAR包里,基本沒有外部依賴(除了容器),部署在一個(gè)JEE容器(Tomcat,JBoss,WebLogic)里,包含了DO/DAO,Service,UI等所有邏輯。其架構(gòu)如下圖所示。

 

云原生架構(gòu)概述 不了解你就OUT了

傳統(tǒng)的單體架構(gòu)

 

單體架構(gòu)進(jìn)行演化升級(jí)之后,過渡到SOA架構(gòu),即面向服務(wù)架構(gòu)。近幾年微服務(wù)架構(gòu)(Micro-Service Archeticture)是最流行的架構(gòu)風(fēng)格,旨在通過將功能模塊分解到各個(gè)獨(dú)立的子系統(tǒng)中以實(shí)現(xiàn)解耦,它并沒有一成不變的規(guī)定,而是需要根據(jù)業(yè)務(wù)來做設(shè)計(jì)。微服務(wù)架構(gòu)是對(duì)SOA的傳承,是SOA的具體實(shí)踐方法。微服務(wù)架構(gòu)中,每個(gè)微服務(wù)模塊只是對(duì)簡(jiǎn)單、獨(dú)立、明確的任務(wù)進(jìn)行處理,通過REST API返回處理結(jié)果給外部。在微服務(wù)推廣實(shí)踐角度來看,微服務(wù)將整個(gè)系統(tǒng)進(jìn)行拆分,拆分成更小的粒度,保持這些服務(wù)獨(dú)立運(yùn)行,應(yīng)用容器化技術(shù)將微服務(wù)獨(dú)立運(yùn)行在容器中。過去設(shè)計(jì)架構(gòu)時(shí),是在內(nèi)存中以參數(shù)或?qū)ο蟮姆绞綄?shí)現(xiàn)粒度細(xì)化。微服務(wù)使用各個(gè)子服務(wù)控制模塊的思想代替總線。不同的業(yè)務(wù)要求,服務(wù)控制模塊至少包含服務(wù)的發(fā)布、注冊(cè)、路由、代理功能。

容器化的出現(xiàn),一定程度上帶動(dòng)了微服務(wù)架構(gòu)。架構(gòu)演化從單體式應(yīng)用到分布式,再從分布式架構(gòu)到云原生架構(gòu),微服務(wù)在其中有著不可或缺的角色。微服務(wù)帶給我們很多開發(fā)和部署上的靈活性和技術(shù)多樣性,但是也增加了服務(wù)調(diào)用的開銷、分布式系事務(wù)、調(diào)試與服務(wù)治理方面的難題。

 

云原生架構(gòu)概述 不了解你就OUT了

Spring Cloud整體架構(gòu)圖

 

從上圖Spring Cloud組件的架構(gòu)可以看出在微服務(wù)架構(gòu)中所必須的組件,包括:服務(wù)發(fā)現(xiàn)與注冊(cè)、熔斷機(jī)制、路由、全局鎖、中心配置管理、控制總線、決策競(jìng)選、分布式會(huì)話和集群狀態(tài)管理等基礎(chǔ)組件。

 

云原生架構(gòu)概述 不了解你就OUT了

Spring Cloud VS Kubernetes

 

Spring Cloud和Kubernetes有很大的不同,Spring Cloud和Kubernetes處理了不同范圍的微服務(wù)架構(gòu)技術(shù)點(diǎn),而且是用了不同的方法。Spring Cloud方法是試圖解決在JVM中的微服務(wù)架構(gòu)要點(diǎn),而Kubernetes方法是試圖讓問題消失,為開發(fā)者在平臺(tái)層解決。Spring Cloud在JVM中非常強(qiáng)大,Kubernetes管理那些JVM很強(qiáng)大??雌饋砀魅∷L,充分利用這兩者的優(yōu)勢(shì)是自然而然的趨勢(shì)了。

5. 總結(jié)

技術(shù)架構(gòu)的演變非常快,各種新的名詞也是層出不窮。本文主要是對(duì)云原生的概述。云原生應(yīng)用的三大特征:容器化封裝、動(dòng)態(tài)管理、面向微服務(wù)。首先由CNCF組織介紹了云原生的概念,然后分別對(duì)這三個(gè)特征進(jìn)行詳述。云原生架構(gòu)是當(dāng)下很火的討論話題,是不同思想的集合,集目前各種熱門技術(shù)之大成。

責(zé)任編輯:未麗燕 來源: DockOne
相關(guān)推薦

2016-03-01 09:12:35

IBM認(rèn)知論壇認(rèn)知IBM

2019-11-21 15:08:13

DevOps云計(jì)算管理

2021-07-12 07:01:39

AST前端abstract sy

2019-10-30 09:25:58

NginxApache 服務(wù)器

2015-06-05 09:52:41

公有云風(fēng)險(xiǎn)成本

2011-03-29 15:44:41

對(duì)日軟件外包

2023-02-12 21:54:32

架構(gòu)AI元宇宙

2019-04-03 09:10:35

Rediskey-value數(shù)據(jù)庫

2010-08-19 10:12:34

路由器標(biāo)準(zhǔn)

2020-12-08 13:10:24

微信支付寶數(shù)字人民幣

2013-11-11 10:07:43

靜態(tài)路由配置

2018-07-16 09:00:32

LinuxBash數(shù)組

2017-03-13 17:25:00

移動(dòng)支付技術(shù)支撐易寶

2019-08-07 17:18:18

云計(jì)算云原生函數(shù)

2019-05-14 14:51:40

Java語法糖用法

2023-02-16 07:38:38

非機(jī)械鍵電路薄膜,

2020-11-30 06:27:35

Java泛型Object

2020-09-16 07:59:40

數(shù)組內(nèi)存

2020-04-20 10:55:57

大數(shù)據(jù)人工智能技術(shù)

2017-11-17 18:43:38

云技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)