亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AWS 基礎設施即代碼(五)

發布時間:2020-06-25 01:26:38 來源:網絡 閱讀:1033 作者:wzlinux 欄目:云計算

基礎設施即代碼

概述

  • 手動配置的挑戰:可能因為人為錯誤導致缺乏可靠性,環境無法完全再現,同時需要額外文檔
  • 基礎設施即代碼,是軟件開發中用于創建可重用、可維護、可擴展及可測試基礎設施的技術、實踐和工具,而不降基礎設施定義為捆綁硬件的組件。
  • 基礎設施即代碼的好處:
    • 可靠性
    • 可再現性 - 可重復性、可重用性
    • 可維護性
    • 一致性
    • 并行化
    • 文檔性

AWS 基礎設施即代碼(五)

環境自動化

  • 只要可能,都應該自動對資源執行預置、終止和配置操作,通過取消手動流程,提高系統的穩定性和一致性、以及組織的效率
  • 使用可釋放的資源
    • 利用云計算的動態配置特性,將服務器和其他組件視為臨時資源
  • 自動部署相同配置的新資源
    • 終止未使用的資源
    • 自動切換到新的IP地址
    • 測試新資源的更新,然后用更新的資源替代舊資源

AWS 基礎設施即代碼(五)

AWS Lambda

概述

  • 無需配置和管理任何服務器和應用程序就能運行代碼。
  • 只需要上傳代碼,Lambda就會處理運行并且根據需要自動進行橫向擴展
  • Lambda 是完全托管的計算服務,在響應事件或以事件間隔運行無狀態代碼
  • Lambda支持的代碼語言
    • Python
    • Java
    • Node.js (JavaScript)
    • C#
    • Go
  • Lambda 可以支持:
    • 服務器
    • 容量需求
    • 部署
    • 擴展和容錯
    • 操作系統和語言更新
    • 指標和日志記錄
  • Lambda 可以實現:
    • 使用自己的代碼甚至原生庫
    • 并行運行代碼
    • 創建后端、事件處理程序和數據處理系統
    • 始終不必為閑置資源付費
  • 使用Lambda進行擴展
    • 擴展事件觸發Lambda,使用Lambda函數自動向其他AWS服務發起API調用
    • 擴展基于容器的實例,如Docker 、ECS等
    • 通過函數實現更智能的擴展,如通過分析性能數據來查找,而不僅僅是事件
    • 因為Lambda可以自動擴展,可以使用Lambda函數來替換一些EC2

AWS 基礎設施即代碼(五)

使用AWS Lambda 解耦基礎設施

  • Lambda因為其可用性高,占用成本有限,是處理數據的理想解決方案
  • Lambda 可以用簡單的微服務來取代傳統服務器,進一步解耦基礎設施
  • 當用實例即可處理的簡單功能和應用程序,而又不想為高可用和擴展煩惱,建議使用Lambda
  • 以下事件可以觸發 Lambda

AWS 基礎設施即代碼(五)

Lambda使用方法

  • 以.zip 格式上傳代碼,
  • 用計劃函數指定運行頻率
  • 用驅動型函數指定事件源
  • 指定所需的計算資源 - 23個級別,從128M最低CPU到1.5GB最高CPU,可以調整計算級別
  • 指定超時時限
  • 指定所需要訪問資源的VPC
  • 啟動函數 (100ms - 5 min 運行時間,最長為15min)
  • Lambda代碼存儲在S3中,并且靜態加密
  • Lambda僅支持無狀態函數
  • 每個 Lambda 函數都會在自己的 /tmp 目錄中接收到 500MB 的非永久性磁盤空間。
  • Lambda 支持代碼版本控制
  • 免費套餐包括 每月100萬個免費請求及40w內存GB-秒的計算時間
  • 可以借助CodePipeline 和 CodeDeploy 自動執行無服務應用程序的發布過程,也可以使用CloudFormation進行打包加載
  • Lambda@Edge
    • 響應CloudFront的請求,在全球運行代碼
  • 超出并發默認限制
    • 同步調用的 AWS Lambda 函數會返回一條限制錯誤信息(429 錯誤代碼)。
    • 異步調用的 Lambda 函數可以承受一定范圍內的流量突增大約 15 到 30 分鐘,之后再進來的事件將會以限制為理由遭到拒絕。
    • 如果調用的 Lambda 函數是用于響應 Amazon S3 事件,則被 AWS Lambda 拒絕的事件可能被 S3 保留 24 小時并在此期間反復重試

Lambda的應用場景

  • 將Lambda作為Web服務器

AWS 基礎設施即代碼(五)

  • 用Lambda可以執行 輪詢/偵聽、排隊、處理、自動擴展、冗余和負載均衡來替代傳統的復雜的數據處理方案

