在云計算時代,組織面臨著比以往更快交付業(yè)務(wù)和客戶價值的壓力。為了做到這一點,企業(yè)和獨立軟件供應(yīng)商便將他們的敏捷軟件開發(fā)實踐與DevOps以及最近的微服務(wù)一起提升到了一個新的層次。 作者:張飛逸翻譯來源:T媒體 在云計算時代,組織面臨著比以往更快交付業(yè)務(wù)和客戶價值的壓力。為了做到這一點,企業(yè)和獨立軟件供應(yīng)商便將他們的敏捷軟件開發(fā)實踐與DevOps以及最近的微服務(wù)一起提升到了一個新的層次。 將這兩種技術(shù)結(jié)合起來可以極大地提高效率。其實,某種程度上,正是這種快速的發(fā)展推動了今天的新興技術(shù),如大數(shù)據(jù)、機器學習和其他下一代IT概念。 如何理解DevOps和微服務(wù)? DevOps是一種方法,它使開發(fā)人員和IT運營人員能夠更緊密地協(xié)作,從而更快地交付高質(zhì)量的軟件。DevOps通過讓開發(fā)人員了解他們的軟件將在其中運行的生產(chǎn)環(huán)境來幫助他們提高軟件質(zhì)量,從而使他們受益。 雖然DevOps可以模擬生產(chǎn)環(huán)境(這是DevOps早期的標準),但是模擬的環(huán)境從未完全匹配生產(chǎn)環(huán)境。最近,組織已經(jīng)將DevOps實踐轉(zhuǎn)移到云中,在云中可以更準確地復制生產(chǎn)環(huán)境。DevOps使開發(fā)人員可以看到IT運營,反之亦然,這減少了兩個角色之間的傳統(tǒng)摩擦,增加了協(xié)作。 與敏捷一樣,DevOps將軟件程序分解成更小的部分,以提高軟件交付速度和質(zhì)量。DevOps的一個標志是“持續(xù)”實踐,包括持續(xù)集成、持續(xù)測試、持續(xù)交付和持續(xù)部署,所有這些都有助于軟件產(chǎn)品和軟件相關(guān)實踐的持續(xù)改進。 而微服務(wù)體系結(jié)構(gòu)是一種軟件開發(fā)技術(shù),是面向服務(wù)體系結(jié)構(gòu)(SOA)的一種類型。與不使用微服務(wù)的敏捷或DevOps相比,它產(chǎn)生的功能更小(因此模塊化程度更高)。 顧名思義,微服務(wù)是服務(wù)自身的一小部分功能。由于它們是獨立的構(gòu)建塊,因此使應(yīng)用程序更易于創(chuàng)建、測試和理解。模塊化的一個好處是多個DevOps團隊可以并行構(gòu)建和部署微服務(wù)。微服務(wù)和容器通常在任意數(shù)量的公有云或私有云環(huán)境中組合使用。 此外,微服務(wù)可以部署在任何云中,例如,這可以使開發(fā)人員不必為微軟Azure和亞馬遜Web服務(wù)編寫特定于平臺的代碼。簡而言之,微服務(wù)節(jié)省了時間和金錢,并提供了新的開發(fā)和部署級別的靈活性。 結(jié)合DevOps和微服務(wù)的好處 微服務(wù)支持持續(xù)的交付和部署,這兩者都加速了軟件的交付。大多數(shù)組織都在朝著或?qū)崿F(xiàn)持續(xù)交付的方向前進,這意味著在月與年、周與月、天與周、小時與天之間不斷發(fā)布軟件。 持續(xù)的部署每天可以產(chǎn)生成百上千個版本。它通常由亞馬遜、Facebook和谷歌等云原生廠商實踐。 事實上,微服務(wù)源自云本地公司的DevOps實踐,這些公司希望更快地交付軟件并提高產(chǎn)品質(zhì)量。微服務(wù)和DevOps的一些好處是:
DevOps如何與微服務(wù)協(xié)同工作 微服務(wù)使DevOps團隊能夠并行開發(fā)獨立的功能片段。而不是將代碼從一種類型的專家轉(zhuǎn)移到另一種類型的專家(例如,開發(fā)、測試、生產(chǎn)),跨功能團隊協(xié)作地構(gòu)建、測試、發(fā)布、監(jiān)控和維護應(yīng)用程序。 為了加快流程并減少手工錯誤,構(gòu)建微服務(wù)的DevOps團隊利用自動化的連續(xù)交付管道,使他們能夠以安全可靠的方式試驗新特性,并從失敗中快速恢復。 為了確保產(chǎn)品質(zhì)量,持續(xù)測試被添加到持續(xù)集成和持續(xù)交付(或部署)中。實現(xiàn)持續(xù)的質(zhì)量不僅僅包括測試。具體來說,它包括其他質(zhì)量元素,如安全性、與用戶需求的一致性、業(yè)務(wù)風險緩解和度量價值。 微服務(wù)的獨立性幫助DevOps團隊在更短的時間內(nèi)完成更多的工作。與導致整個應(yīng)用程序崩潰的單片軟件不同,微服務(wù)缺陷往往僅限于該微服務(wù)。然而,微服務(wù)失敗會使其他微服務(wù)“承受壓力”,這可能意味著其他微服務(wù)無法與失敗的微服務(wù)通信。 微服務(wù)的模塊化支持增量發(fā)布,這是DevOps的目標之一??傊?,微服務(wù)和DevOps:
在未來幾年,微服務(wù)和devops的結(jié)合將會發(fā)生怎樣的變化? 如前所述,微服務(wù)已經(jīng)使DevOps團隊的工作效率更高了。展望未來,這兩者的結(jié)合將帶來更高的效率。此外,終端用戶體驗到的與應(yīng)用程序相關(guān)的摩擦也會減少: 云本地開發(fā)將補充云本地部署。雖然能夠在任何云中運行微服務(wù)是非常有效的,但軟件通常都在向云轉(zhuǎn)移。在哪里開發(fā)云應(yīng)用程序比在云本身中更好?首先,在發(fā)布之前更容易捕獲應(yīng)用程序錯誤。 機器學習和人工智能正在進入DevOps和微服務(wù)工具。智能工具的好處之一是更深入地了解DevOps管道、代碼、配置更改、性能等。 更多的DevOps團隊將采用微服務(wù),使企業(yè)應(yīng)用程序更具價值、可伸縮性、彈性和適應(yīng)性。 微服務(wù)幫助開啟了“后應(yīng)用”時代,在這個時代,用戶打開單個應(yīng)用的時間減少,而花在應(yīng)用之外的時間增多。例如,你可以問Alexa這樣的虛擬助手,“今天的天氣預(yù)報是什么?”在電話里,天氣預(yù)報可以作為通知推送??赡苄詫嶋H上是無窮無盡的。 |
|