技术创新的脚步从未停止,但是并不是所有的技术都能被企业接受。所以,当一种新的技术出现,之前的技术就有随时被替代的可能。然而,无服务器计算与容器是个例外,这两个云计算领域的重要技术,一直之受开发者热捧,最根本的原因是,他们都有各自的特性。那么,无服务器计算与容器,到底是怎样一种关系?有哪些相似点,又有哪些不同?用户该如何选择?
无服务器计算与容器就像孪生姐妹,他们有很多相似点。二者都不需要管理基础设施,为IT团队带了更高效的工作方式,提高了开发人员的生产力水平。它们采用的都是分布式系统,能满足软件现代化需求,都拥有灵活、强健和可伸缩的体系架构,都在短时间内获得了最终用户的认可。
但是,无服务器计算与容器又有着很大的不同之处,在本质上属于完全不同的两大技术。
什么是无服务器计算?
从概念来看,无服务器计算是在无需最终用户管理的基础设施上托管应用程序的新方式,是IaaS(基础设施即服务)演进的下一个阶段。它将底层基础架构从开发人员中分离出来,基本上虚拟化了运行时(虚拟机的一种,一般指进程级别的虚拟机)和运营管理,也就是我们通常说的 FaaS(功能即服务),无服务器架构允许您执行给定的任务而不必担心服务器、虚拟机或底层计算资源。
简单理解,无服务器计算像云服务一样,按需使用。当然,无服务器不是用户不需要服务器,而是不用去管服务器,底层的服务器管理工作由AWS、Azure或谷歌云等云服务提供商来做。无服务器计算能够快速发展,最具标志性的事件是,2014年亚马逊推出的AWS Lambda服务,使无服务器技术成为主流趋势。无服务器计算被称为是一种健壮的开发方式,用户只有在需要的时时候,才会用计算能力替代虚拟机,使用结束后便可即刻移走。
比如:有企业需要进行服务器扩容,他可以通过API请求或文件上传的方式,进入事件配置,触发无服务器功能。一旦事件完成,服务器将进入空闲状态,等待下一个动作。
无服务器计算的优势是:一,敏捷。由于开发人员在使用服务器时不部署、管理或扩展服务器,因此组织可以放弃基础设施管理。这极大地减少了操作开销。无服务器与微服务架构高度兼容,这也带来了显著的敏捷性好处。二、具有可伸缩性。无服务器升级和添加计算资源不再依赖于DevOps(运维)团队。没有服务器的应用程序可以快速、无缝地自动扩展,以适应流量峰值;反之,当并发用户数量减少时这些应用程序也会自动缩小规模。三、计费模式不同。在使用无服务器平台时只需为需要的计算资源付费。无服务器架构引入了真正的按次付费模式,即客户只在执行某个功能时才付费。无服务器的计费模式使其成为具有较小负载要求的微服务器和具有“spikey”流量模式的应用程序的理想选择。与传统环境不同的是,不需要为经常闲置的虚拟机或容器付费。四、安全。无服务器架构提供了安全保障。由于该组织不再管理服务器,DDoS 攻击的威胁性要小得多,而且无服务器功能的自动扩展功能有助于降低此类攻击的风险。
最重要的是,无服务器计算并不只是高科技公司在使用的小众解决方案。已经完全改变了开发者部署和管理复杂软件的方式,对企业如何交付应用程序有着巨大的影响。受益最大的用户群体是物联网应用领域,可实现数十亿计的终端设备同时使用计算资源。
什么是容器技术?
调研机构Gartner公司的调查报告表明,“到2022年,超过75%的全球组织将在生产中运行容器化应用程序。”这与目前在生产中部署容器的企业不到30%的比例相比,有了明显的增长。
容器技术更关注远程的无状态化环境,可以在按需构建容器技术操作系统实例的过程当中为系统管理员提供极大的灵活性。由于hypervisor虚拟化技术仍然存在一些性能和资源使用效率方面的问题,因此出现了一种称为容器技术(Container)的新型虚拟化技术来帮助解决这些问题。容器是轻量级的、独立的、可执行的软件包,它包含运行容器所需的所有元素,如代码库,系统库,系统工具,运行时,将运行所需的一切软件打包到容器中,这些容器可以移植到支持内核中的cgroup的任何Linux系统上。
容器就像一个虚拟机,可以模拟真实的机器,但是架构上有很大的差别。当容器从一个计算环境转移到另一个计算环境时,容器在一个统一的OS内核上执行, 并能够保障每一个容器中服务的运行环境都是隔离状态。
当然,无服务器计算与容器并不是十全十美,他们也各有缺点。无服务器被认为是“黑盒子”技术,你不知道里面发生了什么,并且无服务器通常完全依赖于第三方,容易被第三方绑架。而容器的最大缺点是价格昂贵,用户要运行容器的时候,必须完备的安全修复和监控程序。并且,懂容器技术的人很少,你需要关心人力成本和后期的维护问题。
对于用户来说,无论使用哪种技术,都要平衡利弊,根据自己的业务环境和实际需求选择适合的技术。