作者 | 唐慧芬(黛忻) 阿里云产品专家

导读:毫无疑问,Serverless 能够在效率和成本上给用户带来巨大收益。那具体到落地又应该怎么做呢?本文就给大家详细解读 Serverless 的落地实践。

Serverless 落地企业级应用的挑战

Serverless 技术是继虚拟机、容器之后的第三代通用计算技术。相对于传统后台架构,Serverless 具有免运维、省成本、快速部署交付、灵活弹性等优点,近年来获得越来越多企业和开发者的关注和青睐。但对于企业级应用落地来说,仍存在一些挑战。

根据咨询公司 O ‘Reilly 2019 年底的一份统计报告表明:已有 40% 的组织正在使用 Serverless 技术,剩下的 60% 中认为最大的 TOP 3 挑战是:

  • 开发难度和入门门槛高,业务轻量化困难,不能平滑地迁移现有应用 ;

  • 担心被云厂商锁定,如 FaaS 形态的 Serverless 产品,每个厂商都希望推出自己的标准,缺乏开源的规范和开源的生态支持。相似的一幕曾经在容器领域上演,直到后来 Kubernetes 成为事实标准,Serverless 还在寻找自己的事实标准;

  • 如何方便地本地开发调试、监控,和现有业务做深度整合。

SAE 产品介绍

那么摆在 Serverless 技术落地面前的三座大山该如何解决呢?给大家分享一款低门槛,无需任何代码改造就能直接使用的 Serverless PaaS 平台(SAE),是企业在线业务平滑上云的最佳选择。

SAE 提供了成本更优、效率更高的应用托管方案。底层基于统一的 K8s 技术底座,帮用户屏蔽复杂的 IaaS 层和 K8s 集群运维,提供计算资源、弹性、隔离性等能力,用户只需关心应用实例的规格和实例数。

在应用层,除提供了生命周期管理、多发布策略外,还提供监控、日志、微服务治理能力,解决应用可观测性和治理需求。同时提供一键启停、应用编排等高级能力,进一步提效和降本。核心场景主要面向在线应用:微服务应用、Web 应用、多语言应用等。

在开发者工具方面,和 CI/CD 工具做了良好的集成,无论是 Jenkins 还是云效,都能直接部署应用到 SAE,也可以通过 Cloud Toolkit 插件工具实现本地一键部署应用到云端,可以说 SAE 覆盖了应用上云的完整场景。

SAE 除了 Serverless 体验本身所带来的极致弹性、免运维、省成本等特性之外,重点在应用层给用户提供了全栈的能力,包括对微服务的增强支持,以及整合了和应用息息相关能力,包括配置、监控、日志、流量控制等。再加上用户零代码的改造,这也是 SAE 区别其它 Serveless 产品的重要优势,平滑迁移企业在线应用。

SAE 有几个典型的使用场景:一个是存量业务上云,特别是微服务、Java 应用,同时也支持其他语言的单体应用快速上云/搬站,满足极致交付效率和开箱即用的一站式体验。在行业方面,SAE 特别适合有比较大的流量波动的在线业务,比如电商大促、在线教育等行业的场景。另外 SAE 作为应用 PaaS 也可以被上层的行业 SaaS 所集成,帮助用户更快地构建行业 SaaS。

产品核心指标

SAE 三个核心的指标:容器启动时长 20s(指标定义是从 pull image 到容器启动的耗时,不包括应用启动时间),接下来我们会通过各种技术优化把它优化到 5s 内,保证用户在突发场景下的快速扩容效率。最小规格支持 0.5core 1GiB,满足更细粒度的资源诉求。相比 ECS,SAE 部署一套开发测试环境的成本可以节省 47%~57%。

最佳实践

通过前文介绍, 我们了解了产品的特性、优势、适用场景,最后给大家详细介绍几个 Serverless 落地的最佳实践案例。

1. 低门槛微服务架构转型的解决方案

随着业务的快速增长,很多企业都面临单体向微服务架构改造转型的难题,或者开源自建的微服务框架(Spring Cloud / Dubbo)能力不再能满足企业稳定性和多样化的需求。通过 SAE 提供开箱即用的微服务能力和稳定性兜底能力,已让这些企业低门槛快速完成微服务架构转型,支撑新业务快速上线,让企业专注于业务本身。

可以说,SAE 是 Serverless 行业最佳的微服务实践,同时也是微服务行业最佳的 Serverless 实践。

2. 免运维、一键启停开发测试环境的降本方案

中大型企业多套环境,往往开发测试、预发环境都不是 7*24 小时使用,长期保有应用实例,闲置浪费很高,有些企业 CPU 利用率都快接近 0,降本诉求明显。通过 SAE 一键启停能力,让这些企业得以灵活按需释放资源,只开发测试环境就能节省 2/3 的机器成本,非常可观。

3. 精准容量、极致弹性的解决方案

电商类、安防行业等往往会有一些不可预期的突发流量高峰,之前他们都是提前预估峰值,按照峰值保有 ECS 资源,但经常出现容量预估不准(资源浪费 or 不足),更严重的甚至会影响系统的 SLA。

采用压测工具 + SAE 的方案后,根据压测结果精准设置弹性策略期望值,然后和实时的监控指标比对,系统自动进行扩缩操作,再也无需容量规划,并且弹性效率能做到秒级,轻松应对峰值大考。

4. 构建高效闭环的 DevOps 体系

SAE 构建了高效闭环的 DevOps 体系,覆盖了应用的开发态、部署态、运维态的整个过程。中大型企业往往都使用企业级 CI/CD 工具 Jenkis / 云效部署 SAE 应用,完成从 Source Code - 构建 - 部署全链路。中小企业/个人开发者往往选择开发者工具 Maven 插件、IDEA 插件一键部署应用到云端,方便本地调试,提升开发者体验。完成部署后,即可进行运维态的治理和诊断,如限流降级、应用诊断,数据化运营分析等。

