AWS 上 DevOps 實踐

什么是 DevOps?

https://aws.amazon.com/cn/devops/what-is-devops/

DevOps 模式定義

DevOps 集文化理念、實踐和工具于一身腊脱,可以提高組織高速交付應(yīng)用程序和服務(wù)的能力撞羽。

image

DevOps 的工作原理

在 DevOps 模式下,開發(fā)團隊和運營團隊都不再是“孤立”的團隊。有時,這兩個團隊會合為一個團隊,他們的工程師會在應(yīng)用程序的整個生命周期(從開發(fā)測試到部署再到運營)內(nèi)相互協(xié)作颤芬,開發(fā)出一系列不限于單一職能的技能。

在一些 DevOps 模式下套鹅,質(zhì)保和安全團隊也會與開發(fā)和運營團隊更緊密地結(jié)合在一起站蝠,貫穿應(yīng)用程序的整個生命周期。當(dāng)安全是所有 DevOps 團隊成員的工作重心時卓鹿,這有時被稱為“DevSecOps”菱魔。

他們使用能夠幫助其快速可靠地操作和發(fā)展應(yīng)用程序的技術(shù)體系和工具。這些工具還可以幫助工程師獨立完成通常需要其他團隊協(xié)作才能完成的任務(wù)(例如部署代碼或預(yù)置基礎(chǔ)設(shè)施)吟孙,從而進一步提高團隊的工作速度澜倦。

DevOps 的優(yōu)勢

  • 速度
  • 快速交付
  • 可靠性
  • 規(guī)模
    • 例如,基礎(chǔ)設(shè)施即代碼能夠幫助您以一種可重復(fù)且更有效的方式來管理部署句各、測試和生產(chǎn)環(huán)境吸占。
  • 增強合作
    • 開發(fā)人員和運營團隊密切合作,共同承擔(dān)諸多責(zé)任凿宾,并將各自的工作流程相互融合矾屯。
  • 安全性

如何采用 DevOps 模式

DevOps 的文化理念

簡單來說,DevOps 的宗旨就是消除兩個傳統(tǒng)上孤立的團隊(開發(fā)團隊和運營團隊)之間的壁壘初厚。
有些組織甚至沒有獨立的開發(fā)團隊和運營團隊件蚕,工程師可能身兼兩職。利用 DevOps产禾,這兩個團隊可以攜手合作排作,共同提高開發(fā)人員的生產(chǎn)力,同時增強運營的可靠性亚情。他們力求頻繁溝通妄痪、提高效率,并改善客戶服務(wù)的質(zhì)量楞件。他們能夠完全掌控自己的服務(wù)衫生,并且經(jīng)常越過自己的既定角色或職能的傳統(tǒng)工作范疇裳瘪,思考最終用戶的需求以及解決這些需求。
質(zhì)保和安全團隊也可以與這兩個團隊緊密協(xié)作罪针。凡是采用 DevOps 模式的組織彭羹,無論組織結(jié)構(gòu)如何,參與團隊都會將整個開發(fā)和基礎(chǔ)設(shè)施生命周期視為己任泪酱。

DevOps 實踐說明

一個基本實踐經(jīng)驗就是要頻繁地進行小規(guī)模更新派殷。這是組織能為客戶快速提供創(chuàng)新的有效方式。

此外墓阀,組織還可以使用微服務(wù)架構(gòu)來提升應(yīng)用程序的靈活性毡惜,從而加快創(chuàng)新步伐。

但是岂津,微服務(wù)與較高的發(fā)布頻率相結(jié)合會導(dǎo)致部署量大幅度增加虱黄,可能會帶來運營挑戰(zhàn)。因此吮成,持續(xù)集成和持續(xù)交付等 DevOps 實踐經(jīng)驗有助于解決這些問題橱乱,讓組織能夠以安全可靠的方式快速交付。

與基礎(chǔ)設(shè)施即代碼和配置管理一樣粱甫,基礎(chǔ)設(shè)施自動化實踐經(jīng)驗也有助于維持計算資源的彈性和對頻繁變更的適應(yīng)性泳叠。

此外,進行監(jiān)控和記錄這一實踐經(jīng)驗可幫助工程師追蹤應(yīng)用程序和基礎(chǔ)設(shè)施的性能茶宵,以便他們快速應(yīng)對出現(xiàn)的問題危纫。

DevOps 實踐經(jīng)驗

1. 持續(xù)集成 CI

采用持續(xù)集成時,開發(fā)人員會定期將他們的代碼變更合并到一個中央存儲庫中乌庶,之后系統(tǒng)會自動運行構(gòu)建和測試操作种蝶。持續(xù)集成的主要目標是更快發(fā)現(xiàn)并解決錯誤,提高軟件質(zhì)量瞒大,并縮短驗證和發(fā)布新軟件更新所需的時間螃征。

