serverless简介

Posted by 刘勇(lyonger) on 2020-05-10

什么是云原生

  • Pivotal是云原生应用的提出者,并推出了 Pivotal Cloud Foundry云原生应用平台和Spring开源Java开发框架,成为云原生应用架构中先驱者和探路者。

  • 最初云原生应用架构主要有下面几个特征:

    • 符合12因素应用
    • 面向微服务架构
    • 自服务敏捷架构
    • 基于API的协作
    • 抗脆弱性
  • 2015年Google主导成立了云原生计算基金会(CNCF),起初CNCF对云原生(Cloud Native)的定义主要有下面三个方面。

    • 应用容器化
    • 面向微服务架构
    • 应用支持容器的编排调度
  • 随着近期云原生的不断壮大和火爆,到了2018年,很多主流的云厂商加入了CNCF,又重新定义了一版。如下

    1
    2
    3
    4
    5
    6
    7
    Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

    云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。

    These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.

    这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
  • 总结,个人理解为,最新的概念是:以容器、服务网格、微服务、不可变基础设施和声明式API为特征的技术,助力公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用

什么是serverless

  • 关于serverless的入门课程,我推荐极客时间里蒲松洋(秦粤)老师的Serverless入门课专栏。由浅入深的讲述了severless的基本概念,特征和实践过程。那么什么是serverless?那么既然有serverless,那就serverfullserver就是服务端,less就是较少关注,full就是比较关注,目的就是让大家可以较少关注服务端的运维工作,只需专注自身业务逻辑的开发。以下引用专栏里的内容。
    • 第一种:狭义 Serverless(最常见)= Serverless computing 架构 = FaaS 架构 = Trigger(事件驱动)+ FaaS(函数即服务)+ BaaS(后端即服务,持久化或第三方服务)= FaaS + BaaS
    • 第二种:广义 Serverless = 服务端免运维 = 具备 Serverless 特性的云服务

image

serverless解决什么问题

  • 那么使用serverless可以解决什么问题呢?相比传统的MVC架构,往往没有任何流量或者用户都需要至少占用一台服务器并且开机。而serverless应用可以自动扩缩容,甚至在无业务时服务器数量缩容到0,有业务时可以快速启动应用并服务。所以最核心的问题就是:省钱
  • 当前serverless技术也在不断发展当中,它只是属于CNCF中的一部分。

云原生技术范畴

  • 既然谈到了CNCF,我们可以先了解一下云原生的技术范畴,分别整理为如下:
    • 云应用定义与开发流程
      • 应用定义与镜像制作
      • CI/CD
      • 消息和Streaming
      • 数据库
    • 云应用编排与管理
      • 应用编排与调度
      • 服务发现与治理
      • 远程调用
      • API网关
      • Service Mesh服务网格
    • 监控与可观测性
      • 监控
      • 日志
      • Tracing
      • 混沌工程
    • 云原生底层技术
      • 容器运行时
      • 云原生存储技术
      • 云原生网络技术
    • 云原生工具集
      • 流程自动化与配置管理
      • 容器镜像仓库
      • 云原生安全技术
      • 云端密码管理
    • Serverless技术
      • Faas(Function as a service),函数即服务(云函数)
      • Baas(Backend as a service),后端即服务
      • Serverless workflow
  • 我们来看一张CNCF的全景图。

CNCF landscape

总结

  • 我们先介绍了CNCF的概念,接着了解了什么是serverless以及它能解决什么问题。最后我们总结了CNCF里涉及的技术范畴以及全景图。希望你能有所收获。


支付宝打赏 微信打赏

赞赏一下