Day09 - 用 Cloud Run 部属 Serverless 容器应用

什麽是 Serverless ?

若要将应用程序部属到生产环境,会需要考虑很多问题,包括计算资源是否充足、如何做好负载平衡等等。对於开发人员来说,应该要专心在撰写程序上,而 Serverless 的目的就是替开发人员免去管理服务器以及设定部属的负担。

Serverless( 无服务器架构 )是一种全托管的计算服务,让开发者无需管理基础架构,只要准备好你的应用程序,就能将服务轻松部属完成,不仅简化了开发流程,也能提升开发应用的速度。

只要写好 Code ,剩下的部属问题通通不用烦恼。

在 GCP 上根据准备的应用程序,有不同的 Serverless 服务可以做使用

  • 只有程序码
    • Cloud Functions
  • 准备如 Node.js、Java 的专案
    • App Engine
  • 准备 Container Image
    • Cloud Run

Cloud Run 介绍

Cloud Run 是 Google 的 Serverless 产品,可以让使用者轻松部属无状态容器,并且透过 HTTP 请求来呼叫它,主要特色有以下几点

  • Bringing Serverless to Containers,不须管理基础架构也能建置容器
  • 会根据流量自动调整资源,且只依据实际使用的资源收费
  • 结合GKE,在GKE丛集上也能执行无服务器应用

部属 Serverless 容器应用

那到底 Cloud Run 能带给开发人员怎样的体验,我们就来透过实际操作体验一下。本次 Lab 会需要已经存放在 Google Container Registry 的 Image ,还没有的人可以参考 Day08 的教学。

  1. 进入 GCP 网站

  2. 点击console左上角 -> 下拉找到无服务器 -> 点选 Cloud Run

https://ithelp.ithome.com.tw/upload/images/20210909/201392357Gcnx2X9Ef.png

  1. 点选建立服务

https://ithelp.ithome.com.tw/upload/images/20210909/20139235THHIg3m3Cq.png

  1. 容器映像档网址 -> 点击选取

https://ithelp.ithome.com.tw/upload/images/20210909/20139235YbwVYsUw28.png

  1. 找到建立好的 Image 後点击选取

https://ithelp.ithome.com.tw/upload/images/20210909/20139235v4TEERKPQv.png

Cloud Run 只能使用的存放在 Google Container Registry 或是 Artifact Registry 的 Image

  1. 输入以下资讯

服务名称: node-project
区域: asia-east1 (台湾)
执行个体数量上限: 3

https://ithelp.ithome.com.tw/upload/images/20210909/20139235NeVKjmBKda.png

  1. 点选进阶设定,容器通讯埠设定为8080

https://ithelp.ithome.com.tw/upload/images/20210909/201392358sTajS9Dqr.png

  1. 下拉後点击下一步

  2. Ingress 选择 允许所有流量,验证选择允许未经验证的叫用要求 -> 点击建立

https://ithelp.ithome.com.tw/upload/images/20210909/20139235x9G7eSkzK4.png

  1. 等待一段时间服务就建置完成了,可以点击网址来查看

https://ithelp.ithome.com.tw/upload/images/20210909/201392356ovLtjtybz.png

可以看到服务已经正常运行。

https://ithelp.ithome.com.tw/upload/images/20210909/20139235mCX1Qa2Ni5.png

总结

Serverless 是一种 NoOps 的解决方式,让只有开发人员的 Team 也能进行部属,这种方式既能省时间又减少成本,缺点就是少了建置基础环境的弹性,当部署的环境更加复杂时, Serverless 就不是万灵丹,没办法满足所有的需求,所以 DevOps 技术还是有其不可取代性。

云端服务百百种,只要找到适合的解决方式就行了 !!


<<:  Laravel 实作 Webhooks

>>:  Day 9 - Rancher 丛集管理指南 - 架设 K8s(下)

#21 No-code 之旅 — 如何让网站在分享时看起来漂亮和有吸引力?Open Graph (OG) 简介

大家有没有发现当有人在社群软件分享网址的时候,通常除了网址本身还会看到一张缩图加上网站的标题和描述?...

Day01 前言

从小到大看了上万篇的文章,绝大部分的文章开头肯定是少不了跟读者打招呼的。 大家安安,我这次报名的题目...

C# Web API 502 Bad GateWay 问题排解

前情提要 使用HttpClient Post时,碰到API无回应,大约两分钟後出现502 Bad G...

[Day01] Flutter GetX 前言 x 建专案

Hi 大家好! 我是Clark, 2018年踏上了iOS App的学习与开发, 因缘际会接触了Flu...

DAY 14 Big Data 5Vs – Variety(速度) Glue(2) ETL

接续基本元件介绍:Glue ETL功能栏中的可以建立ETL Job、Workflow和Bluepri...