2. 持續(xù)交付 CD

采用持續(xù)交付時,系統(tǒng)會對代碼變更自動進行構(gòu)建和測試透敌,并為發(fā)布到生產(chǎn)環(huán)境做好準備盯滚。
持續(xù)交付可以在構(gòu)建階段后將所有代碼變更都部署到測試環(huán)境和/或生產(chǎn)環(huán)境中,從而實現(xiàn)對持續(xù)集成的擴展酗电。當(dāng)持續(xù)交付得以正確實施時魄藕,開發(fā)人員將始終能夠獲得一個已通過標準化測試流程的部署就緒型構(gòu)建工件。

3. 微服務(wù)

微服務(wù)架構(gòu)是一種將單個應(yīng)用程序構(gòu)建為一系列小服務(wù)的設(shè)計方法撵术。其中每個服務(wù)均按各自的流程運行背率,并利用一種輕型機制(通常為基于 HTTP 的應(yīng)用程序編程接口 (API))通過一個明確定義的接口與其他服務(wù)進行通信。

4. 基礎(chǔ)設(shè)施即代碼

基礎(chǔ)設(shè)施通過代碼和軟件部署技術(shù)(例如版本控制和持續(xù)集成)得以預(yù)置和管理。
借助云的 API 驅(qū)動型模式退渗,開發(fā)人員和系統(tǒng)管理員能夠以編程方式與基礎(chǔ)設(shè)施進行大規(guī)囊莆龋互動蕴纳,而無需手動設(shè)置和配置資源会油。

  • 配置管理
    開發(fā)人員和系統(tǒng)管理員使用代碼將操作系統(tǒng)和主機配置、操作性任務(wù)等自動化古毛。代碼的使用實現(xiàn)了配置變更的可重復(fù)性和標準化翻翩。它將開發(fā)人員和系統(tǒng)管理員從手動配置操作系統(tǒng)、系統(tǒng)應(yīng)用程序或服務(wù)器軟件的任務(wù)中解放出來稻薇。

  • 策略即代碼
    由于基礎(chǔ)設(shè)施及其配置全都通過云進行代碼編寫嫂冻,所以組織可以動態(tài)地大規(guī)模監(jiān)控與實現(xiàn)合規(guī)性。因此塞椎,組織可以自動跟蹤桨仿、驗證和重新配置由代碼描述的基礎(chǔ)設(shè)施。

5. 監(jiān)控和日志記錄

通過對應(yīng)用程序和基礎(chǔ)設(shè)施生成的數(shù)據(jù)進行采集案狠、分類和分析服傍,組織可以了解變更或更新如何影響用戶,同時深入了解出現(xiàn)問題或意外變故的根本原因骂铁。此外吹零,創(chuàng)建警報或?qū)@些數(shù)據(jù)執(zhí)行實時分析也能幫助組織更主動地監(jiān)控其服務(wù)。

6. 溝通與合作

DevOps 和 AWS

https://aws.amazon.com/cn/devops/
AWS 可以提供一套靈活的服務(wù)拉庵,讓各家公司利用 AWS 和 DevOps 實踐經(jīng)驗來更加快速灿椅、可靠地構(gòu)建和交付產(chǎn)品。
這些服務(wù)可以簡化基礎(chǔ)設(shè)施的預(yù)置和管理钞支、應(yīng)用程序代碼的部署茫蛹、軟件發(fā)布流程的自動化以及應(yīng)用程序和基礎(chǔ)設(shè)施性能的監(jiān)控。

AWS 提供的 DevOps 工具

1. 持續(xù)集成和持續(xù)交付

AWS 開發(fā)人員工具可以幫助您安全地對應(yīng)用程序的源代碼進行存儲和版本控制烁挟,還可幫助您自動構(gòu)建婴洼、測試應(yīng)用程序并將其部署至 AWS 或本地環(huán)境。

