基于容器服务的持续集成与云端交付(二)- 多维度打磨交付能力

简介: 前言 在上一篇中,和大家一起讨论了传统软件交付的问题、持续交付的难点、以及为什么云端的容器交付可以协助大家快速的持续交付。 但是当真正的将一个系统通过云端容器交付的时候会发现不能单纯的将Docker作为一种交付工具来对待,更多的时候是作为一个交付平台的基础设施来看待,还需要关心的是使用Docker后网络、存储、安全、性能、监控等等不同方面带来的变革。

前言

在上一篇中,和大家一起讨论了传统软件交付的问题、持续交付的难点、以及为什么云端的容器交付可以协助大家快速的持续交付。

但是当真正的将一个系统通过云端容器交付的时候会发现不能单纯的将Docker作为一种交付工具来对待,更多的时候是作为一个交付平台的基础设施来看待,还需要关心的是使用Docker后网络、存储、安全、性能、监控等等不同方面带来的变革。

因为交付的本质是将一套复杂的软件系统从零到一完成开发、测试、部署、上线的过程,软件的复杂度直接关系到了交付的难度,特别是现在微服务的架构方式越来越成为主流,给交付也带了更多的挑战。

我们不仅要考虑一个系统交付的环境,而且还要考虑针对特定的软件架构,交付系统的网络、存储和安全等等是否能够满足需求。本文中将会针对上面提到的内容,分享我们是怎样从以上几个方面打磨交付能力。

关于容器服务

基于容器的交付方案有非常多的开源选型,K8S、Mesos等等都是目前非常流行的方案,K8S脱胎于Google的Borg系统,在Google内部已经运行多年,成熟度与稳定性上是其他系统无法比拟的;Mesos则在资源分配上有先天的优势。

阿里云容器服务是基于阿里云ECS服务构建的CaaS层产品,提供兼容Docker的API、Docker Compose的模板,通过集成阿里云已有的IaaS层、SaaS层的的云原生服务,提供完整的Docker的云原生的解决方案。对Docker的兼容性以及云原生的服务能力是容器服务与开源方案最大的区别,当开发者已经开始使用云服务作为软件架构的基础设施的时候,Docker带来不应该是破旧立新的变化,而应该是更便捷的使用云服务来实现交付。

系统架构

上面是容器服务的基本原理图,用户可以通过容器服务创建属于自己的容器服务集群,每个节点上会默认安装容器服务的Agent,容器服务通过提供高可用的管控服务,用户可以通过控制台或者API下发指令到容器集群。对外暴漏的API分为服务API与集群API,服务API是完全兼容Docker的API,开发者可以直接通过Docker命令操作远程的容器集群;集群API是标准的阿里云OPEN API,开发者可以通过SDK进行集群的创建、删除、扩缩容等操作。此外容器服务还同SLB(负载均衡服务)、SLS(日志服务)、CMS(云监控服务)、OSS(对象存储服务)、NAS(NAS共享存储)等云原生服务打通,开发者可以在阿里云容器服务中便捷的使用云原生的服务能力。 

下面我们主要在网络、存储、监控、日志等方面来简介下阿里云容器服务的交付能力。

网络

网络在容器的方案中是一个绕不开的老话题,使用容器可以让每台机器上运行更多的应用提高机器的资源利用率,可以让应用更简单的在机器之间迁移等等。

但是对外提供的服务都需要暴漏特定的端口或者服务端点,传统应用与宿主机共享网络的方式就很难满足需求。

Docker默认提供了None、Bridge、Host、Overlay四种网络模型,其中Host网络模型就是宿主机与应用共享网络的架构,但是对于很多开发者而言,Overlay的网络模型是更常用的网络方案。Overlay网路是在集群上构建了一个全局的二层的网络,容器启动在这个全局的网络上,每个容器有自己在集群中独立的IP地址,集群节点上的容器可以直接通过容器的这个独立IP进行通信,而不需要通过NAT暴漏到主机端口,解耦了与宿主机IP的依赖,因此避免了做NAT的时候多个容器端口冲突的问题。但是Overlay网络是Vxlan的一种实现,在发送信息或者接收消息的时候会进行封包与解包,这样会在性能上造成20%左右的网络损耗。

因此阿里云容器服务在VPC网络中针对Overlay网络做了性能的优化。在VPC网络模式下容器互通是结合了阿里云VPC服务的自定义路由的功能,通过Docker Network Plugin的配置容器的IP在固定的网段,下图是VPC+Docker的网络结构:


网络请求无需再封包解包,可以直接通过虚拟交换机与虚拟路由器直接进行转发,降低了网络的性能损耗。

存储

Docker的特性,决定了容器本身是非持久化的;容器被删除后,其中的数据也一并被删除了。而且使用容器进行部署的应用通常以无状态的应用为主,大多是水平扩展的,因此一旦涉及到落盘的存储就需要在不同的容器之间进行共享。

