成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是DevOps?一份簡單易懂的教程

運維 系統(tǒng)運維
DevOps是對已建立的 IT流程的簡化或者自動化。這里有一個簡短的教程來幫助你理解和開始使用 DevOps。

DevOps是對已建立的 IT流程的簡化或者自動化。這里有一個簡短的教程來幫助你理解和開始使用 DevOps。

DevOps…CI/CD…Docker…Kubernetes…我敢肯定你在過去的一年里經(jīng)常聽人說這些詞。好像全世界都在談?wù)撨@些技術(shù),以至于你覺得即將到達(dá)NoOps階段。

別擔(dān)心,在工具和各種最佳實踐的浩瀚海洋中感到迷失是正常的。是時候讓我們來分析一下DevOps到底是什么了。

這篇文章的目的,就是為你建立一個堅實的基礎(chǔ)。所以讓我們從一個明顯的問題開始。

什么是DevOps?

DevOps是對已建立的 IT流程的簡化或者自動化。

我見過很多人開始使用DevOps,最終卻都迷失了。這似乎是一種魔咒。

通常從一段視頻開始,講述一家高科技初創(chuàng)公司是如何自動化整個產(chǎn)品發(fā)布流程的。一旦所有測試通過,部署就會自動進(jìn)行。發(fā)生故障時,可以自動回滾。同時進(jìn)行A/B測試,提高了客戶參與度。

老實說吧,我們都想實現(xiàn)這樣的DevOps。我們都厭倦了像坐過山車一樣的發(fā)布新版本。

不幸的是,DevOps不是這樣工作的。DevOps并不是一根魔法棒,它能在一瞬間解決你所有的問題。

相反,這是一個系統(tǒng)性的工程,你應(yīng)該使用合適的工具和技術(shù)來完成不同的任務(wù)。

所有的一切都是為了流程

具體是什么流程并不重要,只要它可以簡化應(yīng)用程序的部署或者自動化測試,讓你的生活更輕松,那這就是DevOps的全部內(nèi)容。

事實上,如果你的流程不能手動完成(針對較小的流程),你可能需要重新定義你的流程。

好了,讓我們舉一個真實的例子來更好地理解“流程”。

一個真實的DevOps例子

我們舉一個,在云虛擬機(jī)上部署Nodejs應(yīng)用程序的例子。

流程

我們的流程如下:

從源代碼開始(Start with the source code):只要我們能訪問源代碼,我們就可以在任何地方運行我們的代碼。

構(gòu)建制品(Build an Artifact):然后我們打包源代碼來構(gòu)建一個制品。如果是Java語言,那么JAR文件就是我們的制品。但在我們Nodejs的例子中,源代碼本身就是要發(fā)布的制品。

發(fā)布到制品倉庫(Publish to an Artifact Repository):接下來,我們將制品推送到制品倉庫。然后我們的虛擬機(jī)就可以從制品倉庫中提取制品。我們可以直接使用Github作為我們的制品倉庫,因為我們的源代碼即制品。

拉取并運行應(yīng)用程序(Pull and run your app):最后,我們將制品拉取到虛擬機(jī)上,并通過指令npm start來啟動Nodejs進(jìn)程。

我們的第一個DevOps項目

我們不會在這里做任何花哨的事情。最簡單的自動化的方式就是寫一個shell腳本,按順序順序運行所有命令。恭喜你完成了我們的第一個DevOps項目!!!

我知道shell腳本聽起來太簡單了,不值得認(rèn)真對待。我懷疑你曾經(jīng)也寫過這樣的腳本。但相信我,這就是DevOps!

別擔(dān)心,我們馬上就可以看到那些花哨的東西了。但重要的是要理解DevOps就是這樣工作的。

“可重復(fù)”的重復(fù)性

讓我問你一個問題。你喜歡以下哪一個?

一個在60%的時間內(nèi),能正常工作的自動化部署管道;

一個無聊的shell腳本,但是每次執(zhí)行都能完成任務(wù)。

如果你曾經(jīng)在半夜處理過生產(chǎn)故障,那么你將選擇shell腳本。

原因很簡單。可靠性遠(yuǎn)比自動化程度更重要。換句話說,一個DevOps流程必須能夠在每次運行時產(chǎn)生一致的結(jié)果。

