偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

理解什么是云原生和云原生應(yīng)用的十二要素

云計(jì)算 云原生
對(duì)于很多小公司來(lái)說(shuō)完全沒(méi)必要自建一套基礎(chǔ)設(shè)施,直接采用云廠商提供的能力就好,從而快速實(shí)現(xiàn)自身業(yè)務(wù)的發(fā)展,畢竟小公司活下去才是最重要的,沒(méi)必要在這種事情上面浪費(fèi)時(shí)間和精力。

云原生這個(gè)詞相信大家都不陌生,那如果要問(wèn)你,到底什么是云原生,該怎么回答呢?

云原生

云原生計(jì)算基金會(huì) CNCF 在他們的官網(wǎng)上給出的解釋是這樣的。

云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動(dòng)態(tài)環(huán)境中構(gòu)建和運(yùn)行可彈性擴(kuò)展的應(yīng)用。云原生的代表技術(shù)包括容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式 API。

這些技術(shù)能夠構(gòu)建容錯(cuò)性好、易于管理和便于觀察的松耦合系統(tǒng)。結(jié)合可靠的自動(dòng)化手段,云原生技術(shù)使工程師能夠輕松地對(duì)系統(tǒng)作出頻繁和可觀測(cè)的重大變更。

其實(shí)上面的定義講了這么多,對(duì)應(yīng)什么是云原生還是很模糊的,不過(guò)從上面的定義中我們可以得到幾個(gè)關(guān)鍵的信息

  1. 云原生應(yīng)用是需要部署在云環(huán)境中的,但是反過(guò)來(lái)部署在云環(huán)境中的應(yīng)用并不一定是云原生應(yīng)用。
  2. 云原生應(yīng)用具備一定的可擴(kuò)展性、容錯(cuò)性和可觀察性;
  3. 云原生不是一種技術(shù)或者框架,而是一種思想;

這個(gè)也比較好理解,早期的時(shí)候如果一個(gè)公司想要上線應(yīng)用或者服務(wù),需要自己購(gòu)買機(jī)器部署機(jī)房,然后才能在機(jī)房的服務(wù)器中部署自己的應(yīng)用,這種肯定不是云原生,畢竟連云都還沒(méi)有上。

后面漸漸的很多云廠商起來(lái)了,提供了云環(huán)境,這個(gè)時(shí)候大家如果要部署應(yīng)用就不再需要自建機(jī)房了,只需要在云廠商那里購(gòu)買對(duì)應(yīng)數(shù)據(jù)中心的服務(wù)器就行,就可以部署應(yīng)用了,但是到這里只能說(shuō)我們的應(yīng)用上云了,我們的應(yīng)用還并不是云原生應(yīng)用。

這也是我們上面提到的應(yīng)用部署到了云環(huán)境上面,并不是代表就是云原生應(yīng)用的,因?yàn)檫@個(gè)時(shí)候我們的應(yīng)用并沒(méi)有充分利用云廠商的能力,同時(shí)也不具備擴(kuò)展性、容錯(cuò)性和可觀察性。

十二要素應(yīng)用

前面介紹了什么是云原生,現(xiàn)在說(shuō)下什么是十二要素應(yīng)用。十二要素應(yīng)用的提出是知名的 PasS 平臺(tái) Heroku 的 CTO Adam Wiggins 提出的,原本說(shuō)的是云上運(yùn)行的應(yīng)用需要遵守的 12 條最佳實(shí)踐,不過(guò)它也同樣適用于云原生應(yīng)用。

1、基準(zhǔn)代碼

基準(zhǔn)代碼說(shuō)的是在我們?nèi)粘i_(kāi)發(fā)和部署的時(shí)候,可能會(huì)有很多個(gè)環(huán)境,比如開(kāi)發(fā),測(cè)試,線上等,我們需要是同一份基準(zhǔn)代碼。不過(guò)這里主要強(qiáng)調(diào)的還是線上,因?yàn)槲覀冊(cè)圃鷳?yīng)用的部署是隨時(shí)隨地都可以動(dòng)態(tài)擴(kuò)展的,這就要保證我們線上的環(huán)境都是基于一份基準(zhǔn)代碼來(lái)進(jìn)行部署,實(shí)現(xiàn)一套代碼多份部署。

這點(diǎn)也很好理解,跟我們的分布式架構(gòu)一樣,也是同一份代碼部署多個(gè)實(shí)例。

2、聲明式依賴

聲明式依賴說(shuō)的是我們要顯示聲明依賴關(guān)系,現(xiàn)在有很多依賴管理工具,比如說(shuō)我們的 Java 項(xiàng)目就會(huì)有 maven 和 gradle,其他語(yǔ)言的項(xiàng)目也會(huì)有其他的包管理工具。

