程序開發(fā)遇到云計(jì)算會發(fā)生什么樣的“化學(xué)反應(yīng)”
十年前,當(dāng)亞馬遜公司首次推出其云計(jì)算平臺時,在全球技術(shù)領(lǐng)域掀起了一場重大變革浪潮,并使IT市場走上了如今已經(jīng)價值1000億美元行業(yè)市場的軌道。
云計(jì)算服務(wù)已經(jīng)發(fā)展成一個多元化的市場,專注于提供不同類型的虛擬基礎(chǔ)設(shè)施、開發(fā)平臺和托管應(yīng)用程序。VMware公司在多年前就在x86服務(wù)器上普及了虛擬機(jī)(VM),而按需租用容量的能力成為一項(xiàng)技術(shù)和業(yè)務(wù)創(chuàng)新。
在這幾年中,很多云計(jì)算服務(wù)提供商發(fā)布了大量云計(jì)算服務(wù),這些服務(wù)遠(yuǎn)遠(yuǎn)超出了定義早期云計(jì)算產(chǎn)品的計(jì)算、存儲和網(wǎng)絡(luò)服務(wù),遠(yuǎn)遠(yuǎn)超出了應(yīng)用程序堆棧。僅AWS公司在全球各地的幾十個數(shù)據(jù)中心就提供了將近200種產(chǎn)品,而且這些數(shù)字將會不斷增長。
隨著AWS公司的業(yè)務(wù)發(fā)展,它變得更加復(fù)雜,甚至影響了架構(gòu)決策。首先,它影響了計(jì)劃云計(jì)算部署的基礎(chǔ)設(shè)施工程師,后來改變了開發(fā)人員設(shè)計(jì)應(yīng)用程序的方式。
與個人電腦和x86服務(wù)器的興起引起了一波客戶端服務(wù)器企業(yè)應(yīng)用程序的應(yīng)用浪潮類似,對云計(jì)算的興趣激發(fā)了基于瀏覽器的應(yīng)用程序的新開發(fā)語言和框架。在過去的十年中,各個領(lǐng)域的開發(fā)人員都基于云服務(wù)、容器和自動化工具創(chuàng)建了新的設(shè)計(jì)模式、開發(fā)平臺和工作流。
集中和分散的周期概述了云計(jì)算的每一代應(yīng)用程序開發(fā)的定義產(chǎn)品。但是,隨著開發(fā)人員適應(yīng)不同類型的基礎(chǔ)設(shè)施和部署范例,他們同時遵循了另一種形式的架構(gòu)演變。這開始集中于軟件設(shè)計(jì),逐步將應(yīng)用程序分解成更小的組件。
大型機(jī)的成本和操作復(fù)雜性促進(jìn)了整體設(shè)計(jì),將應(yīng)用程序代碼打包并作為一個單元運(yùn)行。分布式客戶端-服務(wù)器系統(tǒng)和基于瀏覽器的用戶界面的興起促使應(yīng)用程序首次分離為模塊化的n層架構(gòu),從而將功能劃分為多個元素。
各種各樣的云計(jì)算服務(wù)(尤其是容器運(yùn)行時環(huán)境、無服務(wù)器功能、托管數(shù)據(jù)庫和分析服務(wù))的可用性加速了更加精細(xì)化的趨勢。對云計(jì)算起源和意義的回顧表明,云計(jì)算是邏輯抽象各個級別上許多服務(wù)的組合。這些各種服務(wù)以及容器已經(jīng)產(chǎn)生了云原生的概念,這是應(yīng)用程序架構(gòu)的下一個發(fā)展。
云原生構(gòu)建塊
盡管云計(jì)算服務(wù)已在許多方面影響了開發(fā)和部署實(shí)踐,以下的重點(diǎn)是云計(jì)算演進(jìn)的下一階段也就是開發(fā)云原生應(yīng)用程序。
云原生目前還沒有一個標(biāo)準(zhǔn)的定義,這是專家們不斷爭論的話題。但是,將云原生應(yīng)用程序描述為在云平臺上開發(fā)的應(yīng)用程序。最終,云原生應(yīng)用程序旨在機(jī)會性地利用所有可用的云計(jì)算服務(wù),以盡可能低的成本實(shí)現(xiàn)性能、可擴(kuò)展性、可靠性、安全性、適應(yīng)性和可管理性的最大化。
在這種概念下,云計(jì)算服務(wù)就像一盒樂高積木,每個積木都具有一組定義的功能和標(biāo)準(zhǔn)接口(通常是API),用于功能控制和數(shù)據(jù)I/O,這些功能和標(biāo)準(zhǔn)接口組合在一起以構(gòu)建應(yīng)用程序。像樂高積木一樣,可以將一組零件組合成為一個模型或模板,這些模型或模板可以快速復(fù)制或重用為功能模塊。經(jīng)過十多年的發(fā)展,云計(jì)算服務(wù)現(xiàn)在提供了數(shù)量驚人的各種構(gòu)建塊。
云原生設(shè)計(jì)需要將這些組件拼接在一起以構(gòu)建自定義應(yīng)用程序。精通云計(jì)算的設(shè)計(jì)師更喜歡更高的抽象級別,以最大程度地減少工作量,這使企業(yè)可以更加專注于應(yīng)用程序的差異化特性。
云原生應(yīng)用程序開發(fā)與軟件開發(fā)、集成、測試和部署過程緊密相關(guān)。它們通常在DevOps組織下統(tǒng)一,或者通過不太正式地采用DevOps原則和方法。
但是不要將兩者混為一談。無需使用DevOps即可進(jìn)行云原生開發(fā)。并非所有DevOps組織都針對云計(jì)算優(yōu)先的應(yīng)用程序。但是,DevOps流程可以增強(qiáng)云原生開發(fā)。同樣,DevOps流程從可編程的云計(jì)算開發(fā)服務(wù)中受益匪淺,這些服務(wù)將可重復(fù)的流程實(shí)現(xiàn)系統(tǒng)化和自動化。
例如,與不使用標(biāo)準(zhǔn)化、可重復(fù)、自動化流程的組織相比,具有高級DevOps流程和文化的組織往往具有更短的應(yīng)用程序部署周期(通常每天多次)。
云原生權(quán)衡
盡管云計(jì)算為應(yīng)用程序開發(fā)帶來了很多好處,但并非沒有缺點(diǎn)。云原生設(shè)計(jì)的最大風(fēng)險是使用高級服務(wù)時的供應(yīng)商鎖定。盡管包裝在API中的云計(jì)算服務(wù)使用戶與底層實(shí)現(xiàn)隔離開來,但API本身的非標(biāo)準(zhǔn)性質(zhì)使在云計(jì)算提供商之間遷移應(yīng)用程序變得困難。
此外,還出現(xiàn)了避免鎖定的工具。值得注意的是,Kubernetes已成為容器管理和容器化應(yīng)用程序的事實(shí)上的標(biāo)準(zhǔn)。確實(shí),避免鎖定通常是許多系統(tǒng)架構(gòu)師選擇使用基于容器的實(shí)施而不是使用云原生服務(wù)的主要原因。
數(shù)據(jù)引力也就是將大量數(shù)據(jù)從一個運(yùn)營環(huán)境移動到另一個運(yùn)營環(huán)境的困難和費(fèi)用,是云原生設(shè)計(jì)的另一個缺點(diǎn)。IT部門通常通過使用混合環(huán)境來減輕這些擔(dān)憂。在這種情況下,主數(shù)據(jù)庫和文件存儲庫保留在私有基礎(chǔ)設(shè)施上,而云計(jì)算基礎(chǔ)設(shè)施則包含副本或緩存的數(shù)據(jù)子集。
趨勢與預(yù)測
近年來,云計(jì)算服務(wù)提供商的收入增長顯著。這在很大程度上是由于企業(yè)采用率的增加,而云計(jì)算的發(fā)展看起來不會很快停止。事實(shí)表明,發(fā)生的冠狀病毒疫情只是加快了這一趨勢的發(fā)展。
很多企業(yè)面臨著巨大的資金壓力,需要降低成本,提高效率。他們開始意識到其IT部門無法與云計(jì)算提供商的規(guī)模經(jīng)濟(jì)、運(yùn)營效率和大量研發(fā)工作相匹配,而這些都推動了新服務(wù)的不斷涌現(xiàn)。
許多新加入云計(jì)算的公司將把現(xiàn)有的應(yīng)用程序遷移到虛擬基礎(chǔ)設(shè)施上,云平臺將成為他們所有新應(yīng)用程序的運(yùn)營環(huán)境。那些利用云計(jì)算提供商提供一切資源的公司,其中包括更高級別的服務(wù)和開發(fā)平臺,將具有競爭優(yōu)勢。這將更加強(qiáng)調(diào)云原生開發(fā)的價值。
人們還可以期望許多企業(yè)向提供商施加壓力,要求他們在不依賴云計(jì)算的抽象模型、描述語言和部署工具上進(jìn)行協(xié)作,以簡化云原生應(yīng)用程序在環(huán)境之間的遷移。開放應(yīng)用程序模型(OAM)是一個很有前途的步驟,最初主要關(guān)注基于容器的微服務(wù)和Kubernetes環(huán)境。
目前尚不清楚開放應(yīng)用程序模型(OAM)社區(qū)是否急于將這一模型擴(kuò)展到更高級別的云計(jì)算產(chǎn)品,例如無服務(wù)器功能、分布式數(shù)據(jù)分析、區(qū)塊鏈或人工智能和機(jī)器學(xué)習(xí)。不過,云計(jì)算供應(yīng)商在這方面的努力可能會帶來更大的應(yīng)用程序的遷移性。
另外云計(jì)算時代程序英雄重現(xiàn)
曾幾何時,那些耳熟能詳?shù)某绦蛴⑿鄣拿譂u漸地離我們遠(yuǎn)去。隨著Windows和Internet時代的來臨,個人的力量變得越來越渺小。正當(dāng)我們開始堅(jiān)信單打獨(dú)斗的時代一去不復(fù)返的時候,云計(jì)算橫空出世了。它強(qiáng)大的計(jì)算能力、存儲能力和簡單高效的編程接口,使得一位程序員能夠輕松地操控成千上萬臺計(jì)算機(jī),而不必考慮太多的細(xì)節(jié)。云計(jì)算時代,仿佛又讓我們感覺到個人英雄時代伸手可及。
有了云計(jì)算平臺,程序員就可以動態(tài)申請所需資源,來支撐各種應(yīng)用程序的運(yùn)轉(zhuǎn),而無需為煩瑣的細(xì)節(jié)煩惱。云計(jì)算使程序員能夠更加專注于自己的業(yè)務(wù),有利于提高效率、降低成本和實(shí)現(xiàn)技術(shù)創(chuàng)新。這一點(diǎn),我們可以從一組間接的數(shù)據(jù)推斷出來。iTunes、Facebook和Myspace都是面向特定應(yīng)用領(lǐng)域、支持二次開發(fā)的公共平臺。在2009年前18周,因金融風(fēng)暴的影響,開發(fā)應(yīng)用的程序員數(shù)量明顯下降,而應(yīng)用程序數(shù)量反而大增。之所以如此,就是因?yàn)橛辛薋acebook這樣的支撐平臺,程序員需要考慮的問題大大簡化,工作效率大為提高。
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時
需注明出處:新網(wǎng)idc知識百科