总结

总结一下,本文主要是围绕在线应用的 Serverless 落地实践展开的。开篇提到的几个落地挑战在 SAE 产品中基本都能得到很好的解决:

  • 不用修改编程模型,零代码改造,对开发者来说零门槛平滑迁移企业存量应用;

  • 底座基于 K8s(容器界的事实标准),上层提供的应用层全栈能力对用户零侵入,因此不用担心厂商锁定问题,而是让用户更关注应用视角,获得一站式 PaaS 层的体验;

  • 调试、监控、可观测性方面,SAE 和开发者工具做了良好的集成打通,接下来会越来越逼近开发者熟知的 ECS 运维体验。总体来讲,SAE 是企业在线业务平滑上云的最佳选择。

从零入门 Serverless | 在线应用的 Serverless 实践的更多相关文章

  1. 从零入门 Serverless | 一文详解 Serverless 技术选型

    作者 | 李国强 阿里云资深产品专家 今天来讲,在 Serverless 这个大领域中,不只有函数计算这一种产品形态和应用类型,而是面向不同的用户群体和使用习惯,都有其各自适用的 Serverless ...

  2. 从零入门 Serverless | 架构的演进

    作者 | 许晓斌 阿里云高级技术专家 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复 入门 ,即可获取 Serverless ...

  3. 从零入门 Serverless | 一文讲透 Serverless Kubernetes 容器服务

    作者 | 张维(贤维) 阿里云函数计算开发工程师 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致弹 ...

  4. 共克时艰,停工不停学 Serverless 在线课堂免费开课

    二月份,Serverless 团队联合腾讯云大学与云+社区免费推出 Serverless 在线直播课程,课程涵盖 Serverless 架构解密.技术解析以及不同应用场景下的最佳实战指导,让你从 0 ...

  5. Serverless 下的微服务实践

    作者:弈川 审核&校对:筱姜.潇航 编辑&排版:雯燕 微服务架构介绍 微服务架构诞生背景 在互联网早期即 Web 1.0 的时代,当时流行的是单体应用,研发团队比较小,主要是外部网页, ...

  6. 《Spring Boot 入门及前后端分离项目实践》系列介绍

    课程计划 课程地址点这里 本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发 ...

  7. atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

    atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...

  8. 《Spring Boot 入门及前后端分离项目实践》目录

    开篇词:SpringBoot入门及前后端分离项目实践导读 第02课:快速认识 Spring Boot 技术栈 第03课:开发环境搭建 第04课:快速构建 Spring Boot 应用 第05课:Spr ...

  9. 从零入门 Serverless | Serverless Kubernetes 应用部署及扩缩容

    作者 | 邓青琳(轻零) 阿里云技术专家 导读:本文分为三个部分,首先给大家演示 Serverless Kubernetes 集群的创建和业务应用的部署,其次介绍 Serverless Kuberne ...

随机推荐

  1. pgsql基本介绍

    join on 与数学原理 pgsql切换数据库 直接输入 \C youdatabasename 即可 \d 表名 -- 得到表结构 select * from tablename查看表的数据 相信有 ...

  2. ES6扩展——箭头函数

    1.箭头函数 在es6中,单一参数的单行箭头函数语法结构可以总结如下: const 函数名 = 传入的参数 => 函数返回的内容,因此针对于 const pop = arr => arr. ...

  3. 快速使用 Docker 上手 Sentry-CLI - 玩转 Source Maps 使用 (create-react-app)

    系列 快速使用 Docker 上手 Sentry-CLI - 创建版本 入门 使用 sentry-cli 上传 source maps 时,您需要设置构建系统以创建版本(release)并上传与该版本 ...

  4. docker日常使用指南

    docker日常使用指南 目录 docker日常使用指南 前言 1.基础知识 1.1 docker是什么 1.2 与虚拟机(VM)的区别 1.3 镜像与容器 2.安装 2.1 在线安装 2.2 离线安 ...

  5. Vue Abp vNext获取当前登录用户

    系统默认提供了获取当前用户的api方法 https://localhost:44364/api/identity/my-profile 手工实现方法:abp后台获取当前用户需要在AppService应 ...

  6. k8s核心资源之Pod概念&入门使用讲解(三)

    目录 1. k8s核心资源之Pod 1.1 什么是Pod? 1.2 Pod如何管理多个容器? 1.3 Pod网络 1.4 Pod存储 1.5 Pod工作方式 1.5.1 自主式Pod 1.5.2 控制 ...

  7. MongoDB索引的简单理解

    目录 MongoDB索引 1.语法准备 2.数据准备: 3.索引 3.1 唯一索引 3.2 单键索引 3.3 多键索引 3.4 复合索引 3.5 交叉索引 3.6 部分索引 3.7覆盖索引 3.8 全 ...

  8. Git 初识和使用

    目录 目录 目录 概念 工作区/暂存区/版本库 master 版本号 常见命令 环境搭建 Linux 下 Git 和 GitHub 环境的搭建 Git 本地操作 本地仓库的创建和使用 查看信息 查看状 ...

  9. 【第二十篇】-Maven IntelliJ之Spring Cloud直播商城 b2b2c电子商务技术总结

    Maven IntelliJ IntelliJ IDEA 已经内建了对 Maven 的支持.我们在此例中使用的是 IntelliJ IDEA 社区版 11.1. IntelliJ IDEA 的一些特性 ...

  10. 教你搞懂Jenkins安装部署!

    前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用 ...