? ? ? ?技術(shù)創(chuàng)新只有起點(diǎn)沒有終點(diǎn)愈案,繼容器技術(shù)之后挺尾,新的技術(shù)又推成出新;最近了解到一種新的技術(shù)方案Serverless站绪,寫篇日志記錄下自己的感想遭铺。目前市面上提供Serverless云函數(shù)的解決方案的有Google?Cloud?Functions,Azure?Funcions恢准,IBM?OpenWhisk魂挂,阿里云函數(shù)計(jì)算,騰訊云服務(wù)器云函數(shù)馁筐,在初步接觸之后涂召,帶來了認(rèn)知上的巨大震撼。
? ? ? ?一個(gè)人的認(rèn)知決定了他的思維模式敏沉,決定了一個(gè)人所能達(dá)到的高度果正;比如在馬車時(shí)代炎码,人們追求的是如何擁有千里馬,汽車時(shí)代秋泳,人們追求的是超跑潦闲;冷兵器時(shí)代,俠客們?yōu)榱艘话淹例埖稊嚨媒晷蕊L(fēng)迫皱,熱兵器時(shí)代歉闰,人們追求的更加強(qiáng)大的機(jī)關(guān)槍;那么當(dāng)飛機(jī)舍杜,大炮新娜,原子彈的時(shí)代到來的時(shí)候,小米加步槍顯得那么的弱小既绩,時(shí)代在進(jìn)步概龄,新的認(rèn)知決定了新的高度,只有不停的提高對(duì)世界的認(rèn)識(shí)饲握,才能在激烈的競爭中取得一線先機(jī)私杜;那么在軟件領(lǐng)域也同樣如此,使用先進(jìn)的思想救欧,能夠最大程度的提升效率衰粹,幫助企業(yè)創(chuàng)造更多的利潤。
? ? ? ?軟件開發(fā)領(lǐng)域笆怠,一個(gè)古老又年輕的行業(yè)铝耻,在這里充滿了各式各樣的奇思妙想;目前大部分公司主要還是使用微服務(wù)架構(gòu),使用SpringCloud技術(shù)棧來解決互聯(lián)網(wǎng)各式各樣的業(yè)務(wù)問題蹬刷,支撐了一家又一家互聯(lián)網(wǎng)公司的蓬勃發(fā)展瓢捉。
? ? ? ?那么細(xì)想一下,微服務(wù)架構(gòu)到底解決了什么問題办成,又帶來了什么問題泡态?
? ? ? ?SpringCloud是標(biāo)準(zhǔn)的微服務(wù)架構(gòu)解決方案,通過業(yè)務(wù)拆分將一個(gè)龐大系統(tǒng)分解為一個(gè)個(gè)高內(nèi)聚低耦合的小型業(yè)務(wù)系統(tǒng)迂卢,減少業(yè)務(wù)間變動(dòng)帶來的整體系統(tǒng)的風(fēng)險(xiǎn)和影響某弦,眾所周知,軟件公司以業(yè)務(wù)需求變更頻繁而出名而克,互聯(lián)網(wǎng)公司更是出類拔萃靶壮,頻繁的業(yè)務(wù)改動(dòng),不斷迭代演化的需求员萍,要求技術(shù)架構(gòu)必須靈活又穩(wěn)定亮钦,以往SOA是針對(duì)于企業(yè)級(jí)業(yè)務(wù)中拆分的優(yōu)秀解決方案,微服務(wù)架構(gòu)更是業(yè)界翹楚充活,擁有眾多擁躉蜂莉;然而Serverles架構(gòu)最大化做到這一點(diǎn)蜡娶,API級(jí)別的拆分力度,是解決業(yè)務(wù)拆分的利器映穗,并且?guī)砹苏J(rèn)知上面的全面升級(jí)窖张,讓人不禁感嘆,原來架構(gòu)設(shè)計(jì)還能這樣玩蚁滋。
? ? ? ?同時(shí)也因?yàn)闊o止境的系統(tǒng)拆分宿接,帶給了系統(tǒng)運(yùn)維上面的巨大挑戰(zhàn),因此在微服務(wù)架構(gòu)中運(yùn)維是十分重要的一環(huán)辕录。為了解決這個(gè)問題產(chǎn)生了很多的方法論睦霎,例如自動(dòng)化運(yùn)維,DevOps走诞,AiOps等等副女,這些方案的核心在于盡量通過自動(dòng)化或者Paas的方式給企業(yè)提供整體的運(yùn)維解決方案。
? ? ? ?虛擬化一個(gè)問題是虛擬化Hypervisor管理軟件本身的資源消耗與磁盤IO性能降低蚣旱,另一個(gè)是虛擬機(jī)仍然還是一個(gè)獨(dú)立的操作系統(tǒng)碑幅,對(duì)很多類型的業(yè)務(wù)應(yīng)用來說都顯得太重了,導(dǎo)致我們?cè)谔幚硖摂M機(jī)的擴(kuò)縮容與配置管理工作時(shí)效率低下塞绿。
? ? ? ?然后k8s出現(xiàn)了沟涨,Kubernetes:Google?開源的容器管理系統(tǒng),起源于內(nèi)部歷史悠久的?Borg?系統(tǒng)异吻。因?yàn)槠湄S富的功能被多家公司使用裹赴,其發(fā)展路線注重規(guī)范的標(biāo)準(zhǔn)化和廠商“中立”,支持底層不同的容器運(yùn)行時(shí)和引擎(比如?Rkt)诀浪,逐漸解除對(duì)?Docker?的依賴棋返。Kubernetes的核心是如何解決自動(dòng)部署,擴(kuò)展和管理容器化(containerized)應(yīng)用程序笋妥。
? ? ? ?至此微服務(wù)架構(gòu)輔以容器化技術(shù),把這個(gè)浪潮推到高峰窄潭,微服務(wù)架構(gòu)如火如荼春宣。那么,有沒有更好的辦法能夠一勞永逸嫉你?
? ? ? ?答案是必然的月帝,在這里,Serverless帶來一種新的運(yùn)維模式幽污,在這種模式下用戶需要管理的只有Code嚷辅,一定程度上可以認(rèn)為Serverless就等同于NoOps。
? ? ? ?無服務(wù)器云函數(shù)(Serverless?Cloud?Function)是騰訊云提供的無服務(wù)器(serverless)執(zhí)行環(huán)境距误,幫助用戶在沒有購買和管理服務(wù)器時(shí)仍能運(yùn)行代碼簸搞。用戶只需要使用云平臺(tái)支持的語言編寫核心代碼及設(shè)置代碼運(yùn)行的條件扁位,代碼即可在騰訊云基礎(chǔ)設(shè)施上彈性、安全地運(yùn)行趁俊,并可完全管理底層計(jì)算資源域仇,包括服務(wù)器CPU、內(nèi)存寺擂、網(wǎng)絡(luò)暇务、代碼部署、彈性伸縮怔软、負(fù)載均衡等服務(wù)垦细。
? ? ? ?Serverless可以讓用戶無需關(guān)心服務(wù)器的部署運(yùn)營,只需開發(fā)最核心的業(yè)務(wù)邏輯挡逼,即可實(shí)現(xiàn)上線運(yùn)營括改;具備分布容災(zāi)能力,可依據(jù)負(fù)載自動(dòng)擴(kuò)縮容挚瘟,按照實(shí)際調(diào)用次數(shù)與時(shí)長計(jì)費(fèi)叹谁。
? ? ? ?加快用戶服務(wù)上線時(shí)間,用戶只需實(shí)現(xiàn)業(yè)務(wù)算法及流程乘盖,上線時(shí)間縮短為分鐘級(jí)焰檩;減少用戶的運(yùn)營負(fù)擔(dān),用戶無須承擔(dān)服務(wù)擴(kuò)容订框,故障恢復(fù)運(yùn)維工作析苫;消除用戶的資源成本,用戶無需承擔(dān)資源閑置費(fèi)用穿扳,只為實(shí)際調(diào)用消耗付費(fèi)衩侥。一切都是那么的美好!
? ? ? ?當(dāng)一個(gè)新鮮事物來臨時(shí)矛物,你可以懷疑茫死,但不要盲目的拒絕,擁抱改變履羞,或許能夠得到更多峦萎。