本文PPT来自陈萌辉于10月16日在2016年杭州云栖大会上发表的《基于阿里云容器服务实现Serverless服务架》。
容器与Serverless是天生一对,利用容器来实现Servless架构是一个巧妙的解决方案。首先,针对隔离性与安全性、部署速度这两个关键的用户需求,容器本身都能较好地满足。容器在隔离性和部署速度这两个彼此冲突的需求中提供了合理的平衡,它不像进程,虽然部署速度极快但隔离性很差,也不像虚拟机或是物理机,隔离性高但部署速度相对很慢。具体来说,容器通过容器沙箱实现了彼此隔离和资源限制,并且由于容器自身就是一个进程、拥有分层文件系统,因而可以做到亚秒级启动,极大地提高了部署速度。
虽然容器很好,但利用容器来实现Sererless架构是个不小的挑战。这里挑战主要包括三个方面:1.无数的Function意味着无数的容器,如何管理各版本镜像、管理容器生命周期和容器编排是个难题 2.如何实现弹性部署,使系统能根据使用量快速扩容缩 3.如何集成日志、监控等工具。
为此,阿里云容器服务提供了一站式解决方案,来解决容器服务问题。架构上它由下至上分为集群、节点、容器、服务、引用、应用五个层次。在分发方面,它具有镜像加速,云内访问无公网流量等特性;在编排方面,它兼容Docker,同时支持在线、离线应用;在构建方面,它支持Web Hook自定义持续集成,支持第三方代码仓库;最后在运行方面,它实现了一键部署Docker集群、容器生命周期管理、蓝绿发布、弹性伸缩等功能。用户可以在其上实现弹性部署,根据CPU、内存的使用量动态地增减容器、扩缩集群,并且享受集成SLS日志服务和集成云监控服务。相信有了阿里云这套完整的解决方案,利用容器来部署Serverless服务将变得更加简便。