cloud-native|容器技术在企业落地的最佳实践
文章图片
作者 | 易立阿里云资深技术专家
导读:近年来,容器技术及相关应用得到了国内外越来越多的关注度。在国外,容器技术已经形成了较成熟的生态圈;而在国内,金融企业、互联网企业、IT 企业积极投入容器技术的应用。本文将重点介绍容器技术在企业落地最佳实践,包括容器技术的背景,阿里云容器服务概述,容器技术在企业落地的正确姿势,以及容器服务的演进方向。前言 容器的英语是 Container,它的意思是集装箱,经济全球化的基础就是现代化的运输体系,其核心就是集装箱。
集装箱的出现,实现了物流运输的标准化、自动化,大大降低了运输成本,使得整合全球的供应链变成可能,这就是著名的《经济学人》杂志提到的 “没有集装箱,就没有全球化”。容器可以理解为云时代的 “应用集装箱” ,重塑了整个软件供应链。
什么是容器? 容器是一种轻量化的虚拟机,轻量化的应用信息化技术。打个比方,传统的物理机就是一个独栋大别墅,一家人独占,住的很舒适,不会被别人打扰。缺点就是贵,并且交付时间长,利用率也不高。虚拟机可以理解为联排住宅,每栋房屋是共享水、电、地基等基础设施,整体的容积率提升了,公摊下降,这样成本也下降,交易速度也加快了。但是每户都有独立的一个空间,具有很好的隔离性。
虚拟化正是通过这样的技术实现了安全隔离,有效提升了资源利用率,但是交付之后还需要对它进行一个应用的配置和安装。容器就好比是集装箱板房,集装箱房采用模块化设计,自带装修,可以快速搭建,随时移动。
2022 年卡塔尔世界杯的一个体育场的设计,将利用集装箱方式搭建一个容纳 4 万人的体育场,每个集装箱模块都是在中国生产,内置看台、卫生间、酒吧这些不同的模块,然后在卡塔尔进行吊装。这种方式不但工期可以缩短三年,而且赛事之后就可以拆卸搬迁到其他地方,成为可以重复利用的绿色球场。
容器正是这种轻量化的应用虚拟机技术,容器之间共享操作系统内核,支持秒级启动。同时容器的镜像是一个标准化自包含的应用打包格式,让应用可以一致地运行在不同的环境。
1. 容器的三大价值 容器技术提升了企业 IT 架构的敏捷性,加速应用创新,帮助企业更加灵活地应对商业发展中的不确定性。比如在疫情期间,在线教育、音视频、公共健康等行业出现了爆发性的增长。一些基于云计算和容器技术的公司,就很好地把握住了业务快速增长的机遇。
容器技术最受关注的三个核心价值,第一个就是敏捷性,正所谓“天下武功唯快不破”。在数字化转型的浪潮下,每个企业都在面临新兴业务模式的冲击。一个成功的企业不是看它现在的规模有多大,过去的战略有多成功,而是看它是否有能力持续创新、持续拥抱变化。据业界统计,使用容器技术可以实现 3~10 倍的交付效率提升,大大加速新产品迭代的效率,并降低试错成本。
容器技术的第二个核心价值就是弹性。在互联网时代,企业的 IT 系统需要面对电商大促或者各类突发流量的场景。以在线教育为例,面对疫情之下流量的指数级增长,一些在线教育企业,如希沃、洋葱教育等,利用阿里云的容器服务,极大地缓解了扩容压力,支持了数十万教师的在线课堂。通过容器技术可以充分发挥云的弹性,优化计算成本。一般情况下,通过容器技术可以降低 50% 的计算成本。
容器技术的第三个核心价值就是可移植性。容器技术的出现,推动了云计算的标准化进程。容器已经成为了应用分发和交付的标准,可以应用于底层运行环境的结构。
2. Kubernetes 逐渐成为云原生时代的基础设施 Kubernetes 成为资源调度和编排的标准,屏蔽了底层架构的差异性,帮助应用平滑地运用在不同的基础设施上。现在大家已经把 Kubernetes 称为云应用的一个操作系统,越来越多的应用运行在其上。从一些无状态的外部应用,慢慢的发展到企业核心的交易类应用、数据智能应用等,也运行在 Kubernetes 平台之上。
文章图片
Kubernetes 是云应用的一个操作系统
阿里云容器服务概述 1. 全球领先的阿里云容器服务 国际知名调研机构 Gartner 发布 2020 年容器公有云竞争格局报告,阿里云再度成为国内唯一入选厂商。Gartner 报告显示,阿里云容器服务在中国市场表现强劲,产品形态丰富,在 Serverless、容器、服务网格、安全沙箱容器、混合云和边缘计算等领域,具备良好的技术发展策略。阿里云覆盖九项产品能力,成为丰富度最高的厂商之一。
阿里云连续两年入选 Gartner 容器报告,一方面是因为阿里云拥有全球第三的市场份额,另一方面是因为其已经拥有近十年的容器技术储备。
文章图片
连续两年,国内唯一入选 Gartner 公共云容器服务竞争格局 & 2019 年 Q3,Forrester 企业容器平台评测:国内第一
2. 阿里云容器服务产品大图 阿里云容器服务产品家族可以在公共云、边缘计算和专有云上提供企业级的容器平台。阿里云容器产品的核心是 Kubernetes Service(ACK) 和 Serverless Kubernetes(ASK)。他们构建在阿里云的一系列基础设施能力之上,如计算、存储、网络、安全等。阿里云的容器服务通过了 CNCF Kubernetes 的一致性兼容认证,并且提供了一系列企业关注的核心能力,比如安全治理、可观测性、多云/混合云等。
镜像服务 ACR 是企业级云原生应用制品管理的核心,托管服务网格 ASM 是今年 2 月份新发布的一个产品,它给全托管的微服务应用提供一个流量管理平台,可以支持多个关联体系集群的统一流量管理,为容器和虚拟应用提供一致的安全和可观测性的能力。
文章图片
阿里云容器服务产品大图
3. 容器释放神龙架构强大算力 在 6 月 9 日 2020 阿里云线上峰会上,阿里云智能基础产品事业部高级研究员蒋江伟重磅发布了云原生裸金属方案。新一代容器服务 ACK,可以将最新神龙弹性裸金属实例的强大性能发挥得淋漓尽致,具备极致性能、高效调度、全面安全的特点。
- 新一代神龙架构具备业界第一的 I/O 转发能力,提供最高 100Gbit/s 网络带宽;阿里云高速 Terway 容器网络通过网卡直通和数据平面加速,延迟下降 30%;
- 第 7 代实例最大支持 192 个 vCPU。ACK 智能 CPU 调度可以轻松释放强大算力,无需应用调整可以实现 QPS 提升 20%~30%;结合 ENI 网卡密度提升,可以缩减 50% 的计算成本。
在阿里巴巴内部,神龙架构已大规模应用于淘宝、天猫、菜鸟等业务,解决了高峰值下的业务性能和稳定性问题。在外部,尤其是在这次疫情影响下,很多企业面临快速扩容的压力,如在线教育行业,通过阿里云容器 + 神龙方案,企业可以从容应对流量突增的难题。
文章图片
容器技术的最佳企业实践 1. 灵活丰富的弹性能力 弹性是云的核心能力之一。像 “双11” 这样典型的脉冲应用场景,或者像疫情爆发之后在线教育和协同办公急速增长的场景,只能依靠云提供的强大弹性算力才能支撑。Kubernetes 可以将云的弹性能力发挥到极致。阿里云 ACK 在资源层和应用层都提供了丰富的弹性策略,基于阿里云整体架构可以实现千节点分钟级弹性伸缩。
对很多行业来说,其应用负载的资源方向具有周期性。比如证券行业每天的业务高峰时段就是股市开盘的时间,然后峰、谷的资源差异可能高达 20 倍。为了解决这类需求,阿里云提供了一个定时伸缩组件。用户可以定义定时的扩充策略,提前准备好资源。在波谷到来时把资源自动回收,这样可以很好地平衡系统的稳定性和资源成本。后续阿里云也会继续增强基于机器学习的一些弹性策略,根据历史资源画像更好地实现资源的预测,提升弹性能力。
文章图片
灵活丰富的弹性能力
2. Serverless Kubernetes 众所周知,K8s 提供了非常强大的功能和非常好的灵活性,但是运维一个生产集群是极具挑战的事情。即使利用托管服务,用户依然要保有 worker 节点资源层,还需要对 worker 节点进行维护,如操作系统的升级、打安全补丁等,并且还要根据实际情况对资源层进行容量规划或者制定弹性策略。
针对 K8s 这样复杂的挑战,阿里云推出了 Serverless Kubernetes(ASK)容器服务。ASK 在兼容 K8s 基础之上,对 K8s 做了减法,将复杂性下沉到云的基础设施,极大地降低了运维的管理负担,让用户更加关注于自身的业务,提升了用户体验。对用户而言,ASK 没有节点的概念,用户也就无需预留任何资源,免维护,零管理。所有的资源都是按需创建,运行在弹性容器实例之上。按照应用实际消耗资源付费,无需做任何的容量规划,也不会产生资源浪费。
文章图片
经典 Kubernetes 集群 VS Serverless Kubernetes
3. 多维度可观测性 在一个大规模分布式系统中的基础设施,可能会出现各种各样的稳定性或者性能问题。可观测性可以帮助我们了解分布式系统的状态,便于做出决策,并为弹性伸缩和自动化运维打好基础。一般而言,可观测性包括以下三个层面:
- 第一层面是 Logging:阿里云的日志服务提供了对事件流的一个完整的日志方案,该方案不仅可以对应用的日志进行收集处理,并且提供了像操作审计这样的处理和展现。
- 第二层面是性能监控指标 Metrics:对于基础设施服务,如 ECS 虚拟机、存储网络云监控,它们提供了非常全面的监控能力,同时也提供了一个开放高可用扩展的监控基础设施,与自建相比,可以极大地降低运维复杂性,并且减少成本。
- 第三层面是 Tracing:阿里云的全面追踪服务可以为开发者提供完整的分布式应用调用链路的统计、拓扑分析等工具,帮助开发者快速发现和诊断分布式应用中的性能瓶颈,提升微服务应用中的性能和稳定性。
文章图片
多维度可观测性
4. 安全的云原生软件供应链 安全是企业在应用容器技术时最大的顾虑之一。为了系统化地提升容器平台的安全性,就需要全方位进行安全防护。阿里云的做法是:首先,把 DevOps 升级成为 DevSecOps,将安全概念融入到整个软件生命周期之中,将安全防护能力转移到开发和交付阶段。ACR 镜像服务企业版提供了完整的安全软件交付链,当用户上传镜像之后,可以自动化地进行漏洞的扫描,发现其中是否包含已知的漏洞。
然后,通过 KMS 密钥服务自动化对镜像进行验签。在 ACK 中可以配置安全策略,比如只允许经过安全扫描且符合上线要求的镜像才能在生产环境发布。整个软件交易交付链路可观测、可追踪,通过区策略进行配置管理。在保证安全性的前提下,可以极大地提升交付效率。
此外,在运行时也会面对众多的安全风险,比如一些新发现的漏洞,或者一些新的病毒进行攻击,阿里云的云安全中心也提供了对运行时的安全监控防护能力。
文章图片
从 DevOps 到 DevSecOps - 安全的云原生软件供应链
5. 云安全中心实时防护 云安全中心可以对容器应用的进程和网络情况进行监控,对其中的异常行为或者发现的安全漏洞进行监测和通知,通过邮件、短信等方式通知客户进行处理,也提供了自动化的隔离和修复能力。以一个著名的挖矿蠕虫病毒为例,它会利用用户的一些配置错误对整个集群发动攻击。在云安全中心的帮助下,可以轻松发现它的踪迹,并且一键清除。
6. 混合云成为企业上云新常态 企业上云已经是大势所趋,但是对于企业来讲,有些业务由于数据主权和安全隐私的考虑,无法直接上云,只能采用混合云架构。另外,不同的云环境,其基础设施能力以及安全架构都存在差异,会导致整个企业的IT架构和运维体系出现割裂,大大增加了混合云实施的复杂性,提升运维成本。
在云原生时代,以 K8s 为代表的技术屏蔽了基础设施差异性,可以实现以应用为中心的混合云架构 2.0。在混合云环境中实现对计算资源的统一调度和统一应用生命周期管理。有三个典型的场景:
- 一是在混合云产品中,希望利用公共云的弹性算力来应对突发的流量;
- 二是利用公共云去构建低成本的云灾备中心。当线下的数据中心发生故障时,可以快速地将业务流量切换到云上;
- 三是构建异地多活的应用架构,保证业务的连续性。基于阿里云的混合云网络、混合云存储、数据库复制这些能力,帮助企业构建全新的混合云的 IT 架构。
文章图片
云原生混合云解决方案
7. 云原生混合云管理 阿里云在混合云的解决方案中有三个重要特点:
- 一是统一进行管理,在混合云方案中,采用统一的安全治理和应用管理,以及可观测性;
- 二是全地域的网络联通,全球接入,高速低延时;
- 三是智能流量,阿里云实现了统一的服务流量管理,可以优化服务的访问,提升业务连续性。
第一个就是新基石。云原生技术是释放云价值的最短路径,利用容器服务,可以帮助企业更好地支撑全球化的应用交付。基于像ACR(Alibaba Cloud Container Registry)这类产品,可以实现镜像的一次提交、全球发布。整个发布效率可以提升7倍。另外,阿里云支持混合云和多云的方案,利用容器的可移植性,让工作负载轻松地在不同的计算环境中动态迁移。
第二个是新算力。基于云原生的软硬一体化技术创新,加速企业的智能化升级。此外,阿里云也在强调算力的安全和可信,因此推出了安全沙箱容器,在强隔离的同时实现了原生进程90%的性能。云原生技术通过开放的生态和全球合作伙伴,帮助更多的企业分享云时代的技术红利。
第三个是新生态。也就是不断丰富的容器云应用市场,因为它是连接企业与云原生技术创新的桥梁。目前阿里云应用市场已经入驻了多家合作伙伴,覆盖了从容器安全监控到业务应用的不同产品,便于用户获得完整的容器化解决方案。此外,阿里云也跟众多的技术公司、全球技术合作伙伴展开合作,帮助企业更好地运用云原生技术。
首届 KubeCon 2020 线上峰会
【cloud-native|容器技术在企业落地的最佳实践】7 月 30 日 - 8 月 1 日,阿里巴巴云原生专场,点击链接预约有礼:https://developer.aliyun.com/topic/alibabacloudnative/kubecon2020
“ 阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- GIS跨界融合赋能多领域技术升级,江淮大地新应用成果喜人
- 深入浅出谈一下有关分布式消息技术(Kafka)
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 2月2日日课总结(基因技术)
- NAT(网络地址转换技术)
- 云原生微服务技术趋势解读
- 国家重点支持的高新技术领域(一)
- 数据技术|一文了解Gauss数据库(开发历程、OLTP&OLAP特点、行式&列式存储,及与Oracle和AWS对比)
- Python爬虫技术要学到什么程度才可以找到工作()