日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 架構(gòu)師社區(qū)
[導(dǎo)讀]近年來,隨著云計算概念和技術(shù)的普及,云原生一詞也越來越熱門,無論是應(yīng)用還是安全,凡是和云相關(guān)的,都要在云后面加上原生二字,好像不提云原生,在技術(shù)上就落后了一大截。一、云原生產(chǎn)生背景隨著云計算技術(shù)的發(fā)展,企業(yè)上云已成為趨勢,越來越多的企業(yè)都已將應(yīng)用部署到了云上。但是應(yīng)用上云并不意味...


近年來,隨著云計算概念和技術(shù)的普及,云原生一詞也越來越熱門,無論是應(yīng)用還是安全,凡是和云相關(guān)的,都要在云后面加上原生二字,好像不提云原生,在技術(shù)上就落后了一大截。

一、云原生產(chǎn)生背景


隨著云計算技術(shù)的發(fā)展,企業(yè)上云已成為趨勢,越來越多的企業(yè)都已將應(yīng)用部署到了云上。但是應(yīng)用上云并不意味著就能充分利用云平臺的優(yōu)勢。目前,大部分云化的應(yīng)用,都是基于傳統(tǒng)的軟件架構(gòu)來搭建的,然后再移植到云上去運行,和云平臺的整合度非常低,主要表現(xiàn)在以下幾個方面:


1. 操作系統(tǒng)依賴強
傳統(tǒng)應(yīng)用程序和底層操作系統(tǒng)、硬件、存儲和后備服務(wù)之間存在緊密的依賴關(guān)系,這些依賴關(guān)系使得應(yīng)用程序在跨越云基礎(chǔ)設(shè)施進行遷移和擴展時非常復(fù)雜且有風(fēng)險。


2. 系統(tǒng)緊耦合
傳統(tǒng)的企業(yè)應(yīng)用多采用單體架構(gòu),將許多不同的功能模塊捆綁在一個部署包中,導(dǎo)致功能模塊之間產(chǎn)生不必要的依賴,并導(dǎo)致開發(fā)和部署過程中喪失敏捷性,無法獨立的部署、發(fā)布更新、重啟。


3. 手動化擴展
通過手工管理基礎(chǔ)設(shè)施,包括手工編寫管理服務(wù)器、網(wǎng)絡(luò)和存儲的配置腳本。在大規(guī)模復(fù)雜的操作中,操作人員在診斷問題時會很慢,而且無法大規(guī)模地實施。手工制作的自動化腳本還有可能將人為錯誤硬編碼到基礎(chǔ)設(shè)施中。


4. 恢復(fù)緩慢
基于虛擬機的基礎(chǔ)設(shè)施相對于基于微服務(wù)的應(yīng)用程序來說,是緩慢而低效的。因為單個虛擬機啟動/關(guān)閉的速度很慢,并且在部署應(yīng)用程序代碼之前就會帶來巨大的開銷。


5. 瀑布開發(fā)
傳統(tǒng)應(yīng)用的開發(fā)模式,IT團隊定期發(fā)布軟件,通常間隔幾周或幾個月。盡管發(fā)布的許多組件已經(jīng)提前準備好了,并且沒有依賴關(guān)系,也必須等待版本中的其他組件??蛻粝胍墓δ鼙谎舆t,企業(yè)失去贏得客戶和增加收入的機會。


總體來說,提供方便的基礎(chǔ)設(shè)施,只是對云計算最初級的利用(提升利用率,按需使用,不夠了隨時擴容),無法充分發(fā)揮云計算的優(yōu)勢,要想充分發(fā)揮云計算的優(yōu)勢(彈性、高可用性、易擴展性),就必須進行真正的云化,不僅僅是基礎(chǔ)設(shè)施和平臺的變化,應(yīng)用也需要做出改變,這就需要擯棄傳統(tǒng)的方法,在架構(gòu)設(shè)計、開發(fā)方式、部署維護等各個階段和方面都基于云的特點重新設(shè)計,從而建設(shè)全新的云化的應(yīng)用,也就是云原生的應(yīng)用。


二、云原生的定義


關(guān)于什么是云原生,不同的人定義不同,目前比較權(quán)威的定義主要來自Pivotal公司和云原生計算基金會(Cloud Native Computing Foundation,簡稱CNCF)。


1. Pivotal的定義
Pivotal公司是云原生應(yīng)用的提出者,并推出了Cloud Foundry和Spring系列開發(fā)框架。早在2015年,Pivotal公司的Matt Stine寫了一本名為《遷移到云原生應(yīng)用架構(gòu)》的小冊子,其中探討了云原生應(yīng)用架構(gòu)的幾個主要特征:符合12因素的應(yīng)用、面向微服務(wù)架構(gòu)、自服務(wù)敏捷架構(gòu)、基于API的協(xié)作以及抗脆弱性。


