DevOps是微服务的秘方
ALEX HANDY
讀完需要
6
分鐘速讀僅需 2 分鐘
作者丨Alex Handy
譯者丨大白
策劃丨中生代技術(shù)社區(qū)
1
? ?
DevOps
遷移到微服務(wù)通常需要數(shù)量龐大的自動化,自動化意味著運(yùn)維部署。在當(dāng)今云開發(fā)、敏捷開發(fā)為主的情況下,運(yùn)維正朝著優(yōu)秀的 DevOps 實(shí)踐邁進(jìn)。自然地,自動化需要代碼,并且如今的運(yùn)維工程師擁有一些有史以來最強(qiáng)大的工具和系統(tǒng),可以將比如說環(huán)境復(fù)雜性降低為更容易編程的模塊。
但是,要實(shí)現(xiàn)這一目標(biāo), 微服務(wù)的真正研磨是必須有復(fù)雜的編織系統(tǒng)到位,負(fù)載均衡,網(wǎng)關(guān)監(jiān)控,并在第一個微服務(wù)部署之前將整個應(yīng)用程序堆棧中分發(fā)安全模型;這有點(diǎn)像一個廚師需要一個干凈的、有廚具的廚房,以準(zhǔn)備晚餐服務(wù)。這甚至延伸可以到服務(wù)員和點(diǎn)餐系統(tǒng),工作人員需要把那些精心準(zhǔn)備的牛肉盤子端給饑餓的顧客。
DevOps 的技能不是為了成為一名出色的廚師,而是成為一名出色的管理者:管理服務(wù)員,管理送餐窗口,管理廚師和管理賬目,并且整個流程鏈,產(chǎn)品和人員完全可視化。
在微服務(wù)領(lǐng)域,這意味著通常由 DevOps 負(fù)責(zé)建立構(gòu)建大規(guī)模環(huán)境所需的所有基礎(chǔ)架構(gòu)。這意味著 Web 應(yīng)用程序服務(wù)器,注冊表和存儲庫,操作系統(tǒng)和容器映像,虛擬化網(wǎng)絡(luò),防火墻,負(fù)載平衡器,消息隊列和反向代理。DevOps 團(tuán)隊還必須支持開發(fā)團(tuán)隊所需的新技術(shù):HTTP2,GRPC 和可靠的 SSL。
GitLab 首席執(zhí)行官 Sid Sijbrandij 說:“隨著微服務(wù)的爆炸式增長,越來越多的項目涌現(xiàn)。公司發(fā)現(xiàn),他們不僅必須自動化 DevOps 生命周期,而且還必須實(shí)現(xiàn)自動化。對于每個項目,您都必須設(shè)置創(chuàng)建工具,打包和管理。如果您每次都必須這樣做,那將花費(fèi)很多時間。微服務(wù)復(fù)雜性不斷提高,因此需要在開發(fā)和運(yùn)維之間進(jìn)行更緊密的協(xié)作,達(dá)成共識更為重要。”
2
? ?
是數(shù)據(jù)啊,笨蛋!
一個可能變得棘手的地方是數(shù)據(jù)。從使數(shù)據(jù)庫在 Kubernetes 中可靠地大規(guī)模運(yùn)行到開發(fā)人員在通過微服務(wù)體系結(jié)構(gòu)釋放時可以采用的外部數(shù)據(jù)存儲的突然激增,對于基于云的基礎(chǔ)架構(gòu)來說,數(shù)據(jù)都是一個大問題:問題如此之多,以至于最早的云時代就有了關(guān)于“從應(yīng)用程序中刪除狀態(tài)”的整體性建議。
今天,我們知道有狀態(tài)和無狀態(tài)應(yīng)用程序都可以在云上愉快地共存,但是管理數(shù)據(jù)的實(shí)際日常工作并不總是那么容易。Kasten 產(chǎn)品負(fù)責(zé)人 Georgi Matev 說:“我們看到的是數(shù)據(jù)遵循的模式與計算端相同。隨著事務(wù)分解成更小,更合乎邏輯的組件,在數(shù)據(jù)端亦如此。”
雖然聽起來不錯,但敏捷的移動數(shù)據(jù)與移植代碼完全不同。Datical 首席技術(shù)官 Robert Reeves 說,這不是不自動化數(shù)據(jù)層的借口。“每個人都可以更快地編譯部署應(yīng)用程序。但是,他們?nèi)匀灰揽渴謩痈臄?shù)據(jù)庫來支持該應(yīng)用程序。這導(dǎo)致速度差。Reeves 說:“您的房子中有一部分按時離開家,而房子的另一側(cè)(數(shù)據(jù)庫人員)則處于自殺觀察狀態(tài)。”
準(zhǔn)備微服務(wù)有點(diǎn)像廚師需要一個正確清潔,工具齊全的廚房,以便準(zhǔn)備晚餐服務(wù)。
Reeves 說:“我們需要讓人們擺脫困境。我們需要消除人工干預(yù)。過去系統(tǒng)管理員認(rèn)為構(gòu)建服務(wù)器就像構(gòu)建手工咖啡桌一樣。‘看看這布線!看看咱們數(shù)據(jù)中心的有多漂亮?’今天,誰在乎,老兄?”
Reeves 說:“首先需要克服的想法是,我們需要人工來手動查看和執(zhí)行我們的 SQL 腳本。” “我們的第一個企業(yè)客戶是一家非常大的銀行。當(dāng)我們的執(zhí)行發(fā)起人開始與 DBA 交談并說:“嘿,您如何看待數(shù)據(jù)庫的自動化,”他說,“那不是我們在這里做事的方式。”
Reeves 說:“我們是微服務(wù)的忠實(shí)擁護(hù)者,但您需要將更新這些服務(wù)和支持微服務(wù)的數(shù)據(jù)庫的力量交給產(chǎn)品團(tuán)隊。” “我們有使用 Pivotal 的客戶,他們可以在幾秒鐘內(nèi)更新,但是必須等到外部服務(wù)團(tuán)隊可以在數(shù)據(jù)庫上運(yùn)行腳本之后再進(jìn)行。他們需要等待 10 至 12 天。重點(diǎn)是什么呢?”
3
? ?
復(fù)雜問題
更加復(fù)雜的是引入 Kubernetes 作為容器編排的新標(biāo)準(zhǔn)。隨著采用 Kubernetes 的應(yīng)用不斷增長,圍繞它的一些與現(xiàn)有基礎(chǔ)架構(gòu)模式相適應(yīng)的問題尚未完全解答。盡管如此,還是由 DevOps 來理解和管理 Kubernetes,以便開發(fā)人員可以按需獲取他們的數(shù)據(jù)庫,管道和部署。
IBM 只是已經(jīng)在 Kubernetes 上建立基礎(chǔ)架構(gòu)的眾多公司之一。例如,Istio 項目允許 DevOps 團(tuán)隊完全控制其微服務(wù)周圍的數(shù)據(jù)和流量。Daniel Berg 是 IBM 杰出工程師,負(fù)責(zé)容器和微服務(wù),在給 newstack 的電子郵件中寫道,“在 open community[theopencommunity.org],[IBM 公司]曾與其他頂級技術(shù)公司,如谷歌和 Lyft 建立 Istio,把業(yè)務(wù)流程層裝備在開發(fā)與容器上,以更好地保護(hù)和流量監(jiān)控。我們還與 Google 合作推出了 Grafeas,這有助于在部署和使用容器時保護(hù)圍繞容器的供應(yīng)鏈代碼。”
IBM 的工作還致力于使 Kubernetes 更易于使用,因此不必通過在復(fù)雜的系統(tǒng)上旋轉(zhuǎn)旋鈕來壟斷 DevOps。“盡管使用 Kubernetes 構(gòu)建基于容器的解決方案仍然存在學(xué)習(xí)上的彎路,但我們正在 IBM 內(nèi)部以及與社區(qū)一起開發(fā)工具和功能,以使其更容易在 Kubernetes 中開發(fā)應(yīng)用程序而不必成為 Kubernetes 專家,”Berg 寫道。
所有這些服務(wù)的背后都需要一套統(tǒng)一的流程。投資于公司內(nèi)部微服務(wù)的各種團(tuán)隊需要開放的溝通渠道,并且需要以無可避免的方式來實(shí)施它們。這是一項工作,它是將人類行為編碼到自動化,部署和開發(fā)管道中。
Nginx 的微服務(wù)工程首席架構(gòu)師和高級總監(jiān) Chris Stetson 表示:“您必須圍繞應(yīng)用程序開發(fā)方式改變思維方式。最近,我們一直在做的事情之一就是創(chuàng)建一個統(tǒng)一的開發(fā)和部署過程,在此過程中,您的應(yīng)用程序開發(fā)人員將在 Docker 化版本的應(yīng)用程序中工作,并基本上在該 Docker 環(huán)境中進(jìn)行編碼和測試,這非常類似于我們將最終為客戶部署的環(huán)境。Stetson 說:“建立這一流程使開發(fā)人員輕松上手非常有價值。”
Stetson 說,Nginx 已經(jīng)實(shí)施了一個幾乎古老但有效的解決方案。“我們使用 Makefiles,我們一直在使用 Makefiles 來封裝更復(fù)雜的 Docker 組合命令,這些命令已經(jīng)組合在一起,成為前端開發(fā)人員能夠進(jìn)行 Webpack 前端開發(fā)的構(gòu)建目標(biāo)。他們重新連接到他們需要動態(tài)重新加載正在使用的更改的所有服務(wù),我們喜歡使用 Makefile,因為它本質(zhì)上類似于聲明性的 Bash 腳本,” Stetson 說。
4
? ?
作者簡介
4.1
? ?
Alex Handy
Alex Handy 是擁有 20 年經(jīng)驗的資深技術(shù)記者,他的作品發(fā)表在 Wired, the Atlanta Journal Constitution, and The Austin American Statesman. 他還是位于奧克蘭的非營利性電子游戲博物館藝術(shù)和數(shù)字娛樂博物館(themade.org)的創(chuàng)始人和總監(jiān)。他在 VonGuard.net 進(jìn)行咨詢。
原文鏈接:https://thenewstack.io/devops-is-the-secret-ingredient-to-make-microservices-cook/
推薦閱讀
?
波波老師大解密:如何成為優(yōu)秀的架構(gòu)師?
?
阿里如何面試MySQL優(yōu)化CPU消耗
?
DevOps落地成不成,關(guān)鍵不在持續(xù)集成?
?
阿里高工流生 | 云原生時代的 DevOps 之道
?
新炬首架梁銘圖:從70萬字SRE神作提煉出7千字精華與君共勉
福利贈送,中生代技術(shù)社區(qū)提供內(nèi)推服務(wù),直接內(nèi)推到技術(shù)大廠用人部門,
有需求請?zhí)砑由鐓^(qū)社區(qū)專屬服務(wù)小姐姐Elsa的微信
申請備注(姓名+公司+技術(shù)方向)通過后溝通!
? ?END ? ?? #接力技術(shù),鏈接價值#總結(jié)
以上是生活随笔為你收集整理的DevOps是微服务的秘方的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 秒懂了微服务架构,看这本书就够了!
- 下一篇: nyoj-492 King(状态压缩)