新聞中心
當(dāng)前位置:網(wǎng)站首頁 > 新聞中心
解密云原生——看企業(yè)云的未來
共享、敏捷和創(chuàng)新是互聯(lián)網(wǎng)時(shí)代下企業(yè)信息化建設(shè)最大的轉(zhuǎn)變。近幾年企業(yè)云的發(fā)展也進(jìn)入到了一個(gè)縱深階段,是兼顧新老不同應(yīng)用還是基于新的架構(gòu)平臺重建下一代應(yīng)用,是我們必須要思考的課題。
對于大部分的企業(yè)來說,IT是有歷史包袱的。因?yàn)樵瓉淼腎T應(yīng)用部署模式,都是豎井式的,不同的應(yīng)用都由不同的軟件開發(fā)商提供的,系統(tǒng)之間還有網(wǎng)絡(luò)安全隔離,各系統(tǒng)間還有協(xié)同關(guān)系,網(wǎng)絡(luò)、應(yīng)用拓?fù)浜軓?fù)雜。企業(yè)IT上云是一個(gè)系統(tǒng)性的工程,原來的應(yīng)用可能還需要結(jié)合云上提供的虛擬機(jī)、網(wǎng)絡(luò)和存儲的特點(diǎn)進(jìn)行必要的改造,不能簡單的“原來物理機(jī)什么配置,虛擬機(jī)什么配置,原來應(yīng)用什么架構(gòu),上云后什么架構(gòu)”的遷移方法,這其實(shí)完全失去了“上云”的優(yōu)勢,要防止為了上云而云的做法。云原生是一種構(gòu)建和運(yùn)行應(yīng)用程序的方法,它充分利用了云計(jì)算交付模型的優(yōu)勢,更天然的貼合云的特點(diǎn)。云原生(Cloud Native),是Matt Stine提出的一個(gè)概念,它是一個(gè)思想的集合,包括DevOps、持續(xù)交付(Continuous Delivery)、微服務(wù)(Micro Services)、敏捷基礎(chǔ)設(shè)施(Agile In frastructure)、康威定律(Conways Law)等,以及根據(jù)商業(yè)能力對公司進(jìn)行重組。Cloud Native既包含技術(shù)(微服務(wù),敏捷基礎(chǔ)設(shè)施),也包含管理(DevOps,持續(xù)交付,康威定律,重組等)。Cloud Native也可以說是一系列Cloud技術(shù)、企業(yè)管理方法的集合。
云原生是一個(gè)不斷豐富的理念和技術(shù)體系,它在基礎(chǔ)架構(gòu)、應(yīng)用程序和管理上都將深刻的影響和改變企業(yè)云的未來!
1、基礎(chǔ)架構(gòu)的變革與云原生
基礎(chǔ)架構(gòu)即服務(wù)(IaaS)是云供應(yīng)商的眾多產(chǎn)品之一。它提供了原始的計(jì)算、網(wǎng)絡(luò)和存儲,客戶可以根據(jù)需要消費(fèi)。它還包括支持服務(wù),如身份和訪問管理(IAM)、供應(yīng)和庫存系統(tǒng)。
企業(yè)傳統(tǒng)的數(shù)據(jù)中心基礎(chǔ)架構(gòu)具有這樣幾個(gè)特點(diǎn):1、評估難。采購規(guī)模無依據(jù),服務(wù)器和存儲過量采購,硬件折舊快,很容易在降低IT成本和滿足業(yè)務(wù)需求之間產(chǎn)生矛盾關(guān)系。2、部署慢。部署需要數(shù)周時(shí)間,設(shè)計(jì)復(fù)雜、范圍大、人員協(xié)調(diào)難,遲滯于業(yè)務(wù)的快速變化,敏捷性差。3、管理成本高。不具備自恢復(fù)能力,管理成本高,難以應(yīng)對業(yè)務(wù)規(guī)模增大帶來的復(fù)雜管理需求,系統(tǒng)彈性差。4、可維護(hù)性差。缺乏端對端的可見性,出問題往往定位不清楚,互相扯皮,導(dǎo)致運(yùn)營管理成本隨業(yè)務(wù)規(guī)模呈幾何級增長,可維護(hù)性差。
云的特點(diǎn)就是彈性、敏捷、分布式、可擴(kuò)展、自管理自恢復(fù),符合云的特點(diǎn)的基礎(chǔ)架構(gòu)就可以稱為云原生基礎(chǔ)架構(gòu)。云原生基礎(chǔ)架構(gòu)需要在提供自主應(yīng)用程序管理的IaaS之上創(chuàng)建一個(gè)平臺。該平臺建立在動態(tài)創(chuàng)建的基礎(chǔ)架構(gòu)之上,以抽象出各個(gè)服務(wù)并促進(jìn)動態(tài)資源分配調(diào)度和擴(kuò)展。云原生的基礎(chǔ)架構(gòu)需要在以下幾個(gè)方面做出變革:1、科學(xué)評估,按需采購。改變采購模式,無需一次性大規(guī)模采購,抓取平臺監(jiān)控?cái)?shù)據(jù)科學(xué)評估,按需采購及時(shí)補(bǔ)充;不依賴于特定的底層虛擬化(esxi/kvm/xen/hyper-v),解耦虛擬化平臺,按需使用。2、部署快速。從上機(jī)架開始30分鐘內(nèi)即可交付使用,部署快速,這更多的需要軟硬一體化的能力,軟硬件的融合不僅可以降低用戶使用云計(jì)算的復(fù)雜度,也大大降低的企業(yè)的應(yīng)用風(fēng)險(xiǎn)。超融合通過對軟硬件一體化的改造,不斷提升產(chǎn)品的性能、密度、性價(jià)比和易用性等,切實(shí)讓用戶體驗(yàn)到什么叫“開箱即用”,快速部署。3、統(tǒng)一管理。通過軟件統(tǒng)一管理計(jì)算、存儲、虛擬化等資源,使運(yùn)維管理簡單化集約化。4、自管理高可用。全鏈路所有節(jié)點(diǎn)可見,分布式架構(gòu),線性擴(kuò)展,無節(jié)點(diǎn)數(shù)限制,無單點(diǎn)故障,內(nèi)置同城和異地容災(zāi)能力。
總結(jié):當(dāng)軟件功能越來越強(qiáng)大之后,原來必須在硬件層面的支持就可以轉(zhuǎn)移到軟件上來實(shí)施。在基礎(chǔ)架構(gòu)這一層,技術(shù)驅(qū)動的結(jié)果就是企業(yè)用戶越來越?jīng)]必要花那么多錢去搞那么多昂貴復(fù)雜的專業(yè)設(shè)備了,軟件定義的基礎(chǔ)架構(gòu)會越來越流行和重要。
2、云原生應(yīng)用程序的構(gòu)建和部署
一般說來,企業(yè)傳統(tǒng)應(yīng)用向云環(huán)境的遷移往往是一個(gè)應(yīng)用重新部署的過程,而向PaaS或SaaS環(huán)境遷移,則要對應(yīng)用系統(tǒng)進(jìn)行重新拆分、重新設(shè)計(jì)架構(gòu)和重新構(gòu)建。很多應(yīng)用系統(tǒng)PaaS化是為了更好的利用容器、微服務(wù)等技術(shù)和理念,實(shí)現(xiàn)彈性和敏捷,滿足軟件服務(wù)化的需求。
我們看到過去幾年云平臺在不斷地發(fā)展,但應(yīng)用程序在云平臺運(yùn)行,仍然需要為不同的開發(fā)語言安裝相應(yīng)的運(yùn)行時(shí)環(huán)境。雖然自動化運(yùn)維工具可以降低環(huán)境搭建的復(fù)雜度,但仍然不能從根本上解決環(huán)境的問題。
容器的出現(xiàn)成為軟件開發(fā)行業(yè)新的分水嶺;容器技術(shù)的成熟,也標(biāo)志技術(shù)新紀(jì)元的開啟。Docker讓開發(fā)工程師可以將他們的應(yīng)用和依賴封裝到一個(gè)可移植的容器中,并且擺脫了環(huán)境依賴的問題。通過集裝箱式的封裝,開發(fā)和運(yùn)維都以標(biāo)準(zhǔn)化的方式發(fā)布的應(yīng)用,異構(gòu)語言不再是桎梏團(tuán)隊(duì)的枷鎖。
而Kubernetes則統(tǒng)一了容器編排系統(tǒng),為云原生應(yīng)用提供了一站式的服務(wù)。Kunernetes的出色表現(xiàn),為運(yùn)維工程師的工作模式帶來了顛覆性的改變。他們再也無需像照顧寵物那樣精心的照顧每一臺服務(wù)器,而當(dāng)出問題時(shí),直接將出問題的服務(wù)器換掉即可。業(yè)務(wù)開發(fā)工程師不必再過分關(guān)注非功能需求,只需專注自己的業(yè)務(wù)領(lǐng)域即可。而中間件開發(fā)工程師,則需要開發(fā)出健壯的云原生中間件,用來連接業(yè)務(wù)應(yīng)用與云平臺。
隨著云化的深入,越來越多的應(yīng)用被部署在云端,以往單體應(yīng)用的劣勢就體現(xiàn)的愈加明顯。因?yàn)閼?yīng)用變更的范圍和周期被捆綁在一起,即使只變更應(yīng)用的一部分,也需要重新構(gòu)建并部署整個(gè)單體應(yīng)用,而且無法對需要更多資源的部分模塊單獨(dú)擴(kuò)展,而是必須將整個(gè)應(yīng)用整體擴(kuò)展。這樣粗粒度的劃分,不利于系統(tǒng)的管理和資源的利用。因此,人們越來越傾向于將應(yīng)用進(jìn)行合理的拆分。于是,微服務(wù)應(yīng)運(yùn)而生。它將一個(gè)復(fù)雜的單體應(yīng)用分解成為多個(gè)獨(dú)立部署的微型服務(wù),每個(gè)服務(wù)運(yùn)行在自己的進(jìn)程中,服務(wù)間通信采用輕量級通信機(jī)制,如:RESTFulAPI。服務(wù)可以使用不同的開發(fā)語言和數(shù)據(jù)存儲技術(shù)。通過微服務(wù)的拆分,系統(tǒng)可以更加自由的將所需資源分配到所需的應(yīng)用中,而不是直接擴(kuò)展整個(gè)應(yīng)用,同時(shí)這種擴(kuò)展在垂直或水平方向都非常靈活簡便。
總結(jié):云原生應(yīng)用系統(tǒng)需要與操作系統(tǒng)等基礎(chǔ)設(shè)施分離,不應(yīng)該依賴Linux或Windows等底層平臺,或依賴某個(gè)云平臺。也就是說,應(yīng)用從開始就設(shè)計(jì)為運(yùn)行在云中,無論私有云或公有云;其次,該應(yīng)用必須能滿足擴(kuò)展性需求,垂直擴(kuò)展(向上和向下)或水平擴(kuò)展(跨節(jié)點(diǎn)服務(wù)器)。
3、云原生與管理自動化、智能化
當(dāng)在應(yīng)用軟件交付生命周期當(dāng)中引入云原生機(jī)制之后,我們可以快速為軟件添加新功能,同時(shí)又不影響其在生產(chǎn)環(huán)境下的穩(wěn)定性與安全性水平的能力。眾所周知,我們的應(yīng)用程序在運(yùn)行過程中需要基礎(chǔ)設(shè)施、中間件以及支持服務(wù)的多方配合,而云原生方案則通過對這些因素的自動化改造實(shí)現(xiàn)上述目標(biāo)。
一套全面的云原生架構(gòu)當(dāng)中包含自動化與編排管理兩類機(jī)制,能夠幫助用戶直接獲得相關(guān)能力,而無需再將自動化流程作為可定制設(shè)計(jì)進(jìn)行編寫。比如K8S其內(nèi)置的自動化管理、自我修復(fù)和自動擴(kuò)展。換句話來說,這類自動化管理的內(nèi)置特性使我們得以更輕松地構(gòu)建出可以自動化方式管理的應(yīng)用程序。
當(dāng)然,這些新特性同時(shí)也會對軟件的開發(fā)方式提出新的要求。開發(fā)人員必須利用一整套新的架構(gòu)實(shí)踐組合——例如微服務(wù)與容器技術(shù),從而確保應(yīng)用程序能夠在云平臺之上得到很好的管理,這也是我們在軟件開發(fā)提速之外需要認(rèn)真考量的保障前提。在運(yùn)營層面也帶來多項(xiàng)助益,具體包括應(yīng)用程序?qū)嵗蛇w移、統(tǒng)一化登錄以及通過監(jiān)控手段保障應(yīng)用程序及數(shù)據(jù)流正常運(yùn)作等等。另外就是DevOps的引入能對產(chǎn)品交付、測試、功能開發(fā)和維護(hù)(包括──曾經(jīng)罕見但如今已屢見不鮮的──“熱補(bǔ)丁”)起到意義深遠(yuǎn)的影響。在缺乏DevOps能力的組織中,開發(fā)與運(yùn)營之間存在著信息“鴻溝”──例如運(yùn)營人員要求更好的可靠性和安全性,開發(fā)人員則希望基礎(chǔ)設(shè)施響應(yīng)更快,而業(yè)務(wù)用戶的需求則是更快地將更多的特性發(fā)布給最終用戶使用。這種信息鴻溝就是最常出問題的地方,DevOps的出現(xiàn)正是由于軟件行業(yè)日益清晰地認(rèn)識到:為了按時(shí)交付軟件產(chǎn)品和服務(wù),開發(fā)和運(yùn)營工作必須緊密合作。
要發(fā)揮云原生管理的固有優(yōu)勢,較為理想的途徑之一就是引入智能化實(shí)現(xiàn)自治管理。目前企業(yè)在上云后,大多依靠“以人為本”的方式,憑借大量工作人員的個(gè)人能力和經(jīng)驗(yàn)、自覺來進(jìn)行運(yùn)維工作,這種將勞動密集型服務(wù)簡單粗暴的從傳統(tǒng)IT基礎(chǔ)設(shè)施轉(zhuǎn)移到云平臺的方式,只能是市場體量較小、技術(shù)發(fā)展程度不高的現(xiàn)實(shí)條件下,采取的過渡方案。引入智能化,實(shí)現(xiàn)服務(wù)自動發(fā)現(xiàn)、告警自動檢測、故障自治處理,改變這種傳統(tǒng)的服務(wù)方式下的效率低下、人力成本過高、手工運(yùn)維過程中的誤操作,也會大大提高企業(yè)云的可用性,日益擴(kuò)大企業(yè)級的云服務(wù)市場。
總的來說,Cloud Native云原生是更好的工具、自我修復(fù)系統(tǒng)和自動化系統(tǒng)的集合,可以讓應(yīng)用和基礎(chǔ)設(shè)施的部署和故障修復(fù)更加快速和敏捷,極大的降低企業(yè)在云計(jì)算方面的部署成本,加快企業(yè)云的變革。
展望:企業(yè)云的未來在多云時(shí)代,企業(yè)的數(shù)據(jù)和應(yīng)用不僅分布在企業(yè)私有云和公有云上,也分布在遠(yuǎn)程辦公室或分公司以及邊緣計(jì)算的環(huán)境中。如今的企業(yè)希望實(shí)現(xiàn)不同云之間的應(yīng)用移動性,同時(shí)保持對硬件、管理程序或云的開放性。因此建立一個(gè)以業(yè)務(wù)為中心的運(yùn)作方式,構(gòu)建云原生的應(yīng)用程序和基礎(chǔ)設(shè)施是一個(gè)必然的趨勢。實(shí)現(xiàn)對業(yè)務(wù)的快速部署以及彈性動態(tài)調(diào)整,而且整個(gè)架構(gòu)是以非常簡單的方式來打造的,而這就是以應(yīng)用驅(qū)動的企業(yè)云原生,隱隱地卻又注定將帶動一股潮流。
我們相信云原生不僅僅是一種構(gòu)建和運(yùn)行應(yīng)用程序的新方法,而是一種更有生命力的文化。
|