在2017年10月,接受采訪時,Matt Stine對云原生的定義做了小幅調(diào)整,將云原生架構(gòu)定義為具有以下六個特質(zhì):模塊化(Modularity)、可觀測性(Observability)、可部署性(Deployability)、可測試性(Testability)、可處理性(Disposability)以及可替換性(Replaceability)。而Pivotal官網(wǎng)對云原生概括為4個要點:DevOps、持續(xù)交付、微服務(wù)以及容器化。


萬字長文揭穿你,根本就不懂云原生!

圖 1:Pivotal云原生思想


Matt Stine認為云原生是一個思想的集合,云原生既包含技術(shù)(微服務(wù),敏捷基礎(chǔ)設(shè)施),也包含管理(DevOps、持續(xù)交付、康威定律以及重組等),云原生也可以說是一系列云技術(shù)、企業(yè)管理方法的集合。


2. CNCF的定義

CNCF是在2015年由Google聯(lián)合Linux基金會成立的,它是一個非盈利組織,主要宗旨是統(tǒng)一云計算接口和相關(guān)標準,通過技術(shù)優(yōu)勢和用戶價值創(chuàng)造一套新的通用容器技術(shù),推動云計算和服務(wù)的發(fā)展。起初CNCF對云原生(Cloud Native)的定義包含以下三個方面:


  • 應(yīng)用容器化

  • 面向微服務(wù)架構(gòu)

  • 應(yīng)用支持容器的編排調(diào)度


到了2018年,隨著云原生生態(tài)的不斷壯大,所有主流云計算供應(yīng)商都加入了該基金會,且從云原生的全景圖中可以看出云原生正在蠶食原先非云原生應(yīng)用的部分。


CNCF基金會中的會員以及容納的項目越來越多,該定義已經(jīng)限制了云原生生態(tài)的發(fā)展,CNCF為云原生進行了重新定位,并于2018年6月11日明確了云原生定義1.0版本:云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動態(tài)環(huán)境中,構(gòu)建和運行可彈性擴展的應(yīng)用。云原生的代表技術(shù)包括容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API。


萬字長文揭穿你,根本就不懂云原生!

圖 2:云原生代表技術(shù)


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


三、云原生相關(guān)技術(shù)


依據(jù)CNCF發(fā)布的云原生1.0版本的定義,云原生技術(shù)主要包括容器、微服務(wù)、服務(wù)網(wǎng)格、不可變基礎(chǔ)設(shè)施以及聲明式API,下面就這幾類技術(shù)做個概述:


1. 容器技術(shù)
容器技術(shù)和云原生好比一對螺旋體,容器技術(shù)催生了云原生思潮,云原生生態(tài)推動了容器技術(shù)發(fā)展。從2013年Docker技術(shù)誕生,到2015年CNCF這個云原生領(lǐng)域重量級聯(lián)盟成立,這不是歷史的巧合而是歷史的必然。作為云原生關(guān)鍵技術(shù)之一的容器,從2013年誕生以來一直是行業(yè)關(guān)注的焦點之一。


2013年之前,云計算行業(yè)一直在為云原生的正確打開姿勢而操心。Platform as a Service(PaaS)看起來是個有前途的方向。2006年Fotango公司發(fā)布的Zimi服務(wù),可以說是PaaS行業(yè)的鼻祖,具有按使用付費、免運維(Serverless)、API化配置和服務(wù)等典型云原生的特征;2008年Google推出Google App Engine(GAE);2011年P(guān)ivotal發(fā)布Cloud Foundry。


這些早期的PaaS平臺在云原生領(lǐng)域進行了非常有益的探索,推動了云原生生態(tài)的健康發(fā)展,但是這些早期探索技術(shù)并沒有形成大的行業(yè)趨勢,而是局限在一些的特定的領(lǐng)域。直到Docker開源,大家才如夢方醒,原來不是方向不對,而是應(yīng)用分發(fā)和交付的手段不行。


Docker真正核心的創(chuàng)新是容器鏡像(docker image),一種新型的應(yīng)用打包、分發(fā)和運行機制。容器鏡像將應(yīng)用運行環(huán)境,包括代碼、依賴庫、工具、資源文件和元信息等,打包成一種操作系統(tǒng)發(fā)行版無關(guān)的不可變更軟件包。


