基于容器服务的持续集成与云端交付(二)

  • 时间:
  • 浏览:0

在上一篇中,和人们一并讨论了传统软件交付的大难题、持续交付的难点、以及为哪些地方云端的容器交付可前会可不可不能不能 协助人们快速的持续交付。

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

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

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

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

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

基于容器的交付方案有非常多的开源选型,K8S、Mesos等等一定会目前非常流行的方案,K8S脱胎于Google的Borg系统,在Google实物后来 运行多年,成长期图片 图片 图片 期期是什么 度与稳定性上是有些系统无法比拟的;Mesos则在资源分配上有先天的优势。

后来 对外提供的服务都时要暴漏特定的端口后来 服务端点,传统应用与宿主机共享网络的法律法律法律依据就不能自己满足需求。

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

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

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

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

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

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

后来 交付的本质是将一套复杂化的软件系统从零到一完成开发、测试、部署、上线的过程,软件的复杂化度直接关系到了交付的难度,有点硬是现在微服务的架构法律法律法律依据没法成为主流,给交付也带了更多的挑战。

日志是应用排查大难题的最后1个 手段,当应用容器化完后 日志的架构设计 面临了更大的挑战。时要前会可不可不能不能 架构设计 、聚合多个容器的日志后来 容器迁移后来 重新部署后日志仍然可前会可不可不能不能 进行架构设计 ,后来 传统的落盘架构设计 式的日志架构设计 法律法律法律依据就无法满足需求了。

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

Docker默认提供了None、Bridge、Host、Overlay四种 网络模型,其中Host网络模型后来 宿主机与应用共享网络的架构,后来 对于却说开发者而言,Overlay的网络模型是更常用的网络方案。Overlay网路是在集群上构建了1个 全局的二层的网络,容器启动在四种 全局的网络上,每个容器有个人在集群中独立的IP地址,集群节点上的容器可前会可不可不能不能 直接通过容器的四种 独立IP进行通信,而不时要通过NAT暴漏到主机端口,解耦了与宿主机IP的依赖,后来 防止了做NAT的完后 多个容器端口冲突的大难题。后来 Overlay网络是Vxlan的四种 实现,在发送信息后来 接收消息的完后 会进行封包与解包,另1个 会在性能上造成20%左右的网络损耗。

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

Docker的价值形式,决定了容器四种 是非持久化的;容器被删除后,其中的数据也一并被删除了。后来 使用容器进行部署的应用通常以无清况 的应用为主,大多是水平扩展的,后来 一旦涉及到落盘的存储就时要在不同的容器之间进行共享。

人们不仅要考虑1个 系统交付的环境,后来 时要考虑针对特定的软件架构,交付系统的网络、存储和安全等等是不是 前会可不可不能不能 满足需求。本文中后来 针对里面提到的内容,分享人们是怎么才能 才能 从以上几条方面打磨交付能力。