除了我們開(kāi)發(fā)中需要的類庫(kù)的依賴需要顯示之外,如果還需要依賴系統(tǒng)級(jí)別的工具或者庫(kù),我們也需要進(jìn)行聲明式的依賴,不能隱式依賴,這是因?yàn)樵谠圃沫h(huán)境下,我們都是基于容器來(lái)部署應(yīng)用的,如果不顯示的將這些依賴聲明出來(lái),我們是不能創(chuàng)建出一模一樣的容器鏡像,這可能會(huì)導(dǎo)致服務(wù)不可用。

3、配置管理

一個(gè)應(yīng)用如果想要正常的啟動(dòng),除了代碼沒(méi)問(wèn)題之外還要有正確的配置才行,對(duì)于云原生應(yīng)用來(lái)說(shuō)也是一樣的。我們要做到不同的環(huán)境對(duì)于不同的配置,如果環(huán)境是一樣的,配置也需要是一樣的。并且要求我們的配置必須是和代碼分開(kāi)的,這也是很好理解的,畢竟我們一份應(yīng)用代碼要多環(huán)境部署,如果配置一樣那是沒(méi)有辦法部署的。

對(duì)于配置的管理可以用一些中間件,比如 Diamond 或者其他的一些配置中心來(lái)管理,配置中心可以實(shí)現(xiàn)配置的實(shí)時(shí)變更和推送,很方便我們進(jìn)行管理和變更。

4、后端服務(wù)

這里的后端服務(wù)更多說(shuō)的是我們應(yīng)用依賴的一些下游服務(wù)、組件服務(wù)、中間件服務(wù),比如消息隊(duì)列、數(shù)據(jù)庫(kù)、緩存、調(diào)度平臺(tái)等。云原生應(yīng)用要求我們把這些后端服務(wù)都要當(dāng)成資源來(lái)調(diào)用,并且這些資源也要符合云原生應(yīng)用的規(guī)范,也就是能隨時(shí)動(dòng)態(tài)擴(kuò)展。

5、構(gòu)建、發(fā)布、運(yùn)行

云原生應(yīng)用要求我們嚴(yán)格將應(yīng)用的構(gòu)建、發(fā)布和運(yùn)行進(jìn)行隔離。應(yīng)用的這幾個(gè)過(guò)程是每次需求迭代過(guò)后上線的必經(jīng)過(guò)程,并且這幾個(gè)步驟是按照這個(gè)順序進(jìn)行的,也就是說(shuō)不存在還沒(méi)構(gòu)建就進(jìn)行發(fā)布,這個(gè)很好理解。對(duì)于我們 Java 應(yīng)用來(lái)說(shuō),構(gòu)建就是將源代碼進(jìn)行編譯和打包,在構(gòu)建階段如果不通過(guò)是不會(huì)進(jìn)行下一步的。

應(yīng)用構(gòu)建的時(shí)候如果缺少依賴或者有編譯錯(cuò)誤都會(huì)終止構(gòu)建;發(fā)布則是將我們編譯好的 Jar 包或者其他形式和配置文件一起進(jìn)行部署到指定環(huán)境的容器中;運(yùn)行則是將需要發(fā)布的內(nèi)容進(jìn)行啟動(dòng),這個(gè)時(shí)候如果我們的配置有問(wèn)題有可能會(huì)導(dǎo)致應(yīng)用啟動(dòng)不了。

6、進(jìn)程

云原生應(yīng)用要求我們的應(yīng)用是無(wú)狀態(tài)的,這個(gè)也很好理解,畢竟云原生是隨時(shí)可擴(kuò)展的,那就必須要求我們的應(yīng)用是無(wú)狀態(tài)的,這就要求我們?cè)陂_(kāi)發(fā)的時(shí)候就要注意不要在代碼中使用一些需要狀態(tài)的邏輯。比如定時(shí)任務(wù) scheduled 這種,會(huì)導(dǎo)致每個(gè)實(shí)例都會(huì)定時(shí)運(yùn)行,可能會(huì)產(chǎn)生問(wèn)題,可以采用類似于 XXL-JOB 這種分布式調(diào)度平臺(tái)。

7、端口綁定

應(yīng)用通過(guò)綁定端口來(lái)提供服務(wù),這一點(diǎn)可能有些小伙伴不理解,因?yàn)楝F(xiàn)在大部分情況下我們已經(jīng)是這樣做的了,之所以提出這一點(diǎn)是為了避免在應(yīng)用中使用進(jìn)程通信。

8、并發(fā)

要求在高并發(fā)的時(shí)候支持通過(guò)進(jìn)程擴(kuò)展,也就是要求我們的應(yīng)用是無(wú)狀態(tài),能通過(guò)更多的進(jìn)程部署來(lái)實(shí)現(xiàn)擴(kuò)展。這一點(diǎn)也很好理解,跟我們前面提到的無(wú)狀態(tài)也是有關(guān)聯(lián)的。

9、易處理

所謂易處理說(shuō)的是我們的云原生應(yīng)用應(yīng)該具備快速啟動(dòng)和優(yōu)雅終止的能力,因?yàn)榈脑圃h(huán)境要求具有彈性擴(kuò)容的能力,那就需要我們的應(yīng)用能夠快速的啟動(dòng)和結(jié)束。