AWS 基礎設施即代碼(五)

  • 其他案例

AWS 基礎設施即代碼(五)

AWS 基礎設施即代碼(五)

AWS 基礎設施即代碼(五)

AWS 基礎設施即代碼(五)

AWS 基礎設施即代碼(五)

AWS CloudFormation

概述

  • 自動建模和設置AWS資源,降低管理從成本
  • 支持快速啟動新的測試環境,可靠復制環境
  • 便捷的預配置機制,適用于眾多 AWS 資源。它支持許多不同類型的應用程序的基礎設施需求,
  • 三大組件
    • 模板- 用JSON/YAML格式文件描述創建的資源,將其視為源代碼進行保存和管理
    • 引擎 - 利用AWS組件將模板解釋為AWS資源堆棧
    • 堆棧 - AWS CloudFormation創建資源的集合,可在AWS管理控制臺中跟蹤和審查
  • 每個賬戶默認只能創建200個堆棧,可申請擴展

模板

模板即是代碼

  • 在模板中完整定義應用程序堆棧(應用程序所需要的所有資源)
  • 定義模板運行時的參數(EC2大小、密鑰對等)
  • 模板的編輯方法
    • 直接用JSON/YAML文本編輯
    • 第三方VisualOps.io 模板編輯器
    • AWS CloudFormation Designer通過拖拽資源和編輯屬性而生成JSON模板
  • CloudFormation 模板組織
    • 模板可以在不同區域被重復使用以實現部署的一致性
    • 應基于所有權和應用程序生命周期將資源分配到不同的 CloudFormation 模板中
    • 不建議在一個模板內構建應用程序的所有環境,至少將網絡資源、安全資源和應用程序資源分開到不同的模板中
    • 即便是對于相同類型的資源,也應該避免不同的應用程序共享同一個模板
    • 共享模板,某些特定環境部分常亮依舊不會工作,需要用輸入參數等變量進行定義,如EC2秘鑰對,安全組名稱,子網ID,EBS快照ID等

AWS 基礎設施即代碼(五)

CloudFormation 模板剖析

AWS 基礎設施即代碼(五)

  • Description:
    • 描述模板的文本字符串
    • 不能使用參數或者函數
  • Metadata
    • 提供關于模板其他詳細信息的JSON對象
    • CloudFormation 的一些功能需要檢索的設置或配置信息
    • 可以在模板或資源級別指定,例如
      • AWS::CloudFormation::Init - 為cfn-init幫助程序腳本定義配置任務
      • AWS::CloudFormation::Interface - 在控制臺中顯示輸入參數時,定義的參數分組和排序
      • AWS::CloudFormation::Desinger - 描述資源在 CloudFormation Designer 是如何布局的
  • Resource
    • 要在堆棧中啟動的服務及其設置
    • 必須對每個資源進行單獨聲明
    • 可以指定同種類型的多個資源,但需要用逗號分隔開
    • 資源聲明中需要包含資源屬性
  • DependsOn
    • 指定只有在創建另一個資源后才能創建特定資源
    • 例如AutoScaling,EC2,ELB,彈性IP等需要關聯公有IP地址并處于一個VPC時,需要依賴于VPC網關連接
    • 等待條件 AWS::CloudFormation::WaitCondition
      • 可暫停創建堆棧并等待,直到收到信號后方繼續
    • 創建策略 CreationPolicy
      • 為不同操作設置執行策略,如等待特定時間或特定數量的信號等
  • Parameters
    • 可在運行是傳入模板的變量值
    • 允許在啟動模板時自定義堆棧
    • 可為每個參數指定允許值和默認值
    • 每模板最多60個參數
  • Mapping
    • 指定條件參數值的密鑰及其關聯值
    • 基于特定條件來自定義資源屬性
  • Condition
    • 控制在堆棧創立或更新期間是創建特定資源還是為特定屬性分配值
    • 通過定義資源或屬性定義的語句,比較兩個值是否相等等前提下進行有條件的創建資源
    • 比如利用同一模板完成對測試和生產環境進行不同Size的資源部署
  • Outputs
    • 查看堆棧的屬性時返回的值
    • 聲明要從 CloudFormation 控制臺查看的輸出值,或者是響應調用時返回的輸出值
    • 每模板最多60個