容器鏡像打包了整個容器運行依賴的環(huán)境,以避免依賴運行容器的服務(wù)器的操作系統(tǒng),從而實現(xiàn)“build once, run anywhere”。容器鏡像一旦構(gòu)建完成,就變成read only,成為不可變基礎(chǔ)設(shè)施的一份子。


2. 微服務(wù)
微服務(wù)架構(gòu)是相對于單體架構(gòu)來說的,兩者分屬不同的架構(gòu)風(fēng)格。在微服務(wù)架構(gòu)中,服務(wù)是一個單一的、可獨立部署的軟件組件,它實現(xiàn)了一些有用的功能,服務(wù)的API封裝了其內(nèi)部實現(xiàn),與單體架構(gòu)不同,開發(fā)人員無法繞過服務(wù)的API直接訪問服務(wù)內(nèi)部的方法和數(shù)據(jù),因此,微服務(wù)架構(gòu)強制實現(xiàn)了應(yīng)用程序的模塊化。


微服務(wù)架構(gòu)的最核心特性是服務(wù)之間的松耦合性。服務(wù)之間的交互采用API完成,這樣做就封裝了服務(wù)的實現(xiàn)細節(jié),從而實現(xiàn)了在不影響客戶端的情況下,對實現(xiàn)方式做出修改。


微服務(wù)架構(gòu)通過將大的系統(tǒng)按照業(yè)務(wù)服務(wù)的粒度進行拆分,每個服務(wù)可獨立開發(fā)、測試、驗證和部署,這樣分解后,帶來的好處有如下幾點:


  • 使大型的復(fù)雜應(yīng)用程序可以持續(xù)交付和持續(xù)部署

  • 每個服務(wù)都相對較小并容易維護

  • 服務(wù)可以獨立部署

  • 服務(wù)可以獨立擴展

  • 微服務(wù)架構(gòu)可以實現(xiàn)團隊的自治

  • 更容易實驗和采納新的技術(shù)

  • 更好的容錯性


3. 服務(wù)網(wǎng)格

服務(wù)網(wǎng)格是用于處理服務(wù)間通信的專用基礎(chǔ)設(shè)施層,負責(zé)在微服務(wù)間進行可靠地請求傳遞。服務(wù)網(wǎng)格通常通過一組輕量級網(wǎng)絡(luò)代理來實現(xiàn),這些代理與應(yīng)用程序代碼一起部署,而不需要感知應(yīng)用程序本身。


隨著規(guī)模和復(fù)雜性的增長,服務(wù)網(wǎng)格包含的實現(xiàn)的功能越來越多,它的需求包括服務(wù)發(fā)現(xiàn)、負載均衡、故障恢復(fù)、指標收集和監(jiān)控以及通常更加復(fù)雜的運維需求,例如A/B測試、金絲雀發(fā)布、限流、訪問控制和端到端認證等。其部署結(jié)構(gòu)如下圖所示:


萬字長文揭穿你,根本就不懂云原生!

圖 3:服務(wù)網(wǎng)格部署圖


服務(wù)網(wǎng)格有如下幾個特點:


  • 應(yīng)用程序間通訊的中間層

  • 輕量級網(wǎng)絡(luò)代理

  • 應(yīng)用程序無感知

  • 解耦應(yīng)用程序的重試/超時、監(jiān)控、追蹤和服務(wù)發(fā)現(xiàn)


如果用一句話來解釋什么是服務(wù)網(wǎng)格,可以將它比作是應(yīng)用程序或者說微服務(wù)間的TCP/IP,負責(zé)服務(wù)之間的網(wǎng)絡(luò)訪問、限流、熔斷和監(jiān)控。對于編寫應(yīng)用程序來說一般無須關(guān)心TCP/IP這一層(比如通過HTTP協(xié)議的RESTful應(yīng)用),同樣使用服務(wù)網(wǎng)格也就無須關(guān)系服務(wù)之間的那些原來是通過應(yīng)用程序或者其他框架實現(xiàn)的事情,比如Spring Cloud、OSS,現(xiàn)在只要交給服務(wù)網(wǎng)格就可以了,從而極大地方便了微服務(wù)應(yīng)用的開發(fā)。


4. 不可變基礎(chǔ)設(shè)施
一個工作負載(比如容器、虛擬機等)一旦部署以后就不會被修改。當需要更新,修復(fù)或修改某些內(nèi)容的時候,只需要將新的、經(jīng)過驗證的工作負載替換舊的即可。