使我們的過程可重復(fù)

以我們的shell腳本為例。目前,我們的shell腳本依賴于安裝在虛擬機(jī)上的Node.js。

如果沒有在虛擬機(jī)上安裝Node.js,會發(fā)生什么?一個錯誤的Node.js版本足以使我們的應(yīng)用程序不能正常運行。當(dāng)我們需要在虛擬機(jī)上安裝多種語言運行時時,情況只會變得更糟。

一個簡單的解決方案是將Node.js運行時與我們的源代碼一起歸檔到zip文件中。然后可以將zip文件發(fā)送到虛擬機(jī)。這樣,虛擬機(jī)就可以使用zip文件中的本地Node.js運行時來運行我們的應(yīng)用程序。

幸運的是,有一種工具可以讓我們的生活更輕松。

Docker和容器

如果你對Docker不熟悉,可以將Docker看作是一種將你的制品(artifact)及其所依賴的操作系統(tǒng)以及Node.js,一起打包進(jìn)容器鏡像中的方法。

使用容器,我們可以在安裝了Docker的虛擬機(jī)上部署任何應(yīng)用程序。

使用Docker,我們的流程將如下所示:

容器不僅僅能做到這些,但這卻是容器能如此流行的重要原因之一。

Docker對比容器

讓我澄清一下,Docker和容器并不是同一個東西。

Docker是一組實用工具,用于構(gòu)建和運送容器鏡像,以及使用容器運行時(如containerd)來運行容器。

考慮到最近發(fā)生的事件,許多人對Docker的未來感到擔(dān)憂。

重要的是要明白,Docker不會立馬消失,在構(gòu)建和運送容器鏡像領(lǐng)域,將繼續(xù)發(fā)揮重要作用。

認(rèn)真對待DevOps

我們已經(jīng)取得了一些重大進(jìn)展。希望我們能理解Docker是如何融入DevOps流程中的。

是時候把事情推向下一個層次了。

基于事件的觸發(fā)部署

我們的腳本看起來很穩(wěn)定,但仍然是手動觸發(fā)的。

如果我們能,當(dāng)有人往GitHub上推送代碼時自動觸發(fā)這個腳本,那不是更好嗎?換句話說,我們希望基于事件的觸發(fā)部署。

GitHub可以在一組特定的事件上調(diào)用webhook。為了實現(xiàn)這一點,我們需要創(chuàng)建一個簡單的HTTP服務(wù)器,每當(dāng)服務(wù)器接收到請求時,它就會執(zhí)行shell腳本。我們可以將GitHub配置為,當(dāng)發(fā)生Push事件時,觸發(fā)HTTP請求。我們將這個過程稱之為持續(xù)部署(Continuous Deployment)。

我們的新流程如下所示:

恭喜你,你剛剛成功創(chuàng)建了一個CD pipeline。

持續(xù)部署是一種軟件,負(fù)責(zé)將應(yīng)用程序從GitHub之類的東西一直帶到最終部署的目標(biāo)環(huán)境中。

這基本上就是你經(jīng)常聽到的CI/CD。當(dāng)人們談?wù)撓馢enkins和CircleCI這樣的工具時,他們通常指的是CI/CD。

DevOps模式

我想你已經(jīng)找到了一個模式。我們從一個流程開始,找到一個我們不滿意的部分,然后引入一些軟件來簡化或自動化它。

用代碼的方式來操作流程,這就是DevOps。

引入容器編排

最后讓我們做一個小小的改進(jìn)。到目前為止,我們一直將應(yīng)用程序部署在單個虛擬機(jī)上。如果我們想將應(yīng)用程序部署到多個虛擬機(jī)或者節(jié)點上呢?

實現(xiàn)這一點的最簡單方法是讓CD Server通過ssh連接到所有虛擬機(jī),并將容器部署到每個虛擬機(jī)中。

使用這種方式時,每當(dāng)虛擬機(jī)的數(shù)量發(fā)生變化時,我們就需要更改腳本。但在真實世界中,我們希望我們的應(yīng)用程序是可以自動擴(kuò)縮容的。

更好的方法是創(chuàng)建另一個HTTP服務(wù)器來跟蹤虛擬機(jī)數(shù)量的變化。我們可以稱這個服務(wù)器為“飛行員(Pilot)”。

