0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

阿里云技术共创】因热爱,而编码

一、前言:

         前段时间,在做大企业采购寻源业务的整体上云项目的过程中,对普通企业上云的技术要点有了一些初步的认知,同时,对VPC,CSB,EDAS等优秀的产品印象深刻。在帮客户搭建VPC系统及运维的过程中,对EDAS也有着自己的个人理解。

EDAS 是一个围绕应用和微服务的PaaS平台,提供多样的应用发布和轻量级微服务解决方案,帮助用户解决在应用和服务管理过程中监控、诊断和高可用运维问题;

提供Spring Cloud和Dubbo的运行环境。Dubbo继续开始更新之后,越来越多的名星企业热衷使用Duubo作为企业RPC解决方案。而EDAS也天生对Dubbo协议支持良好,所以为大中小企业的应用上云铺平了道路,一切都显得是那么的自然。

最近,参加了阿里云的技术共创征文,于是参加了阿里云EDAS Serverless 参照官方demo体验了一把。

二、业务挑战:

今天大多数公司在开发应用程序并将其部署在服务器上的时候,无论是选择公有云还是私有的数据中心,都需要提前了解究竟需要多少台服务器、多大容量的存储和数据库的功能等。并需要部署运行应用程序和依赖的软件到基础设施之上。假设我们不想在这些细节上花费精力,是否有一种简单的架构模型能够满足我们这种想法?这个答案已经存在,这就是今天软件架构世界中新鲜但是很热门的一个话题——Serverless(无服务器)架构。

微服务(MicroService)是软件架构领域业另一个热门的话题。如果说微服务是以专注于单一责任与功能的小型功能块为基础,利用模组化的方式组合出复杂的大型应用程序,那么我们还可以进一步认为Serverless架构可以提供一种更加“代码碎片化”的软件架构范式,我们称之为Function as a Services(FaaS)。而所谓的“函数”(Function)提供的是相比微服务更加细小的程序单元。例如,可以通过微服务代表为某个客户执行所有CRUD操作所需的代码,而FaaS中的“函数”可以代表客户所要执行的每个操作:创建、读取、更新,以及删除。从这一层意思来说,我们可以简单地将Serverless架构与FaaS概念等同起来。

 

1.Serverless是什么

Serverless是变革。过去十年来,我们已经把应用和环境中很多通用的部分变成了服务。Serverless也有这样的趋势——如把主机管理、操作系统管理、资源分配、扩容,甚至是应用逻辑的全部组件都外包出去,把它们都看作某种形式的商品——厂商提供服务,我们掏钱购买。这是云计算向纵深发展的一种自然而然的过程。

  但是,Serverless给应用架构带来巨大的变化。直到现在,大多数云服务并没有从根本上改变我们设计应用的方式。比如,使用Docker时,把一个小“箱子”放到应用边上,但是它仍然是一个箱子,而我们的应用也没有显著改变。当我们把自己的MySQL实例托管到云上时,还是要思考需要怎样的虚拟机来处理负载,考虑故障转移问题。

  Serverless带来跃进式的变化。Serverless FaaS开启的是一种全新的应用架构,完全由事件驱动。更细粒度的部署,需要在 FaaS 组件外面持久化状态。Serverless FaaS把我们从编写逻辑组件中解放出来,但是我们必须将应用与云厂商提供的特定接口与模式集成。

  • 在 Serverless 应用中,开发者只需要专注于业务,剩下的运维等工作都不需要操心
  • Serverless 是真正的按需使用,请求到来时才开始运行
  • Serverless 是按运行时间和内存来算钱的
  • Serverless 应用严重依赖于特定的云平台、第三方服务

2.EDAS Serverless操作体验

使用EDAS Serverless 我们无需管理和维护集群与服务器,即可快速创建应用。使用 EDAS Serverless,我们可以专注于设计和构建应用程序,而不用管理运行应用程序的基础设施,这一点非常赞。并且 EDAS Serverless 根据应用实际使用的 CPU 和内存资源量进行按需付费,不用为闲置的资源付费。