自定義資源管理

  • 為了處理不受 CloudFormation 直接支持的資源和功能,可以在創建堆棧是加入自己的邏輯
  • 支持WaitCondition,確保應用程序或管理系統等外部資源收到完成信號前,阻止其他資源創建
  • 如配置第三方訂閱,將身份認證秘鑰返回給需要的EC2實例
  • 使用Lambda將新的VPC與其他VPC建立對等關系
  • 使用模板創建堆棧時,若有任一資源創建失敗,所以已經創建的資源都會被回滾和刪除
  • 可以通過提交原始模板的修改版本來創建更改集以更新堆棧和資源
  • 默認情況下,刪除堆棧會刪除所有資源,但可以通過設置刪除策略來保留某些資源
  • 當任一資源刪除失敗,剩余未刪除資源都將被暫時保留,直到成功刪除整個堆棧

AWS Elastic Beanstalk

概述

  • 適用于Web應用程序和Worker process 環境的 一項自動部署和擴展服務, 是最快速最簡單的方式
  • 開發人員只需上傳應用程序,Elastic Beanstalk 將自動處理容量預配置、負載均衡、Auto Scaling 和應用程序運行狀況監控的部署細節
  • 支持 Docker
  • 支持多種語言,包括 PHP、Java、Python、Ruby、Node.js、.Net、Go等直接上傳運行
  • 在Apache、Nginx、Passenger 和 IIS服務器上部署
  • Beanstalk創建的環境是獨立的
  • Beanstalk 是一個包括環境、版本和環境配置的邏輯組合,概念上與文件夾類似
  • 可以自動部署和處理負載均衡、運行狀況監控、自動擴展、應用程序平臺管理、代碼部署等
  • 大多數現有的應用程序容器或平臺即服務解決方案在減少所需的編程量的同時,會大大降低開發人員的靈活性和控制。使用 AWS Elastic Beanstalk,開發人員可保留對支持其應用程序的 AWS 資源的完全控制。如果開發人員決定要管理基礎設施的某些(或全部)元素,可使用 Elastic Beanstalk 的管理功能無縫操作。
  • 可以輕松為每一個應用程序版本創建一個獨立的運行環境,由于是一次運行的,所以完成會就會自動刪除
  • 可以運行Docker環境

特性

  • 可以內置CloudWatch監控指標對基礎架構進行監控和管理,并且通過SNS發布通知
  • 開發人員可以完全控制支持其應用程序的AWS資源
  • 選擇最合適的EC2實例類型
  • 選擇合適的存儲和數據庫
  • 啟用對EC2實例的登錄訪問
  • 通過ELB啟用HTTPS來增強安全性
  • 調整應用服務器設置并傳遞變量
  • 調整Auto Scaling設置
  • 默認情況下應用程序是公開的,可以使配置VPC、設置安全組和nACL設置為私有。
  • 底層平臺建議設置每周兩個小時的維護時段進行新平臺版本的發布和更新

使用場景

  • 非常適用于藍綠部署的場景
  • 在全規模生產和最小規模預生產切換
  • 使用兩個ELB保持預熱狀態
  • 出現錯誤時可以實現快速回滾
  • 實際上 CloudFormation 也可以實現藍綠部署

AWS OpsWorks

概述

  • 利用Chef 和 Puppt 實現的配置管理服務,幫助配置和操作各種形態和規模的應用程序
  • 可以定義應用程序的整體架構和規范,包括軟件包安裝、軟件配置、資源等
  • 利用OpsWorks 生命周期工具可以簡化應用程序管理、減少部署周期數
  • 支持對Linux和Windows服務器的管理
  • 支持DevOps持續集成

管理

  • 有組織的方式對堆棧、層和應用程序進行建模和可視化
  • 堆棧
    • AWS將應用程序所需要的包括EC2,EBS,ELB等資源組稱為堆棧
    • OpsWorks 采用簡單和靈活地方式來創建、配置、管理和監視堆棧及應用程序
    • AWS可以使用OpsWorks 和 IAM來管理用戶權限,且兩者不排斥可以共同工作。
  • 層 Layer
    • 可以將整個應用程序分為多層來定義堆棧元素,每層服務于特定目的
    • 每層通過Chef任務列表來處理任務可以通過修改默認配置或添加任務來自定義或擴展圖層
    • 用戶可以完全控制安裝哪些軟件包,部署哪些應用程序,如何配置他們。
  • 應用程序
    • OpsWorks可以運行生命周期事件,每個應用程序可以在合適的事件自動運行一組指定的任務

AWS 基礎設施即代碼(五)

監控

  • OpsWorks可以將所有資源的指標發送給CloudWatch,以便可視化和設置警報
  • 支持各種自定義指標

AWS EC2 Run Command

概述

  • 提供簡單的方法自動執行常見的管理任務,包括
    • Linux Shell
    • Windows PowerShell
    • 安裝軟件或補丁
    • 可以跨多個實例執行命令
    • 使結果具有可見性
  • AWS 上還支持包括Chef、Puppt、Ansible 和 Salt等其他第三方自動化解決方案

