聊聊什么是云原生?
本文轉(zhuǎn)載自微信公眾號「全棧碼農(nóng)畫像」,作者小碼甲。轉(zhuǎn)載本文請聯(lián)系全棧碼農(nóng)畫像公眾號。
> 一千個讀者眼里有一千個哈姆雷特,本號近半年零零散散寫了一些云原生、Devops的文章, 最近系統(tǒng)閱讀微軟Docs, 今天開始結(jié)合自己的實踐專題意譯[云原生]。
近幾年,云原生成為了軟件行業(yè)的驅(qū)動力。
這是一種構(gòu)建大型復(fù)雜系統(tǒng)的新方式,也是一種充分利用現(xiàn)代軟件開發(fā)實踐、技術(shù)和云基礎(chǔ)架構(gòu)的方法,這個方法改變了設(shè)計、實施、部署、系統(tǒng)運作的方式。
云原生系統(tǒng)被設(shè)計為擁抱快速變化、大規(guī)模和彈性。
云原生基金會提供的官方定義:
云原生技術(shù)能夠讓團(tuán)隊在現(xiàn)代、動態(tài)環(huán)境(如公共、私有和混合云)中構(gòu)建和運行可伸縮的應(yīng)用程序,容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明性api實現(xiàn)了這個方法。
這些技術(shù)使松散耦合的系統(tǒng)具備彈性伸縮能力、可管理性和可觀測性。結(jié)合健壯的自動化技術(shù),使得工程師可以最小的工作量進(jìn)行頻繁且可預(yù)測的迭代部署。
用戶的需求越來越多,應(yīng)用程序也變得越來越復(fù)雜。用戶期望需求可以得到快速響應(yīng)、增加創(chuàng)新性功能和零停機(jī)時間。
云原生是關(guān)于速度和敏捷性的,可以讓業(yè)務(wù)系統(tǒng)從“啟用業(yè)務(wù)功能”演變?yōu)?ldquo;能夠加速業(yè)務(wù)速度和增長”的戰(zhàn)略轉(zhuǎn)型武器。
這是一些實施了這些技術(shù)的公司??紤]一下他們已經(jīng)實現(xiàn)的速度、敏捷性和可伸縮性。
公司 | 生產(chǎn)實踐 |
---|---|
Netflix | 在生產(chǎn)中提供600多種服務(wù)。每天部署一百次。 |
Uber | 在生產(chǎn)中有1,000多種服務(wù)。每周部署數(shù)千次。 |
微信 | 擁有3,000多種生產(chǎn)服務(wù)。每天部署1,000次 |
如您所見,Netflix,Uber和微信公開了由數(shù)百個獨立微服務(wù)組成的系統(tǒng)。這種架構(gòu)風(fēng)格使他們能夠快速響應(yīng)市場狀況。他們可以做到實時更新復(fù)雜應(yīng)用程序中的部分區(qū)域,并根據(jù)需要分別縮放這些區(qū)域。
云原生的速度和敏捷性來自多種因素。
首先是云基礎(chǔ)設(shè)施,下圖顯示的另外五個基礎(chǔ)支柱也為云原生系統(tǒng)提供了支撐。
云基礎(chǔ)設(shè)施
云原生系統(tǒng)充分利用了云服務(wù)模型。
云原生系統(tǒng)旨在在動態(tài)、虛擬化云環(huán)境中蓬勃發(fā)展,廣泛使用平臺即服務(wù)(PaaS)計算設(shè)施和托管服務(wù)。
他們將基礎(chǔ)設(shè)施視為一次性的:只需幾分鐘即可配置,并通過自動化按需調(diào)整大小、縮放、移動或銷毀。
Devops中被廣泛認(rèn)可的概念“寵物與牲畜”:
寵物服務(wù)模型
在寵物服務(wù)模型中,服務(wù)實例被當(dāng)作寵物,每個寵物都有一個獨特的名字,例如宙斯、波塞冬和雅典娜。他們“獨特,并得到刻意的關(guān)注,當(dāng)他們生病時,你會讓他們恢復(fù)健康”。你可以通過增大它們的體型來擴(kuò)大規(guī)模,當(dāng)有寵物生病時,每個人都會關(guān)注到。
寵物服務(wù)器的示例包括大型機(jī),單獨的服務(wù)器,負(fù)載平衡器和防火墻,數(shù)據(jù)庫系統(tǒng)等。
牲畜服務(wù)模型
牲畜服務(wù)模型將每個服務(wù)實例配置為虛擬機(jī)或容器,它們是相同的,并分配了系統(tǒng)編號,例如Service-01,Service-02等。你可以通過創(chuàng)建更多"擴(kuò)展實例"來擴(kuò)展,當(dāng)某一個不可用時,不會有人關(guān)注到。
牲畜模型的例子包括Web服務(wù)器陣列,nosql集群,消息隊列集群,搜索集群,緩存反向代理集群,大數(shù)據(jù)集群等。
牲畜模型信奉“不可變基礎(chǔ)設(shè)施”:服務(wù)器在部署后永遠(yuǎn)不會被修改,如果需要更新,修復(fù)或修改某些內(nèi)容,則會根據(jù)包含相應(yīng)更改的鏡像構(gòu)建新服務(wù)器以替換舊服務(wù)器。經(jīng)過驗證后,它們就會投入使用,而舊的則會退役。
云原生系統(tǒng)采用牲畜服務(wù)模型。隨著基礎(chǔ)設(shè)施伸縮而持續(xù)運行,與它們所運行的計算機(jī)無關(guān)。
Ref
https://joachim8675309.medium.com/devops-concepts-pets-vs-cattle-2380b5aab313
https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition
這是一個專題,后面會意譯出云原生其他五大支柱: 現(xiàn)代設(shè)計理念、微服務(wù)、容器化、 支撐性服務(wù)、自動化,請持續(xù)關(guān)注。