在整整二十年前,Unix的第7个版本在开发过程中引入ChrootJail以及Chroot系统调用。Chrootjail被用于“ChangeRoot”,它被认为是最早的容器化技术之一。容器技术的出现,起初的好处主要是解决了在单机环境下,同样的代码,无法在运行环境发生变化之后正常运行的问题。然后,二十年过去了,容器技术却已经俨然成为云原生的基础和标准,推动着互联网业务和创新的飞速发展,演出了又一出“无心插柳柳成荫”的技术传奇。
如今,从App新闻推送到云图片处理,从网络直播到短视频编辑,从云上车联网到云医疗方案,处处都有着容器的身影,甚至可以说,如果没有容器技术,如今的互联网创新就无从谈起。
为什么是容器?
而容器技术之所以能够助推互联网业务及其创新,主要源于如下几个原因:
首先,容器可以显著减少启动和管理的虚拟机数量。通过消除每个应用程序都需要运行一个虚拟机的需求,容器可以大量减少整体计算开销,从而降低总体CAPEX,这不仅仅是在私有数据中心内部,由于容器消耗的资源更少,云服务成本也同样降低。
其次,容器对于云成本的节省不仅体现在减少服务器硬件和云服务中。因为运行的虚拟机和操作系统减少,这就意味着还可以显著降低许可证数量,从而在IT的许可方面节省更多的成本。
第三,云有一个显而易见的缺点是:一旦迁入某云服务提供商,就很难再迁出。然而,利用容器,在云上的迁入和迁出非常简单。这有助于消除对于云厂商锁定的担忧。
第四,低风险的快速部署。容器可以通过允许IT维护对服务器端配置的控制来减轻瓶颈和应用程序开发团队与基础架构管理员之间的隔阂,开发团队只需将所需的任何添加/更改打包到一个纯净的小包即可。这些容器包可以快速上线到生产,测试中,如果出现问题,直接删除即可,而不会对系统造成严重影响或者持久化变更。
最后,是更简单的运维和管理。由于一个容器包含了完整的运行时环境,应用所需的全部依赖、类库、其他二进制文件、配置文件等,都统一被打入了一个称为容器镜像的包中,一个容器的改变不会对其他应用产生影响,因此可以随时创建和删除,这对于应用运维和管理无疑是非常方便的。
云容器服务如何选?
正是由于容器技术有着上述的诸多适合互联网/云环境的优点,容器技术才成为了互联网业务创新的基础和底座,于是,众多云厂商也基于此,推出了众多的云容器服务,云容器服务市场呈现出一个百花争艳的局面。
那么,对于想要进行互联网业务和创新的用户而言,如此众多的云容器服务应该如何选择呢?笔者认为应该从以下几方面重点考虑:
首先,应该是能够提升资源利用率,提升性能,降低建设成本。实际上,无论采用哪种技术或者服务,这一条都应该是对于用户而言,最重要的首要条件,而对于如今非常流行的互联网直播、短视频业务,这一条就显得更为重要了。
其次,要能够灵活弹性应对互联网/云环境带来的复杂变化。对于互联网/云环境来说,复杂多变是常态,诸如突发网络流量、瞬间高并发、应用频繁变更、业务流程随时改变等状况时有发生,屡见不鲜,因此,云容器服务需要具有高度的灵活和弹性应对这些问题。
第三,多云和混合云的支持。如今,秉承“不将所有的鸡蛋放在一个篮子里”的原则,很多用户都选择将业务部署在多云或混合云中来保证业务的连续性,因此,对于多云和混合云的支持应该是选择容器云服务的一个重要指标。
第四,容器安全。容器的本质是在一台物理主机上虚拟出很多相互隔离的操作系统,因此,一旦某个容器被攻击成功,就会导致同一个宿主机上的其它容器被攻陷(也即“容器逃逸”)。而且,容器本身也是软件,就可能存在安全漏洞,这往往会给攻击者带来可乘之机。此外,容器是运行在某个具体的系统环境中,也需要进行安全加固、检测和防护。因此,安全性对于容器就变得非常重要。
最后,简化运维和管理。大多数用户选择云服务,其中一个重要的原因,就是可以减轻IT部门的运维和管理压力,降低运维和管理的成本,选择云容器服务,显然也希望能够再进一步的简化运维和管理。
云容器服务哪家强?
那么,在上述五个方面都具有综合能力的云厂商,自然在云容器服务中具有更强的优势,不过,如果没有对于容器技术的深刻理解以及长期的积累沉淀,想要达到全部上述目标,也并非易事。
作为云原生技术的一贯支持者,华为自2015年即开始前瞻性战略投资云原生技术,在CNCF云原生基金会初创时,中国会员就是华为。在目前主流的容器服务Kubernetes项目贡献中,华为整体贡献在国内厂商中持续位居高位,并在2018年成为亚洲获得CNCFTOC成员席位的公司。华为云还是通过了Kubernetes认证的服务商之一。华为还先后大颗粒贡献了集群联邦、高级调度策略、IPVS负载均衡,容器存储快照等项目。华为云还宣布开源基于Kubernetes架构平台的边缘计算管理框架KubeEdge以及容器批量计算项目Volcano。截止目前,华为云在CNCF基金会,全球贡献3000+PR,稳居国内领先地位。
能够在容器技术领域,有如此深厚的积累沉淀和众多行业的应用实践,华为云容器服务能够体现出强者的一面,自然不足为奇了。
盘点华为云容器服务
具体来讲,华为云容器服务的优势和强点主要体现在以下几方面:
裸金属容器服务
2017年,华为云国内首发裸金属容器服务,经过三年的发展,华为云裸金属容器已经愈发成熟:
与虚机模式相比,将容器直接运行在裸金属服务器上,省去了虚拟化层开销,极大的提升了资源利用率、容器部署密度、单服务器的业务承载能力。咪咕互娱游戏服务在使用裸金属容器后,IDC的资源利用率提升了2-6倍,业务响应效率平均提升200%以上。
华为云裸金属容器首次实现了弹性裸金属服务器、弹性云服务器、Serverless容器(CCI)之间的互弹,使用弹性裸金属服务器运行常态业务,弹性云服务器扩容可预期的业务洪峰,对电商、在线教育、在线会议等场景十分灵活,而针对社交资讯行业,出现突出事件时的不可预期流量冲击,则可以依托华为云容器实例(CCI)Serverless架构的优势,,将业务容器秒级扩容至CCI,最快可实现秒级扩容1000容器。既保障流量洪峰的快速接管,确保了业务可靠、稳定运行,又节约了常态业务的资源开销,降低了综合成本。
VPC云原生容器网络结合弹性裸金属服务器的ENI网络,提升性能20%,大大降低了网络时延和网络抖动,保障了在线直播、在线教育、在线会议等视频类内容的高流畅性。
混合云和多云支持
华为云还率先在全球发布了混合云容器解决方案,比谷歌发布Anthos早了一个多月。华为云混合云容器解决方案,支持云原生、微服务、传统应用负载的统一治理,允许用户的业务同时部署在多个云的容器服务上,通过统一流量分发的机制、自动业务流量切换功能以及Kubernetes的快速弹性能力,迅速在其他云上扩容资源和应用,秒级自动恢复故障业务。
部署在不同云或不同区域数据中心的业务,通过统一流量分发的机制,实现访问流量的地域亲和,降低业务访问时延;同时,用户可以将线下IDC中的业务在云上扩展,当业务流量激增时,快速在云上弹性扩容,将大部分的流量引导到云上实例;在流量回落后,自动缩容云上实例,流量全部回归线下IDC,用户不再需要根据流量峰值始终保持和维护大量资源,从而节约成本。
除此之外,混合云容器还实现了应用跨多云的统一调度、统一部署、统一监控,大大简化了运维和管理的难度,降低了运维和管理的成本。
容器批量计算
面向互联网行业的大数据用户画像、智能推荐、视频转码、视频渲染等场景,华为云还推出容器批量计算解决方案,方案基于华为云瑶光分布式云操作系统实现全域智能调度,通过应用行为感知来预测某种应用对算力资源的要求,在下层各种异构计算资源和上层应用之间实现供给和匹配,使资源利用率比基于经验和逻辑判断做的匹配得到明显提升。同时得益于容器批量计算平台Volcano针对大数据、AI、基因测序、高性能计算等场景的,在任务调度、作业管理、资源管理方面进行了优化,有效提升整集群资源利用率、任务调度及执行效率,使得计算性能提升30%以上。
容器批量计算解决方案通过Serverless的方式提供服务,用户无需关心底层资源的日常维护,同时还面向AI、基因测序、视频转码、图像渲染等场景,进行了业务封装,客户只需提供数据,即可直接进行计算,实现秒级资源获取、开箱即用,同时降低了基础设施、业务平台的运维成本。。
容器安全服务
在容器的构建开发阶段,容器安全服务CGS可扫描镜像编码的安全问题,进行持续集成和持续发布。在容器分发阶段,CGS可进行打包后的扫描,一旦发现安全问题,即可通知开发人员进行修复和调整。
CGS可对容器中的异常行为进行检测,与其他行为进行关联分析,准确发现逃逸行为。同时,CGS可对容器权限配置、高危的系统调用、Shocker攻击、进程提权、DirtyCow和文件暴力破解等进行检测,及早规避容器逃逸等风险。
在运行仓库镜像时,用户可设置安全策略对某些安全漏洞和风险进行拦截和告警,如阻断存在致命漏洞的程序进入生产环境。运行时,用户可设置白名单,有效阻止异常进程、提权攻击、违规操作等风险;也可设置文件只读保护,锁定和保护关键文件,避免被篡改。
容器服务,互联网创新优选
目前,新浪新闻、芒果TV、斗鱼、秒拍、快手、美图、虎牙、咪咕互娱等互联网企业都采用了华为云的容器服务来加速自身业务创新,以应对5G时代直播、视频、游戏、VR/AR等创新业务带来的新挑战。
而华为云也将一如既往的在云原生、容器、微服务、无服务器等开源创新技术领域持续发力,成为各行各业创新应用的“黑土地“,为各行各业的用户提供坚实的云平台底座,赋能全行业用户。