您可以通過 AWS CodePipeline 來構(gòu)建一個組合或分別使用 AWS CodeBuild信夫、AWS CodeDeploy 和各種其他工具的持續(xù)集成或持續(xù)交付工作流窃蹋。

  • 軟件發(fā)布工作流 AWS CodePipeline
    • https://aws.amazon.com/cn/codepipeline/
    • AWS CodePipeline 是一種持續(xù)集成與持續(xù)交付服務(wù),可以實現(xiàn)快速而可靠的應(yīng)用程序和基礎(chǔ)設(shè)施更新静稻。每次更改代碼時警没,CodePipeline 都會根據(jù)您定義的發(fā)布流程模型來構(gòu)建、測試和部署您的代碼振湾。這使您能夠快速而可靠地提供各種功能和更新杀迹。


      自動化的持續(xù)集成和持續(xù)交付發(fā)布工作流程
  • 構(gòu)建與測試代碼 AWS CodeBuild

    • https://aws.amazon.com/cn/codebuild/
    • AWS CodeBuild 是一項完全托管的生成服務(wù),可編譯源代碼押搪、運行測試以及生成可供部署的軟件包树酪。
  • 部署自動化 AWS CodeDeploy

    • https://aws.amazon.com/cn/codedeploy/
    • AWS CodeDeploy 可將代碼自動部署至任何實例浅碾,包括 Amazon EC2 實例和本地服務(wù)器。借助 AWS CodeDeploy续语,您可以更輕松地快速推出新功能垂谢、避免在應(yīng)用程序部署過程中出現(xiàn)停機,并簡化應(yīng)用程序的更新工作疮茄。
  • 統(tǒng)一 CI/CD 項目 AWS CodeStar

    • https://aws.amazon.com/cn/codestar/
    • AWS CodeStar 可以讓您在 AWS 上快速開發(fā)滥朱、構(gòu)建和部署應(yīng)用程序。AWS CodeStar 提供一個統(tǒng)一用戶界面力试,您可以借此在一個位置輕松管理您的軟件開發(fā)活動徙邻。
      AWS CodeStar 支持的服務(wù)和工具

2. 微服務(wù)

使用容器無服務(wù)器計算來構(gòu)建和部署微服務(wù)架構(gòu)。

  • 生產(chǎn) Docker 平臺 Amazon Elastic Container Service

    • https://aws.amazon.com/cn/ecs/
    • Amazon Elastic Container Service (ECS) 是一項高度可擴展的高性能容器管理服務(wù)畸裳,支持 Docker 容器缰犁,并讓您能夠在托管的 Amazon EC2 實例群集上輕松運行應(yīng)用程序。


      Amazon ECS 的工作原理
  • 無服務(wù)器計算 AWS Lambda

    • https://aws.amazon.com/cn/lambda/
    • AWS Lambda 讓您無需預(yù)置或管理服務(wù)器即可運行代碼怖糊。借助 Lambda帅容,您幾乎可以為任何類型的應(yīng)用程序或后端服務(wù)運行代碼,而且全完全無需管理蓬抄。只需上傳您的代碼丰嘉,Lambda 就會處理運行和擴展代碼所需的一切工作并保證高可用性。
      AWS Lambda 工作原理

3. 基礎(chǔ)設(shè)施即代碼

使用代碼和模板來預(yù)置嚷缭、配置和管理您的 AWS 基礎(chǔ)設(shè)施資源饮亏。監(jiān)控并實現(xiàn)基礎(chǔ)設(shè)施合規(guī)性。

  • 模板化的基礎(chǔ)設(shè)施預(yù)置 AWS CloudFormation

    • https://aws.amazon.com/cn/cloudformation/
    • AWS CloudFormation 向開發(fā)人員和系統(tǒng)管理員提供了一種用于創(chuàng)建和管理一批相關(guān) AWS 資源的簡便方法阅爽,并通過有序且可預(yù)測的方式對其進行預(yù)置和更新路幸。您可以使用 AWS CloudFormation 的示例模板,也可以創(chuàng)建自己的模板付翁。


      AWS CloudFormation 工作原理
  • Chef 配置管理 AWS OpsWorks

    • https://aws.amazon.com/cn/opsworks/
    • AWS OpsWorks 是一項配置管理服務(wù)简肴,其使用的 Chef 自動化平臺可以將服務(wù)器配置作為代碼來處理。OpsWorks 利用 Chef 來自動處理您在 Amazon Elastic Compute Cloud (Amazon EC2) 實例上或本地計算環(huán)境中的服務(wù)器的配置百侧、部署和托管工作砰识。
  • 配置管理 Amazon EC2 Systems Manager

    • https://aws.amazon.com/cn/systems-manager/
    • Amazon EC2 Systems Manager 是一項管理服務(wù),可以幫助您自動收集軟件清單佣渴、應(yīng)用操作系統(tǒng)補丁辫狼、創(chuàng)建系統(tǒng)映像以及配置 Windows 和 Linux 操作系統(tǒng)。
  • 策略即代碼 AWS Config

    • https://aws.amazon.com/cn/config/
    • AWS Config 是一項完全托管型服務(wù)辛润,可為您提供 AWS 資源庫存膨处、配置歷史記錄和配置更改通知,以增強安全性和方便管理。