此服務(wù)器將負(fù)責(zé)對集群中的各個虛擬機(jī)執(zhí)行健康檢查,以維護(hù)活動的虛擬機(jī)列表。它甚至可以與云供應(yīng)商進(jìn)行通信,使事情變得更加健壯。

Pilot還將公開一個HTTP端點,以接受要生成的容器的詳細(xì)信息。然后,它可以與各個虛擬機(jī)通信以完成任務(wù)。

現(xiàn)在,我們的CD Server可以簡單地請求Pilot,而不是單獨與每個虛擬機(jī)通信。

我們的新流程如下所示:

我們將Pilot稱為容器編排器。其實這就是Kubernetes!你剛剛設(shè)計了一個迷你版的Kubernetes!

另外,Kubernetes在希臘語中就是Pilot的意思。這是不是巧合?

從哪里開始?

我們一起討論了不少工具。這是我的最后一點。有沒有想過為什么DevOps的空間如此分散?

如果你仔細(xì)想想,有這么多的工具,讓你很難決定:什么是正確的選擇,或者你應(yīng)該從哪里開始?

每個組織都有自己的做事方式和流程,因而他們使用的工具也不同。你的工作不是找出哪種工具是最好的。你的工作就是找出最適合你的流程。一旦你明白了這一點,這些工具就只需要谷歌搜索了。

所以現(xiàn)在你知道從哪里開始了。不是工具。而是從了解你的公司和團(tuán)隊如何做事開始。

責(zé)任編輯:未麗燕 來源: Dockone.io
相關(guān)推薦

2019-08-27 09:20:35

微服務(wù)架構(gòu)組件

2016-08-24 16:55:18

DevOps結(jié)構(gòu)清單

2019-12-03 10:28:53

編程語言PythonJava

2020-12-01 12:00:30

網(wǎng)絡(luò)犯罪勒索軟件黑客

2018-04-19 10:33:39

DevOps開源工具

2019-03-18 08:08:24

知識圖譜技術(shù)

2021-09-02 10:57:38

Python函數(shù)數(shù)據(jù)

2022-03-25 11:44:14

Scrapy爬蟲命令

2020-12-29 08:04:38

H橋驅(qū)動Arduino

2019-07-16 07:52:49

NumPyPython機(jī)器學(xué)習(xí)

2022-05-13 09:04:20

Python網(wǎng)絡(luò)爬蟲JS逆向問題

2020-07-15 15:38:15

人臉識別照片活化手機(jī)

2025-02-28 09:09:44

2018-06-25 15:15:11

編程語言Python爬蟲

2013-01-04 15:17:49

Android ROM

2024-03-20 12:44:35

AI訓(xùn)練

2019-03-24 14:14:40

代碼閱讀源代碼

2015-03-19 15:17:11

2018-07-29 15:33:04

2023-09-29 22:41:26

Kubernetes云原生
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品国产色 | 成人在线电影在线观看 | 日韩欧美中文 | 欧美午夜在线 | 日韩电影一区二区三区 | 亚洲精品aⅴ | 久久免费观看视频 | 天天爱天天操 | 久久精品毛片 | 精品一区在线免费观看 | 日韩久久久一区二区 | 日韩欧美三区 | 久久久综合色 | 成年人国产在线观看 | 午夜影院在线观看 | av黄色国产 | 国产午夜亚洲精品不卡 | 日韩免费视频一区二区 | 99精品国产一区二区三区 | 欧美爱爱视频网站 | 蜜臀久久99精品久久久久久宅男 | 日韩欧美专区 | 91久久国产综合久久 | 在线黄色影院 | 91天堂网 | 波多野结衣一区二区三区在线观看 | 久久久www成人免费精品 | 欧美一区 | 午夜精品久久久久久久久久久久久 | 久久免费精品视频 | 81精品国产乱码久久久久久 | av中文字幕在线 | 国产精品1区 | 91精品国产91久久久久久丝袜 | 二区欧美 | 一区二区三区四区在线 | 国产日韩欧美精品一区二区三区 | 97视频在线免费 | 色婷婷av一区二区三区软件 | 亚洲一本 | 亚洲综合色视频在线观看 |