快速啟動(dòng)可以讓我們的應(yīng)用更快的提供服務(wù),更快的滿足彈性伸縮的要求,而優(yōu)雅的終止也是為了避免在應(yīng)用關(guān)閉的時(shí)候還存在任務(wù)或者流量訪問(wèn)。

10、開(kāi)發(fā)環(huán)境與線上環(huán)境等價(jià)

此外我們需要盡量的保持開(kāi)發(fā)環(huán)境、預(yù)發(fā)環(huán)境以及線上云原生環(huán)境相同,當(dāng)然這里的相同只是是盡可能的保持相同,同樣的環(huán)境能保證我們實(shí)現(xiàn)的功能不會(huì)因?yàn)榄h(huán)境問(wèn)題而出現(xiàn)不可用的情況。但是要知道因?yàn)橐恍┵Y源的問(wèn)題,開(kāi)發(fā)環(huán)境、預(yù)發(fā)環(huán)境跟線上環(huán)境是不會(huì)完全一樣的。

11、日志

云原生要求我們把日志當(dāng)成事件流,同樣是因?yàn)樵圃h(huán)境應(yīng)用的實(shí)例個(gè)數(shù)隨時(shí)都在發(fā)生著變化,每個(gè)實(shí)例時(shí)時(shí)刻刻都會(huì)產(chǎn)生日志,我們不能說(shuō)在每臺(tái)實(shí)例上面查看日志,所以我們要把日志統(tǒng)一收集和采集到特定的日志系統(tǒng)中。這一點(diǎn)其實(shí)在分布式系統(tǒng)里面也是一樣的,一般會(huì)通過(guò) ELK 技術(shù),將日志進(jìn)行存儲(chǔ)和分析。

12、管理進(jìn)程

最后一條這個(gè)管理進(jìn)程指的是將后臺(tái)管理系統(tǒng)的任務(wù)當(dāng)成是一次性的進(jìn)程進(jìn)行執(zhí)行,其實(shí)這一點(diǎn)不算是普適的要素,跟具體的后臺(tái)系統(tǒng)功能有關(guān),這里就不討論了。

總結(jié)

上面提到了什么是云原生以及 12 條云原生應(yīng)用的要素,很多跟我們分布式系統(tǒng)的要求都是一致的,只不過(guò)云原生應(yīng)用的要求會(huì)更高一點(diǎn),更嚴(yán)格一點(diǎn),更自動(dòng)化一點(diǎn)。

從了不起的角度來(lái)看云原生應(yīng)用是目前看來(lái)最好的一種方式,對(duì)于企業(yè)或者個(gè)人來(lái)說(shuō)都是最快和成本最低的。

對(duì)于很多小公司來(lái)說(shuō)完全沒(méi)必要自建一套基礎(chǔ)設(shè)施,直接采用云廠商提供的能力就好,從而快速實(shí)現(xiàn)自身業(yè)務(wù)的發(fā)展,畢竟小公司活下去才是最重要的,沒(méi)必要在這種事情上面浪費(fèi)時(shí)間和精力。

參考

  1. 學(xué)透 Spring 從入門到項(xiàng)目實(shí)戰(zhàn)
  2. 網(wǎng)絡(luò)資料


責(zé)任編輯:武曉燕 來(lái)源: Java極客技術(shù)
相關(guān)推薦

2025-07-03 11:21:04

2022-04-25 12:39:57

云原生云計(jì)算

2021-02-05 08:42:21

云原生系統(tǒng)方式

2021-10-29 10:12:34

云原生勒索軟件網(wǎng)絡(luò)攻擊

2022-12-14 16:44:24

云原生公共云開(kāi)發(fā)

2019-08-27 16:48:07

云原生云計(jì)算微服務(wù)

2015-08-17 10:26:02

云計(jì)算云應(yīng)用程序十二要素

2017-08-14 16:14:57

云原生容器云平臺(tái)

2021-11-15 08:00:00

云原生端點(diǎn)漏洞

2015-06-30 10:32:55

云計(jì)算應(yīng)用設(shè)計(jì)十二要素

2022-08-24 16:47:01

云原生安全通信

2022-05-06 09:40:48

智能云原生云原生人工智能

2022-07-31 20:00:59

云原生云計(jì)算

2022-02-07 22:55:13

云原生數(shù)據(jù)庫(kù)技術(shù)

2021-06-23 10:58:07

云計(jì)算云原生阿里云

2018-07-12 11:48:31

微服務(wù)Service mes服務(wù)

2020-12-01 17:44:15

華為云Go語(yǔ)言云原生

2020-01-14 16:06:17

云原生混合云多云

2024-05-13 08:00:00

2022-02-21 09:00:00

云原生應(yīng)用開(kāi)發(fā)
點(diǎn)贊
收藏

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