Amazon API Gateway

概述

  • 可以在AWS上創建API,作為后端服務訪問數據、業務邏輯或功能的接口
  • 完全托管并接受處理高達數萬并發API調用時涉及的所有任務
  • 可以處理以下工作負載
    • Lambda
    • 使用AWS Step Function狀態機調用EC2,ECS, Beanstalk, Web應用程序
    • 可以與其他AWS服務集成,如Kinesis
  • 支持創建HTTP/REST API 和 WebSocket API
    • HTTP/REST API 是一組資源和方法,或者是終端節點。HTTP/REST API 可以部署到不同階段,并可克隆到新版本。
    • WebSocket API 可以在互連客戶端之間維持永久連接,以啟用實時消息通信。
  • 可以托管和使用不同版本和階段的API
  • 創建API秘鑰并分配給開發人員
  • 利用簽名v4授予API訪問權限
  • 限制并監控請求以保護后端系統
  • 與AWS Lambda高度集成
  • 如果使用JavaScript/AJAX來跨域訪問資源,必須在API Gateway上啟用CORS功能已確定可以調用非本站點資源

好處

  • 計量
    • 計量和限制第三方開放人員訪問API的計劃
  • 安全
    • 支持多種授權訪問工具
    • 保護系統免受DDOS***
  • 彈性
    • 默認提供托管緩存以存儲API響應
    • 通過Amazon CloudFront降低延遲
    • 一種低成本的無服務方案,可以自動彈性伸縮
  • 操作監控
    • 通過指標監控面板,監控服務調用情況
    • 包括調用次數、延遲數據和錯誤率
    • 收集錯誤日志、訪問日志和調試日志
  • 生命周期管理
  • 專為開發人員設計
    • 適用于iOS,Android和Java的新一×××發工具包
    • 支持OpenAPI規范(Swagger)
  • 實時雙向通信
    • 維持用戶間永久連接,支持消息傳輸
    • 請求/響應數據轉換

      API管理臺配置

  • 資源
    • 資源是一種類型化對象,屬于您的 API 的域。
    • 每個資源可能都關聯了一個數據模型,或與其他資源相關,并且可以響應不同的方法。
    • 您也可以將資源定義為變量來攔截對多個子資源的請求。
    • 資源策略
      • 資源策略是一種 JSON 策略文檔,您可以將其附加到某個 API 來控制指定的主體(通常是 IAM 用戶或角色)是否可以調用該 API。
      • 您可以使用資源策略讓來自其他 AWS 賬戶的用戶安全訪問您的 API,或者只允許從指定的源 IP 地址范圍或 CIDR 塊調用該 API
      • 資源策略可以與 Amazon API Gateway 中的 REST API 配合使用。
  • 方法
    • REST API 中的每種資源可以支持一個或多個標準 HTTP 方法。
    • 您將定義應每種資源應支持的動詞(GET、POST、PUT、PATCH、DELETE、HEAD 和 OPTIONS)及其實施方法。
  • 階段
    • 階段類似于標簽,定義了部署訪問路徑。例如,您可以定義開發階段,您還可以設置直接指向階段的自定義域名,這樣您就無需使用其他路徑參數了。
      • 生命周期
        • 借助 Amazon API Gateway,每個 REST API 都可以有多個階段。
      • 階段
        • 用于劃分 API 的開發生命周期,例如,在您構建了 API 并將其部署到開發階段后,或者當您準備好進行生產時,您可以將其部署到生產階段。
      • 階段變量
        • 階段變量可定義與某個階段相關的配置值的密鑰/值對。這些值與環境變量相似,可用于配置您的 API。
    • 使用計劃
      • 使用計劃可幫助您聲明針對第三方開發人員的計劃,即將訪問限制到特定 API、定義限制以及請求配額限制,并將這些限制與 API 密匙關聯。
      • 您還可以基于每個 API 密匙提取使用數據,以分析 API 使用情況并生成賬單單據。

選擇合適的解決方案

實際上實在便利性和控制性上尋找平衡

AWS 基礎設施即代碼(五)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳山县| 余江县| 盘山县| 太白县| 车致| 侯马市| 平罗县| 上杭县| 遂平县| 普宁市| 陆良县| 塘沽区| 迁西县| 铜陵市| 上高县| 左贡县| 西吉县| 阿合奇县| 江城| 普洱| 油尖旺区| 得荣县| 铜梁县| 徐闻县| 蒙阴县| 额济纳旗| 阿克苏市| 大英县| 东丰县| 苏尼特右旗| 双鸭山市| 宁晋县| 阳谷县| 汝南县| 广平县| 凤翔县| 上虞市| 浦县| 石屏县| 新巴尔虎左旗| 鄯善县|