EDAS 服务具有两种模式,一种是经典的集群方式,一种是 Serverless 模式。

  • 在经典的 EDAS 模式中:您可以对应用创建的基础设施和容器应用进行更细粒度的控制,比如选择应用实例的 ECS 规格,自定义集群类型。除了应用服务的本身的创建管理,您还需创建和管理应用的集群和服务器。
  • 在 EDAS Serverless 模式下:您无需创建底层虚拟化资源,可以直接在 EDAS Serverless 中选择实例的 CPU 和 Memory 规格并选择 War 包、Jar 包或镜像的部署方式进行应用部署。注意:EDAS Serverless 支持通用的 War 包和 Jar 包部署,如 Dubbo War/Jar,Spring War/Jar 等,但暂时还不支持 HSF 应用通过 War 包和 Jar 包部署,仅支持 HSF 应用通过镜像部署。

四、支持原生Dubbo和Spring Cloud操作体验:

近几年微服务的发展如日中天,而dubbo开源若干年不更新的情况下重启更新,对互联网行业的发展更是添了一把明火。因为EDAS对Dubbo和spring cloud的支持非常完美。

EDAS Serverless 让您无需管理和维护集群与服务器,即可快速创建应用。使用 EDAS Serverless,我们可以专注于设计和构建应用程序,而不是管理运行应用程序的基础设施。

以下任务将帮助您在 EDAS Serverless 集群中使用 Jar 包部署应用来实现 Dubbo 微服务的注册和发现。

4.1 开通EDAS serverless

也就是开通阿里云FAAS(函数即服务,即阿里云函数计算),如下图:

0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

4.2 创建VPC

一般情况下,当对网络有较高的安全要求时,建议创建 VPC、添加 ECS 实例,这里我以VPC为例子。

0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

  • 创建 VPC
  • 如果您打算创建 ECS 集群、发布普通应用,并对网络没有安全要求,可以跳过此步骤,使用经典网络即可。
  • 登录专有网络控制台,创建 VPC。详细步骤请参考搭建专有网络。
  • 说明:如果您尚未开通专有网络 VPC 服务,需要点击开通专有网络服务。进入 VPC 售卖页面,阅读并勾选专有网络VPC 开通协议,然后单击立即开通。
  •  VPC 同步到 EDAS 控制台中。
  • 登录 EDAS 控制台,在左侧导航栏中选择资源管理 > VPC 
  •  VPC 页面中选择创建的 VPC 所在地域(如:华东1),在页面右上角单击同步 VPC 
  • 确认创建的 VPC 已同步到 EDAS 控制台。

 

创建 ECS 实例

  • 登录 EDAS 控制台。
  • 在左侧导航栏中选择资源管理 > ECS
  • 选择您要创建 ECS 实例的地域及命名空间(可选),在页面右上角单击创建实例。
  •  ECS 购买页面,根据您的需要,参考创建 ECS 实例,完成 ECS 的规格配置和支付。

 

4.3 创建命名空间

在地域(Region)中构建的隔离的资源环境。 当您对资源有较高的安全要求时,需要创建命名空间。

0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

5.4 基于Dubbo创建服务提供者和消费者

服务提供者       

服务消费者

5.4.1 服务提供者

此服务提供者提供了一个简单的 echo 服务,并将自身注册到服务发现中心。

注意:目前 EDAS Serverless 正在公测中,只开放了华北 2 (北京)华东 1 (杭州)区域 。

  1. 登录 EDAS 控制台

  2. 进入 EDAS Serverless 控制台。

    1. 在控制台左侧导航栏选择应用管理
    2. 在页面左上角切换地域到 华北 2 (北京)华东 1 (杭州)
    3. 在页面右上角单击创建 Serverless 应用(公测),然后在确认切换至 EDAS Serverless 版对话框中单击确定进入创建应用页面。

0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

 

创建应用应用基本信息页签内,设置应用相关信息,然后单击下一步:应用部署配置

0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

  • 应用名称:输入应用名称。允许数字,字母,下划线以及中划线组合,仅允许字母开头,最大长度 36 个字符。
  • 命名空间:在下拉菜单中选择命名空间。如果不知怎么选择时可选命名空间为默认
  • VPC 网络:在下拉菜单中选择一个VPC 和 vswitch 。
  • 应用实例数:选择要创建的实例个数。
  • 实例规格:单击请选择,在选择实例规格页面内选择实例的 CPU 和 Memory 规格。当完成选择后会在应用基本信息页面显示所选择的规格。
  • 应用描述:填写应用的基本情况,输入的描述信息不超过100个字符。

应用部署配置页面,选择 Jar 包部署,按照页面指示进行配置。完成设置后单击确认创建

