騰訊雲 Serverless CI/CD 自動化部署實戰

本文將爲你們講解 Serverless 工做原理、架構優點和 Serverless 應用的開發流程,以及如何使用 Serverless CI/CD 能力進行自動化部署。git

本次和你們分享的提綱以下:github

  1. 什麼是 Serverless CI/CD?數據庫

    • Serverless 介紹
    • Serverless 架構
    • CI/CD 與 Serverless CI/CD
  2. Serverless CI/CD 應用express

    • Serverless 應用開發流程
    • Serverless CI/CD 優點
  3. Serverless CI/CD 實戰服務器

    • 基於 Coding CI/CD 的自動化部署
    • 基於 Github CI/CD 的自動化部署

什麼是 Serverless CI/CD?

1. Serverless 介紹

下圖一張邏輯架構圖,最上面application,下面是系統資源。咱們能夠經過虛擬機、容器、數據庫、存儲等來提供系統資源。同時,咱們須要對這些系統資源進行維護,好比資源申請、環境搭建、容災、擴縮容等。架構

Serverless 是什麼呢?Serverless 就是把底層的這些資源以及對這些資源的運維都交給雲廠商來維護、這些資源對業務來講是黑盒的,業務只須要關注本身業務邏輯的開發便可。app

這種架構思想和方法就是 Serverless。框架

Serverless 直譯過來叫無服務器,實際上他不是真的不須要服務器,只不過服務器由雲廠商來維護。Serverless 是一種軟件系統架構思想和方法,不是軟件框架、類庫或者工具,它的核心思想:無須關注底層資源,好比:CPU、內存和數據庫等,只需關注業務開發。less

2. Serverless 架構

Severless 的架構以下圖所示。客戶端請求將發送的 API 網關,由雲函數進行處理,調用底層資源進行返回。利用雲函數自動伸縮的優點,免除用戶運維的煩惱。運維

使用 Severless 開發應用,能消除傳統海量服務器組件需求,下降開發和運維複雜性。Serverless 按需調用,按需伸縮,按使用收費,下降啓動成本。因爲底層資源調配工做都由雲廠商解決,用戶只需專一業務邏輯開發便可。

3. CI/CD 與 Serverless CI/CD

CI/CD 是 持續集成(Continuous Integration)和持續部署(Continuous Deployment)的簡稱。指在開發過程當中自動執行一系列腳原本減低開發引入 bug 的機率,在新代碼從開發到部署的過程當中,儘可能減小人工的介入。

Serverless CI/CD 基於 CI/CD 持續集成的 pipeline 機制,實現用戶開發部署的全自動化,提高開發效率。

Serverless CI/CD 應用

1. Serverless 應用開發流程

開發一個 serverless 應用,須要進行如下步驟:

  1. 引入組件:引入騰訊雲封裝好的 severless 組件(如 tencent-express),能夠快速進行開發。
  2. 配置 yml 文件:yml 文件是爲了定義您的應用組織資源配置。不一樣組件對應不一樣的 yml 配置。
  3. 業務開發:進行用戶自身業務的開發、調試、測試。
  4. 部署上線:把測試經過的功能發佈上線。爲了業務的穩定,建議進行灰度發佈。

更多詳細開發部署指南參考官網《 灰度發佈與環境隔離 》

因爲 serverless 應用開發過程當中調試是直接調用雲函數等資源,所以每次修改代碼後都須要執行部署命令,反覆執行命令行比較繁瑣。環境的隔離與灰度發佈若是人工配置容易產生錯誤,所以須要 CI/CD 能力支持。

2. Serverless CI/CD 優點

前面講到 CI/CD 經過在開發過程當中自動執行一系列腳原本減低開發引入 bug 的機率,在新代碼從開發到部署的過程當中,儘可能減小人工的介入。

使用 Serverless CI/CD,主要是利用 CI/CD 已有的優點,讓 serverless 開發部署自動化,提升開發的效率,減小人工產生的出錯。

附:Demo 源碼地址

One More Thing

當即體驗騰訊雲 Serverless Demo,獲取免費試用額度 👉 serverless/start

歡迎訪問:Serverless 中文網

相關文章
相關標籤/搜索