周素青
福建信息職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系,福建 福州 350003
微服務(wù)物理上的解釋是一種小顆粒的獨(dú)立結(jié)構(gòu)和模塊,這些小顆粒之間有著相互依賴的關(guān)系,模塊與模塊之間存在多層次的依賴性[1]。隨著科學(xué)技術(shù)的不斷發(fā)展,云計(jì)算越來(lái)越成熟,Web 應(yīng)用的需求逐漸增多,企業(yè)在發(fā)展的過(guò)程中,將自身的應(yīng)用程序逐漸向著云計(jì)算平臺(tái)遷移,對(duì)云計(jì)算的應(yīng)用程度越來(lái)越高,云計(jì)算平臺(tái)成為企業(yè)應(yīng)用非常廣泛的一種技術(shù)。云計(jì)算具有分布式計(jì)算、網(wǎng)格計(jì)算等多種計(jì)算的優(yōu)點(diǎn),可以將網(wǎng)絡(luò)上復(fù)雜的資源進(jìn)行整合,對(duì)龐大的數(shù)據(jù)進(jìn)行處理和計(jì)算,為用戶提供真實(shí)可靠的服務(wù)。云計(jì)算的興起可以帶動(dòng)Web 應(yīng)用的發(fā)展,使得Web 應(yīng)用有了新的活力。隨著信息技術(shù)的發(fā)展,更多的公司構(gòu)建符合自身特點(diǎn)的分布式系統(tǒng),微服務(wù)系統(tǒng)也在一定程度上滿足基礎(chǔ)設(shè)施的運(yùn)維性、穩(wěn)定性、開發(fā)性等需求,滿足企業(yè)業(yè)務(wù)規(guī)模不斷擴(kuò)大的要求,提高資源利用的效率[2]。因?yàn)橐坏┰趹?yīng)用過(guò)程中效率低,會(huì)導(dǎo)致在維護(hù)過(guò)程中需要投入更多的資金和資源。 微服務(wù)還可以進(jìn)行細(xì)分,利用獨(dú)立部署,獨(dú)立擴(kuò)展,獨(dú)立開發(fā)這三種模式,提高了Web 應(yīng)用的拓展性和容錯(cuò)率。同時(shí),微服務(wù)架構(gòu)就是將一個(gè)有著多種系統(tǒng)的模板,通過(guò)一定的規(guī)則和結(jié)構(gòu)進(jìn)行劃分,將原本混亂的功能進(jìn)行分離,使得每個(gè)模塊都成為一個(gè)獨(dú)立的個(gè)體,解決了Web 應(yīng)用中存在的混亂現(xiàn)象[3]。
在微服務(wù)結(jié)構(gòu)搭建中,企業(yè)要明確搭建目的,主要是解決傳統(tǒng)的系統(tǒng)功能混亂、消耗大的問(wèn)題,并且要明確通過(guò)規(guī)則和結(jié)構(gòu)的劃分,將其分為單獨(dú)的個(gè)體,每個(gè)個(gè)體都有自身的特點(diǎn),個(gè)體之間既是相互獨(dú)立的,也有邏輯交互的關(guān)系,這樣可以使得整個(gè)系統(tǒng)得到控制。在微服務(wù)架構(gòu)的過(guò)程中,自身的復(fù)雜性也會(huì)隨之增加,因?yàn)榉?wù)運(yùn)維的數(shù)量不會(huì)減少,反而會(huì)增多,一些日志文件可能造成散布性,很難保持一致。因此,在構(gòu)建微服務(wù)的過(guò)程中要明確需求,企業(yè)要從微服務(wù)中獲得什么,需要微服務(wù)提供哪些服務(wù),以此劃分功能。在劃分成模塊之后明確每個(gè)模塊的功能,并建立相應(yīng)的管理團(tuán)隊(duì)對(duì)這些模塊進(jìn)行維護(hù)以及更迭。不僅如此,公司還可以自主選擇制作團(tuán)隊(duì)。在微服務(wù)架構(gòu)過(guò)程中,團(tuán)隊(duì)要為整個(gè)過(guò)程提供人才的保證及技術(shù)的保證,這樣才可以使整個(gè)架構(gòu)過(guò)程更加順利,形成良好的氛圍。企業(yè)要明確,整個(gè)社會(huì)中最貴的是人工成本,一些硬件與之比較起來(lái),就顯得成本比較低,昂貴的人工成本需要企業(yè)對(duì)員工有著更高的要求,使員工可以發(fā)揮出最大的作用,開發(fā)出更加強(qiáng)大的服務(wù)架構(gòu)。
在開發(fā)的過(guò)程中要實(shí)現(xiàn)自動(dòng)化,因?yàn)樽詣?dòng)化更能保證準(zhǔn)確性和穩(wěn)定性,人工的缺點(diǎn)在于,即使是最優(yōu)秀的員工,都會(huì)有出錯(cuò)的時(shí)候,但是如果實(shí)現(xiàn)自動(dòng)化,會(huì)大大降低出錯(cuò)的概率,因此,某些工作自動(dòng)化代替人工是必然的趨勢(shì)。企業(yè)要給團(tuán)隊(duì)一定的靈活性抉擇權(quán),但是前提是在保證一致性的情況下。因此,團(tuán)隊(duì)在進(jìn)行搭建的過(guò)程中,可以在一定程度上自由發(fā)揮,自主決定在搭建過(guò)程中的形式,同時(shí)采用一定的技術(shù)手段,使這些模塊之間可以更加穩(wěn)定,保持良好的秩序。
在整個(gè)搭建系統(tǒng)收尾的階段,發(fā)生故障或事故的可能性非常頻繁,這就需要企業(yè)團(tuán)隊(duì)特別注意,在分布式的系統(tǒng)中可能會(huì)發(fā)生一些故障,因此要進(jìn)行提前預(yù)防,采用一定的措施來(lái)進(jìn)行控制,還要建立完善的管理制度,將這種故障出現(xiàn)的概率降到最低,從而降低對(duì)企業(yè)的影響。
服務(wù)團(tuán)隊(duì)在搭建微服務(wù)的過(guò)程中,要保持一致性原則,在搭建中,系統(tǒng)的功能發(fā)生變化,會(huì)變得更加復(fù)雜,這樣也會(huì)增加管理工作的復(fù)雜性,使得在運(yùn)維工作中需要進(jìn)行更多的管理服務(wù),通過(guò)日志、監(jiān)控等方式對(duì)其進(jìn)行有效的監(jiān)督。在管理的過(guò)程中,還要實(shí)行標(biāo)準(zhǔn)化的流程,這樣可以使得管理工作更加方便,以維護(hù)系統(tǒng)的穩(wěn)定性。在建構(gòu)平臺(tái)和使用平臺(tái)的過(guò)程中,還需要對(duì)Web 接口進(jìn)行監(jiān)管,使其可以正常運(yùn)行,團(tuán)隊(duì)還要對(duì)各個(gè)模塊進(jìn)行管理。平臺(tái)提供的工作中心可以在內(nèi)部工具的使用下,將企業(yè)運(yùn)營(yíng)和發(fā)展所需要的數(shù)據(jù)進(jìn)行收集,并將這些數(shù)據(jù)運(yùn)用在企業(yè)發(fā)展的過(guò)程中,幫助決策者在決策的過(guò)程中有更多的數(shù)據(jù)依據(jù)。
平臺(tái)在內(nèi)部運(yùn)行過(guò)程中進(jìn)行匯總,會(huì)涉及很多的程序,這些程序成百上千,甚至有些大型公司的程序會(huì)有上萬(wàn)個(gè),他們彼此相連,非常復(fù)雜,程序的多少也體現(xiàn)著企業(yè)的規(guī)模和功能需求。在這些程序中,有很多服務(wù),每個(gè)服務(wù)都是獨(dú)立的模塊,對(duì)應(yīng)的服務(wù)是不同的,為用戶提供的功能也是不同的,要保證服務(wù)不會(huì)對(duì)其他的模塊產(chǎn)生影響,就需要在搭建的過(guò)程中,盡量體現(xiàn)出其獨(dú)立性,降低交互性。
在微服務(wù)搭建的過(guò)程中,開發(fā)團(tuán)隊(duì)與運(yùn)營(yíng)團(tuán)隊(duì)之間要進(jìn)行深入交流,將每個(gè)服務(wù)的特點(diǎn)進(jìn)行展開,保證每個(gè)服務(wù)的獨(dú)立性可以得到體現(xiàn)。如果服務(wù)沒(méi)有破壞模塊API,沒(méi)有對(duì)整體產(chǎn)生不可修復(fù)的改動(dòng),就可以不用與其他的團(tuán)隊(duì)進(jìn)行聯(lián)動(dòng)。因?yàn)槊總€(gè)服務(wù)都是一個(gè)獨(dú)立的產(chǎn)品,有自己特定的基準(zhǔn)代碼,也有一定的運(yùn)營(yíng)周期。模塊與模塊之間可以存在一些聯(lián)系,但是彼此之間一定要保持獨(dú)立性。在微服務(wù)構(gòu)架過(guò)程中要遵守以下三條規(guī)律。第一,如果在部署的過(guò)程中還需要其他服務(wù)的配合,這就表明在搭建的過(guò)程中存在錯(cuò)誤。第二,如果所有的服務(wù)基準(zhǔn)代碼都是相同的,那么搭建過(guò)程中肯定也存在著某種錯(cuò)誤。第三,如果在服務(wù)運(yùn)行之前,還要與其他服務(wù)溝通,那么搭建過(guò)程中必然存在著邏輯問(wèn)題。
如果多個(gè)服務(wù)同時(shí)連接在一份數(shù)據(jù)上時(shí),這個(gè)時(shí)候就需要對(duì)這些數(shù)據(jù)進(jìn)行更改,與其他服務(wù)之間進(jìn)行相互協(xié)調(diào),保證不同的服務(wù)有不同的數(shù)據(jù)和服務(wù)之間的獨(dú)立性。因?yàn)檫@種公用的數(shù)據(jù)違反了獨(dú)立性的原則,因此其中必然有錯(cuò)。私有數(shù)據(jù)庫(kù)在搭建服務(wù)的過(guò)程中,成為必需品,這也使得私有數(shù)據(jù)庫(kù)發(fā)揮了巨大的作用,同時(shí)還要選擇先進(jìn)的服務(wù)技術(shù)。 在服務(wù)搭建過(guò)程中,還存在外部服務(wù),也就是說(shuō),一個(gè)獨(dú)立的服務(wù)團(tuán)隊(duì)因?yàn)樽陨碓蚧蛘呦到y(tǒng)原因,還會(huì)與其他團(tuán)隊(duì)進(jìn)行合作。例如,緩沖支付系統(tǒng)、公用數(shù)據(jù)庫(kù)等,這些系統(tǒng)一般可以由第三方進(jìn)行托管,形成托管業(yè)務(wù),第三方也就是外部的服務(wù),對(duì)內(nèi)部的服務(wù)有一定的幫助,這也是在內(nèi)部團(tuán)隊(duì)能力不足的情況下實(shí)現(xiàn)的。綜上,無(wú)論哪種服務(wù)方式都要考慮到服務(wù)的需求、服務(wù)的數(shù)量以及服務(wù)的質(zhì)量,保證在系統(tǒng)管理過(guò)程中可以實(shí)現(xiàn)自動(dòng)化和智能化。
在云環(huán)境下,Web 應(yīng)用的微服務(wù)在不斷的研究和發(fā)展中,這種微服務(wù)非常復(fù)雜,因此企業(yè)在搭建的過(guò)程中要加強(qiáng)管理和監(jiān)督。企業(yè)要發(fā)展壯大,就必須有著各種各樣的功能性服務(wù),因此,搭建Web 應(yīng)用的微服務(wù)已成為必然的趨勢(shì),而現(xiàn)代云環(huán)境中Web 應(yīng)用的服務(wù)還在進(jìn)一步的研究和發(fā)展中,未來(lái)將越來(lái)越完善,保證公司的基礎(chǔ)設(shè)施更加的穩(wěn)定。