自从2013年Docker技术和Kubernetes编排引擎问世以来,容器技术一路高歌猛进,逐渐成为了今天绝大部分企业IT架构的转型方向。容器为企业带来的架构优化和效率提升是显而易见的,利用Docker image轻量级、可移植的特点,将业务拆分解耦到不同的容器中,分布式部署至跨机器甚至跨机房的基础设施。
由于每个容器都可以被独立管理和升级并且快速在不同的基础设施之间迁移,容器化大大提高了IT生产流程的敏捷程度并且帮助企业获得更高的业务可用性。
但是容器也并非是万能的,随着容器的数量和复杂度增加,用户需要维护一个庞大的集群和编排系统来进行容器管理,这就需要企业付出一定的额外资源用于维护集群本身,并且对于编排系统(如Kubernetes)的使用也是IT部门需要面临的一个新的挑战。
云服务商一直在尝试利用云计算的优势降低容器的使用成本和技术门槛,如百度智能云的容器引擎产品CCE,能够帮助用户快速搭建和维护一个Kubernetes集群,为用户解决集群本身的可用性、可观察性以及对底层资源的兼容性等问题,同时使得原生的Kubernetes API能够以对用户更加友好的方式被使用。
Serverless是继容器之后出现的又一个技术趋势,以云服务商提供的函数计算服务为典型代表(如百度智能云函数计算CFC),其核心思想在于服务提供者完全打包了基础设施的搭建、管理与维护,开发者只需要编写业务代码并选择一个所需的运行时,然后平台自动化地完成资源的创建、调度以及运行时的生命周期管理,并由平台保障业务运行环境的高可用性。
函数计算服务对于小型应用的开发者而言非常友好:
在许多轻量级场景中,函数计算已经得到了不错的应用与实践,比如小程序、智能设备、自动化数据处理等。
但是函数计算同样不能解决企业的全部问题,它要求用户的业务以函数为粒度进行拆分、函数之间完全通过接口通讯并且对业务的无状态化要求更高。对于复杂的业务系统而言,要满足这些要求并不简单,而且即便用户的业务架构可以真正实现函数化改造,现有的大规模函数协作、编排和管理技术也还不够成熟,很难完全投入生产。
在面对容器化和Serverless时,用户通常需要对业务进行拆分,根据业务属性选择更合适的架构,有时会因此而面临两难的技术抉择。
那么有没有一种技术可以在充分发挥容器编排引擎优势的同时,又享受到Serverless带来的低成本和高弹性呢?
Kata-Container和Virtual-Kubelet这两个新技术的发展为这个问题带来了新的思路,而百度智能云基于两者提供的新产品:百度智能云容器实例(Baidu Container Instance — BCI),也许会是一个不错的答案。
BCI为用户提供了可以直接启动的容器化资源,不需要预先购买服务器和集群,用户在业务需要时可以随时启动一个或多个容器,在业务完成后可以随时将其释放。
相比虚拟机,BCI充分发挥了容器化的优势,使用标准的Docker Image启动、细粒度的资源划分、在数秒内完成启动或停止、随时进行多副本复制。
对于小型应用的开发者,BCI可以体现出媲美函数计算的Serverless特性。将应用打包到Docker image中,即可启动或停止容器,只需要为应用运行实际消耗的资源付费,也完全不需要关心底层资源如何管理和调度,而kata-container技术则完全确保了用户容器运行过程中的资源隔离性。
对于有复杂容器编排需求的企业,BCI可以通过Virtual-Kubelet接入到CCE集群中,从而成为用户集群中的一个虚拟节点,这个虚拟节点几乎没有资源边界,用户也无需为它预先购买任何服务器。用户可以使用标准的Kubernetes API管理自己的容器(比如创建Deployment),通过指定部署节点,将业务容器部署到BCI容器实例中运行。
BCI的出现将建立起容器和Serverless之间的链接,大大拓展百度智能云CCE的管理边界,为用户提供极大的便利和灵活性。
目前BCI已经正式上线并开放测试申请。点击“阅读原文”或关注百度智能云官网,就能看到更多产品情况,一起试用吧。
本文分享自微信公众号 - 百度智能云(baidu_cloud)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。