不可變基礎(chǔ)設(shè)施的作用主要體現(xiàn)在系統(tǒng)的穩(wěn)定性方面。傳統(tǒng)的應(yīng)用程序一旦部署到用戶特定的服務(wù)器上以后,服務(wù)器系統(tǒng)是會不斷變化的,不是操作系統(tǒng)升級,就是安裝了新的應(yīng)用,可能引起沖突,導(dǎo)致應(yīng)用程序需要跟著用戶系統(tǒng)環(huán)境的改變而不斷升級,這中間就會不斷地出現(xiàn)新的問題。而不可變基礎(chǔ)設(shè)施就規(guī)避了所有的這些問題,因為云原生應(yīng)用是部署在不可變的基礎(chǔ)設(shè)施上的,因此就不存在變化的問題。


5. 聲明式API
聲明式API是一種比命令式API更高級的接口設(shè)計方式,簡單來說,命令式API提供給用戶怎么做的能力,而聲明式API給用戶提供了做什么的能力。


聲明式API是比命令式API更高級的一種接口,舉個例子,假如我們有一個炒菜機,如果炒菜機提供的接口是放油、放調(diào)料、放食材、大火、小火等操作,那就是命令式API。


如果炒菜機提供的接口是來盤宮保雞丁、來盤魚香肉絲之類的,那就是聲明式API了。聲明式API比較典型的例子就是數(shù)據(jù)庫提供的SQL接口,只需要告訴數(shù)據(jù)庫你需要什么數(shù)據(jù)即可,至于怎么去獲取這些數(shù)據(jù),數(shù)據(jù)庫自己會去按步驟操作。


四、云原生的意義


傳統(tǒng)的軟件開發(fā)模式,在使用云計算平臺時和使用物理機時沒有什么大的區(qū)別,那么就沒有將云平臺的能力利用充分,在一定程度上導(dǎo)致了資源的浪費。云原生就是用來解決這一類的問題,將云計算平臺的優(yōu)勢發(fā)揮到極致。


讓企業(yè)應(yīng)用能夠利用云平臺實現(xiàn)資源的按需分配和彈性伸縮,是云原生應(yīng)用重點關(guān)注的地方。它要求云原生應(yīng)用具備可用性和伸縮性,以及自動化部署和管理能力,可隨處運行,并且能夠通過持續(xù)集成、持續(xù)交付提升研發(fā)、測試與發(fā)布的效率。云原生應(yīng)用并未完全顛覆傳統(tǒng)的應(yīng)用,采用云原生的設(shè)計模式可以優(yōu)化和改進傳統(tǒng)應(yīng)用模式,使應(yīng)用更加適合在云平臺上運行。


云原生存在的意義是解放開發(fā)和運維,而不是讓開發(fā)和運維的工作變得更加復(fù)雜和繁重。云原生還關(guān)注規(guī)模,分布式系統(tǒng)應(yīng)該具備將節(jié)點進行水平擴展的能力,能輕易地擴展到成千上萬的規(guī)模,并且這些節(jié)點具備多租戶和自愈能力。云原生使得應(yīng)用本身具備“柔性”,即面對強大壓力的緩解能力以及壓力過后的恢復(fù)能力。


五、云原生當前生態(tài)


作為云原生領(lǐng)域最具權(quán)威的組織,CNCF在每年的年度報告中都會提及CNCF Landscape項目,該項目開始于2016年11月,旨在為云原生應(yīng)用者提供一個資源地圖,幫助企業(yè)和開發(fā)人員快速了解云原生體系的全貌。CNCF Landscape項目在Github上已經(jīng)獲得超過7000顆星,表明廣大開發(fā)者和使用者對該項目的關(guān)注和重視。該項目給出當前云原生生態(tài)的全景圖(如下圖所示),通過該全景圖我們可以了解云原生相關(guān)的各種類型的項目和產(chǎn)品:


萬字長文揭穿你,根本就不懂云原生!

圖 4:CNCF生態(tài)全景圖


這張全景圖從云原生的層次結(jié)構(gòu),以及不同的功能組成上,展現(xiàn)了云原生體系的全貌,可以幫助用戶在不同組件層次去選擇恰當?shù)能浖凸ぞ哌M行支持??傮w來看,云原生生態(tài)分為以下幾層:


1. Kubernetes服務(wù)提供商
圖中最底層是Kubernetes認證的服務(wù)提供商,以及Kubernetes認證的培訓(xùn)伙伴。


2. Provisioning
有了物理機或虛擬機后,在運行容器化服務(wù)之前,需要為容器準備標準化的基礎(chǔ)環(huán)境,這就是Provisioning這一層的作用。在Provisioning這一層中,分為以下幾個功能組成模塊:


  • Automation
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