在目前的云计算模型里,IaaS层接管硬件,在上面提供数据库、缓存、大数据等PaaS的应用,也提供了对象存储等SaaS类的服务。应用除了业务逻辑,还要有监控、日志处理、部署和交付、自动化运维、高可用、链路追踪等等,但是它们和业务逻辑没有太大关系。
所有应用能否都由云平台支撑?很难。因为每个应用程序的监控、日志、部署、架构需要的性能都不一样,当这些都能统一的时候,才能由云来支撑。而容器正是为此而来。
就如它的名字一样,容器像集装箱似的能够装载所有应用,不管是重量级的应用还是轻量级的应用。容器把应用容器化、版本化以及标准化,从而彻底地改变了软件构建方式和交互方式。对于广大开发者而言,容器大大简化了管理和部署应用程序的任务。
接踵而来的并不是开发者的拍手联欢,而是衍生了新的问题。在网络层,因为容器本身要做一层虚拟网络,IaaS本身提供了虚拟网络,这两层虚拟网络应该如何交互?存储也一样,IaaS本身提供了云硬盘,容器也需要,两者如何结合?备份和容灾机制如何结合?等等。