4. 監(jiān)控和日志記錄

  • 云和網(wǎng)絡(luò)監(jiān)控 Amazon CloudWatch

    • https://aws.amazon.com/cn/cloudwatch/
    • Amazon CloudWatch 是一項針對 AWS 云資源和在 AWS 上運行的應(yīng)用程序的監(jiān)控服務(wù)真椿。您可以使用 Amazon CloudWatch 來收集和跟蹤各項指標鹃答、收集和監(jiān)控日志文件、設(shè)置警報以及自動應(yīng)對 AWS 資源的更改突硝。
      Amazon CloudWatch 工作原理
  • 分布式跟蹤 AWS X-Ray

    • https://aws.amazon.com/cn/xray/
    • AWS X-Ray 可以幫助開發(fā)人員分析與調(diào)試分布式生產(chǎn)應(yīng)用程序测摔,例如使用微服務(wù)架構(gòu)構(gòu)建的應(yīng)用程序。借助 X-Ray狞换,您可以了解應(yīng)用程序及其底層服務(wù)的執(zhí)行方式避咆,從而識別導(dǎo)致性能問題和錯誤的根本原因并將其排除舟肉。


      AWS X-Ray 工作原理
  • 活動和 API 使用情況跟蹤 AWS CloudTrail

    • https://aws.amazon.com/cn/cloudtrail/
    • AWS CloudTrail 是一種記錄賬戶的 AWS API 調(diào)用修噪,并向您發(fā)送日志文件的 Web 服務(wù)。記錄的信息包括 API 調(diào)用者的身份路媚、API 調(diào)用的時間黄琼、API 調(diào)用者的源 IP 地址、請求參數(shù)以及 AWS 服務(wù)返回的響應(yīng)元素整慎。


      AWS CloudTrail 工作原理

5. 平臺即服務(wù)

無需預(yù)置和管理基礎(chǔ)設(shè)施與應(yīng)用程序體系即可部署 Web 應(yīng)用程序脏款。

  • 運行和管理 Web 應(yīng)用 AWS Elastic Beanstalk
    • https://aws.amazon.com/cn/elasticbeanstalk/
    • AWS Elastic Beanstalk 是一項易于使用的服務(wù),用于在熟悉的服務(wù)器(例如 Apache 裤园、Nginx撤师、Passenger 和 IIS )上部署和擴展使用 Java、.NET拧揽、PHP剃盾、Node.js、Python淤袜、Ruby痒谴、GO 和 Docker 開發(fā)的 Web 應(yīng)用程序和服務(wù)。
      您只需上傳代碼铡羡,Elastic Beanstalk 即可自動處理包括容量預(yù)置积蔚、負載均衡、自動擴展和應(yīng)用程序運行狀況監(jiān)控在內(nèi)的部署工作烦周。同時尽爆,您能夠完全控制為應(yīng)用程序提供支持的 AWS 資源,并可以隨時訪問底層資源读慎。

6. 版本控制

  • 私有 Git 托管 AWS CodeCommit
    • https://aws.amazon.com/cn/codecommit/
    • AWS CodeCommit 是一種完全托管的源代碼控制服務(wù)漱贱,這項服務(wù)使公司能夠輕松地托管安全且高度可擴展的私有 Git 存儲庫。您可以使用 CodeCommit 將來自源代碼的任何數(shù)據(jù)安全存儲為二進制文件贪壳,而且它可以無縫兼容您現(xiàn)有的 Git 工具饱亿。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子彪笼,更是在濱河造成了極大的恐慌钻注,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件配猫,死亡現(xiàn)場離奇詭異幅恋,居然都是意外死亡,警方通過查閱死者的電腦和手機泵肄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門捆交,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腐巢,你說我怎么就攤上這事品追。” “怎么了冯丙?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵肉瓦,是天一觀的道長。 經(jīng)常有香客問我胃惜,道長泞莉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任船殉,我火速辦了婚禮鲫趁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘利虫。我一直安慰自己挨厚,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布列吼。 她就那樣靜靜地躺著幽崩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寞钥。 梳的紋絲不亂的頭發(fā)上慌申,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天,我揣著相機與錄音理郑,去河邊找鬼蹄溉。 笑死,一個胖子當(dāng)著我的面吹牛您炉,可吹牛的內(nèi)容都是我干的柒爵。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼赚爵,長吁一口氣:“原來是場噩夢啊……” “哼棉胀!你這毒婦竟也來了法瑟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤唁奢,失蹤者是張志新(化名)和其女友劉穎霎挟,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體麻掸,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡酥夭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了脊奋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熬北。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诚隙,靈堂內(nèi)的尸體忽然破棺而出讶隐,到底是詐尸還是另有隱情,我是刑警寧澤最楷,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布整份,位于F島的核電站,受9級特大地震影響籽孙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜火俄,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一犯建、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓜客,春花似錦适瓦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疯攒,卻和暖如春嗦随,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敬尺。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工枚尼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砂吞。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓署恍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蜻直。 傳聞我的和親對象是個殘疾皇子盯质,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容