全部產品
Search
文件中心

Function Compute:什麼是應用中心

更新時間:Jul 06, 2024

Serverless應用中心是阿里雲面向Serverless應用的一站式開發及生命週期管理平台。通過Serverless應用中心,您可以有效聚焦業務情境,快速開發及部署Serverless應用、白屏化操作資源提高營運效率,實現應用的全生命週期的管理。本文介紹Serverless應用中心的相關概念、優勢以及功能。

使用說明

關於計費

Serverless應用中心是個免費的平台,本身不會收取任何費用,但是不同模板以及環境會訪問一些雲端服務,這些服務可能會產生費用。具體計費詳情,請參考具體雲產品價格說明。

關於許可權

通過Serverless應用中心部署應用時,可能會訪問其他雲端服務,例如,部署Function Compute的服務和函數資源,建立或更新VPC、NAS、SLS相關資源等,此時需要授予Function Compute相應的存取權限。首先為應用或環境關聯一個RAM服務角色,然後將目標授信服務設定為Function Compute,應用中心使用AssumeRole - 擷取扮演角色的臨時身份憑證方式訪問使用者的雲端服務。

為了簡化授權操作步驟,Serverless應用中心提供了系統預設角色,即AliyunFCServerlessDevsRole。該角色包含了應用中心需要訪問的部分雲資源許可權。您可以登入RAM角色管理主控台,查看AliyunFCServerlessDevsRole角色的許可權內容。

由於AliyunFCServerlessDevsRole角色包含的許可權是較粗粒度的許可權,如果需要定製更細粒度的許可權,您可以為應用或環境關聯其他角色及相關權限原則。

說明

為了遵循最小授權原則,不建議為應用直接複用服務中指定的角色。應用使用的角色和服務角色使用情境不同,具體說明如下。

  • 應用角色的用途是管控鏈路,即在應用部署階段訪問雲端服務,例如,建立VPC及交換器、構建並上傳ACR鏡像或更新函數等。

  • 服務角色的用途是資料鏈路,即在函數調用階段訪問雲端服務,例如,掛載ENI網卡、拉取ACR鏡像或將函數執行日誌寫入SLS等。

優勢

通過Serverless應用中心,使用者在部署應用之前,無需進行構建、打包和發布等額外操作,即可通過應用中心的天然GitOps能力,快速部署和管理應用。Serverless應用中心協助使用者快速聯動雲上的上下遊服務,輕鬆沉澱最佳實務。

  • 讓開發人員可以通過控制台操作,更簡單、更方便、更快速地體驗和上手Serverless應用。

  • 讓Serverless應用可以以一種更為科學、安全與穩定的方法,進行開發、建立、更新以及營運、迭代等。

  • 將傳統的資源以應用的維度進行彙總、管理,可以讓開發人員真正意義上聚焦業務,聚焦應用,而不再是零散在不同產品頁面上的資源。

功能

Serverless應用中心為開發人員提供了Web開發架構、Web應用、人工智慧、音視頻處理和檔案處理等在內的10個分類近百款熱門 App。無論是全景Web頁面錄製、二維碼產生工具、PDF檔案添加浮水印、輕商城應用、KodBox應用等,還是Django、Flask、SpringBoot、Express等各類開發架構等,都可以通過應用中心一鍵建立並快速體驗。通過應用中心的天然GitOps能力,開發人員也可以快速地對應用進行二次開發與應用的發布上線,以適應個人化的需求,滿足更複雜的業務情境。

除通過模板快速建立之外,Serverless應用中心還提供Serverless應用匯入能力,對於符合Serverless Devs應用規範的應用(即包括了業務代碼與資源描述檔案,例如s.yaml等),可以快速匯入,並進行環境的劃分、流水線的建立等。

說明
  • 應用中心提供大量應用案例,旨在協助開發人員快速體驗和二次開發。針對定製化需求,開發人員可以在此基礎上,進行二次開發,以實現更多能力。

  • 應用中心整合了各種應用模板,關於模板本身的問題,不在Function Compute的維護服務涵蓋範圍內。

相關概念

應用

一個Serverless應用的完整描述。應用可以關聯一個代碼倉庫、多個環境和多條流水線。

應用和函數的區別

  • 函數託管的是代碼交付物(包括代碼ZIP包/JAR包/WAR包/鏡像),關注的是代碼的運行態及營運態。函數提供了各種運行時來載入並執行代碼交付物。

  • 應用面向的是源碼(包括Github/Codeup/Gitee/Gitlab),關注的是Serverless軟體開發及交付的生命週期。應用納管了代碼倉庫、函數、基礎設施資源,目前內建了豐富的應用模板及DevOps能力,實現使用者從入門Serverless到上線生產的完整工作流程。

環境

描述測試、預發、生產類別的具體環境。環境的作用如下所示。

  • 物理隔離。例如地區、VPC和NAS隔離等。

  • 提供BaaS相關能力。例如管理的資料庫和儲存等。

  • 提供函數配置差異化能力。例如執行個體規格和記憶體等。

通過環境,能完成應用部署在相互隔離(非強制)的網路空間,並且為業務提供差異化的配置注入能力。典型的使用情境如下所示。

  • 研發迭代流程需要,例如測試、預發、生產環境。

  • 出於容災的考慮,需要將服務進行多地區部署,每個地區多可用性區域部署,每個地區或者可用性區域部署一套生產環境。

  • 出於效能及延遲的考慮,中國內地業務部署華北2(北京)、華東1(杭州)和華南1(深圳)三個資料中心,海外業務部署新加坡和美國(維吉尼亞)兩個資料中心,每個資料中心下部署一套環境。

  • 出於多租的考慮,將服務的不同租戶劃分到不同環境上,每個環境服務一類租戶。

  • 出於法律法規的考慮,例如,歐洲的資料保護法律要求歐洲的使用者資料必須存放到歐洲,因此需要在歐洲部署一個獨立環境,非歐洲的核心業務部署在另外的環境上。

  • 出於演練及安全生產的考慮,需要劃分出獨立的環境進行大促演練、安全生產巡檢等操作。

CI/CD

應用中心提供了Serverless的流水線能力,協助使用者解決CI/CD情境的定義與執行問題。使用者可以通過模板的方式,在應用中心預定義一個構建、部署、審批、上線的流程,並通過手動觸發或代碼變更觸發的方式執行,將代碼發布到Serverless產品。

流水線目前支援兩種觸發方式:

  • 手動觸發

    可以在環境管理頁面單擊立即部署或者選擇其他版本重新部署,觸發流水線的執行。

  • Git事件觸發

    對代碼倉庫提交變更,包括推送代碼、提交PR或MR等。

成功觸發流水線後會建立一個部署版本,並且會記錄代碼Commit、應用配置、環境配置和流水線配置的快照,通過版本管理可以實現快速復原的能力。

流水線模板

使用者需要在建立環境或應用的流程中,為應用中心預設流水線模板。

任務

任務是流水線執行的基本單位,一個流水線由多個工作群組成。不同任務會運行在不同獨立的執行個體上。任務目前運行了應用預設的程式,可以按照使用者自訂的方式運行指令碼。