0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

  • Java 环境:选择 JDK7 或 JDK8

  • 文件上传方式:可选择上传 Jar 包 Jar 包地址两种方式来上传。

    • 上传 Jar 包:下载 service-provider,待样例下载完成之后单击选择文件,选择刚下载 Jar 包 service-provider 并上传。
    • Jar 包地址:右键单击 service-provider 并单击选择复制链接地址,将该地址粘贴在Jar 包地址栏中。

    注意:应用部署程序包名仅允许字母、数字,及中划线“-”、下划线“_”四个特殊符号。

  • 版本:设置版本(如:1.1.0),不建议用时间戳作为版本号。

  • 启动命令设置(可选):参照如何设置 Jar 启动命令配置。

  • Hosts 绑定设置(可选):参照如何设置 Hosts 绑定配置。

  • 应用健康检查(可选):参照如何设置应用健康检查配置。

5.4.2 服务消费者

参照上面的服务提供者的步骤创建服务消费者。

  1. 在应用列表页面右上角单击创建 Serverless 应用
  2. 在应用基本信息页面,输入应用相关信息,然后单击下一步:应用部署配置。
    • 应用名称:输入与服务提供者区分开的应用名称。允许数字,字母,下划线以及中划线组合,仅允许字母开头,最大长度 36 个字符。
    • 命名空间:选择与服务提供者相同的命名空间。
    • VPC 网络:在下拉菜单中选择选择与服务提供者相同的 VPC 和 vswitch。
    • 应用实例数:选择要创建的实例个数。
    • 实例规格:单击请选择,在选择实例规格页面内选择实例的 CPU 和 Memory 规格。当完成选择后会在应用基本信息页面显示所选择的规格。
    • 应用描述:填写应用的基本情况,输入的描述信息不超过100个字符。
  3. 在应用部署配置页面,选择 Jar 包部署,完成设置后单击确认创建

    • Java 环境:选择 JDK7 或 JDK8
    • 文件上传方式:可选择上传 Jar 包 Jar 包地址两种方式来上传。如果选择 Jar 包地址,则在配置栏填写 Jar 包的地址。

      • 上传 Jar 包:下载 service-consumer,待样例下载完成之后单击选择文件,选择刚下载 Jar 包 service-consumer 并上传。
      • Jar 包地址:右键单击 service-consumer 并单击选择复制链接地址,将该地址粘贴在Jar 包地址栏中。

      注意:应用部署程序包名仅允许字母、数字,及中划线“-”、下划线“_”四个特殊符号。

    • 版本:设置版本(如:1.1.0),不建议用时间戳作为版本号。
    • 启动命令设置(可选):参照如何设置 Jar 启动命令配置。
    • Hosts 绑定设置(可选):参照如何设置 Hosts 绑定配置。
    • 应用健康检查(可选):参照如何设置应用健康检查配置。
  4. 在创建完成页面单击应用详情页,进入应用详情页查看应用的基本信息和实例部署信息。在应用详情页中实例部署信息页签查看实例的运行状态,如果运行状态显示为绿色的 Running,说明应用发布成功

5.4.3 服务调用验证

1、在左侧导航栏单击应用列表,在应用列表中找到您所创建的服务提供者和服务消费者应用,单击应用名称进入应用详情页。通过查看服务列表和实时日志可以验证应用成功发布并互相调用。

2、在左侧导航栏单击服务列表,可以分别查看应用发布和消费的服务。

  • 服务提供者可以在发布的服务页签查看到所发布的服务。

0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

  • 服务消费者可以在消费的服务页签查看到所消费的服务。

0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

  • 进入服务消费者应用,在左侧导航栏单击实时日志,可以看到消费者服务在不断输出 hello12345

0基础快速入门运维-EDAS Serverless(FAAS) 产品评测

  1.  

五、与其他运维工具对比,优劣势

Serverless领域 AWS Lambda是先行者,随后其他厂商相继推出了自己的函数服务,包括Azure Function,Google Cloud Functions。阿里云的Serverless产品函数服务(Function Compute)现在正在公测,期待强势崛起。

六、结合具体的业务场景,阐述对EDAS的整体认知,以及优化方向。

阿里云未来会围绕Serverless概念构建完整的生态体系,产品层面将全力打造API Gateway,Docker,Function Compute等为主的Serverless基础产品序列,同时围绕基础框架提升大数据服务能力,推动API经济发展,使阿里云成为中国Serverless的领导者。
上一篇:流式架构与反应式编程总述


下一篇:0基础快速入门运维-EDAS Serverless(FAAS) 产品评测