Container容器技术近年受到了业界的持续关注。Docker和CoreOS极大地降低了用户使用操作系统的难度,推动了容器技术的流行。容器技术简化了应用的分发流程,这对于云基础设施来说是一项重要的进步。与虚拟机相比,容器有着轻量级、启动速度快、隔离性好等优点,它也在一定程度上提高了不同应用之间共享云基础设施时的安全性。此外容器技术对于在同一操作系统之中运行多个应用提供了专门的安全和兼容性上的优化。
那么容器技术就真的一点问题都没有吗?
传统的操作系统太过笨重,即使已经进行了简化实际上也依旧如此。通常一个容器的大小通常在MB甚至GB级别,显而易见真正的应用只占了这其中很小的一个部分。在进行操作系统复制时所有的服务和子系统不管有用没用都被复制了,这与应用的微服务化这一发展方向是背道而驰的。对于微服务的架构来说所有的操作都应该越快越好。
容器技术对于传统操作系统的依赖可能会导致它的败亡,而取代它的将是unikernel。Unikernel使用户可以从一个服务库中选择应用需要的操作系统服务而无须整个操作系统。用户选择的服务则会成为应用的一部分。
Unikernel在整个服务器的架构中取消了操作系统,应用直接运行在hypervisor或者硬件上。这就使得它获得了下面几个优势:
1、大小—对比虚拟机或者容器,unikernel只需要运行应用所必须的服务,因此应用可以减小很多。这意味着应用若需要部署到不同的服务器上将会变得方便一些,省下的不光是时间,如果云计算提供商对流量收费的话省下的还有真金白银。
2、速度– Unikernel快得就剩一个快字了。最快的unikernel启动只需要20毫秒。这意味着unikernel甚至可以在用户请求时才启动并对用户请求做出响应。MirageOS正开发一个叫做Jitsu的的工具来帮助用户在云计算环境中快速启动和关闭unikernel。
3、安全– 确保系统安全的一个方法是对其进行简化,这样就减小了出现漏洞受到攻击的可能性。对于unikernel来说可攻击的面非常小,这就使它有了很高的安全性。
4、兼容性 – 虽然unikernel需要应用在设计时就考虑到使用unikernel来部署。然而已经出现了Rump Kernels这样的工具可以将一般的应用以unikernel的方式来运行。
上面所列举的四个优势完全符合微服务的发展趋势。Docker和CoreOS已经在很大程度上改变了我们消费基础设施的方式然而它们能否适应unikernel的崛起还未可知。
今后五年unikernel有可能完全取代容器技术,就算不能取代它也会成为容器技术的强力补充,希望容器技术产业对此有所准备。