针对落盘的存储,Docker提供数据卷(Volume),通过挂载宿主机上的目录来实现持久存储。但在集群环境中,宿主机上的数据卷有很大的局限性。容器在机器间迁移时,数据无法迁移,不同机器之间不能共享数据卷。容器服务通过Docker Volume Plugin的方式集成了阿里云磁盘,OSS,NAS的容器存储,在容器重启和迁移的时候也可以自动的挂载,保证了容器持久化存储的共享和安全。容器服务通过将OSS、NAS的远程存储端点映射成为一个主机的磁盘挂载点,开发者可以像使用本地磁盘的方式直接使用不同类型的共享存储。 

对于非落盘的存储,例如缓存、数据库等,可以直接使用云原生的服务例如RDS(关系型数据库)、KVStore(缓存服务)等等来实现,不建议使用容器化的存储服务,云原生的数据存储服务可靠性更高,性能更好,而且在运维、安全等场景中有先天的优势。

监控

监控在容器的场景中是一个非常重要的功能,因为容器的场景下需要做宿主机与容器两个维度的监控,而容器的弹性扩缩容也依托于监控的功能。

为了应对特定的场景实现,我们的监控依托于阿里云云监控服务,提供默认的监控、告警规则配置等服务。与此同时容器服务还提供了非常简单快速地与第三方开源监控方案(例如InfluxDB、Grafana)集成的能力,用户可以方便的和自己的监控或报警系统对接。并且,多维度全方位地提供各个层次的聚合监控指标,以期在不同的维度做监控、告警提示、分析以及实现自动化运维。开发者可以在云监控中查看主机级别、应用级别、服务级别、容器级别等多个维度的监控,依托着四个维度的监控指标,可以进行主机级别的弹性伸缩与容器级别的弹性伸缩。

日志

日志是应用排查问题的最后一个手段,当应用容器化之后日志的收集面临了更大的挑战。需要能够收集、聚合多个容器的日志并且容器迁移或者重新部署后日志仍然可以进行收集,因此传统的落盘采集式的日志收集方式就无法满足需求了。

容器服务提供了集成阿里云日志服务的能力,日志服务是针对日志场景的平台化服务。无需开发就可以快速完成日志收集、分发、投递与查询, 适用于日志中转、监控、性能诊断、日志分析、审计等场景。在容器服务中集成的日志服务,可以方便的把容器日志发送到日志服务里,只需要在Docker Compose编排模板中添加aliyun.log_store_name: <log location>的标签就能实现容器日志的自动采集与上报。日志的配置与应用是关联的,日志的采集与应用的容器是动态链接的,容器的变更会触发日志插件重新链接与容器的关联关系,当日志流从容器产生时就会动态地被采集到日志服务,通过日志服务进行聚合,如果有更细粒度的分析需求,可以将日志投递到MaxCompute(大规模计算)进行数据分析。

尾声

在上面我们浏览了下阿里云容器服务提供的能力,云端交付的首要条件是能够交付,然后才是如何交付。阿里云容器服务在网络、存储、监控方面对基于容器场景的架构进行了增强。让复杂的系统在云端容器交付中成为了可能。此外容器给开发者带来的最大价值是可能性,容器服务也在机器学习、高性能计算等领域进行了探索,希望越来越多的领域可以在容器的帮助下更好地实现自身的价值。在下一篇文章中,我们将会讨论如何从零搭建一个持续交付系统并交付软件。

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul
|
3天前
|
SQL 人工智能 自然语言处理
大模型内容安全实时防护:恶意Prompt注入拦截、越权阻断与熔断机制方案.166
本文系统阐述大模型输入安全防护体系,涵盖提示词注入、恶意Prompt拦截、越权阻断与输入熔断四大核心风险及应对方案。提出四层防护架构(预处理、检测、鉴权、熔断),结合规则引擎、语义识别与RBAC权限控制,实现全链路实时防护,保障业务合规、数据安全与服务稳定。
230 1
|
27天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
4天前
|
存储 人工智能 JSON
Qwen 本地部署搭配 ComfyUI 生成 AI 漫剧完整实操指南(小白零基础可落地,零成本无限生成+角色一致性天花板)
2026全网最优本地漫剧流水线:零成本、离线运行、角色统一、低配(8G显卡)可跑。融合Qwen本地大模型+ComfyUI双引擎,实现剧本生成→分镜绘图→动态成片全自动,隐私安全、无审核限流,新手30分钟上手,日更无忧。(239字)
|
11天前
|
人工智能 编解码 物联网
2026 最新Stable Diffusion 本地部署教程 下载安装使用详细图解(含官网安装包)
Stable Diffusion(SD)是2022年发布的开源文生图模型,由Stability AI等联合开发。支持文生图、图生图、局部重绘等,依托VAE降低算力需求,可在消费级显卡运行。本文提供秋葉aaaki制作的Windows整合包(含图形界面与插件),开箱即用,零配置启动。
|
4天前
|
人工智能 缓存 JSON
刚刚 GPT-5.6 发布,吊打 Claude 5 和 Grok 4.5?一手实测来啦!
GPT-5.6 刚发布,跑分号称超越 Fable 5,真的假的?附一手实测,让 3 个最强 AI 编程模型 GPT-5.6 Sol、Claude Fable 5、Grok 4.5 在 Cursor 里同时一把梭开发网页游戏,看看最新模型到底谁更能打。
281 0
|
21天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。
|
12天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版