热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从零到devops(除了docker还有什么容器)

2月9日,在云栖计算之旅线下沙龙上,阿里云容器服务团队的高级研发工程师mmddy分享了《基于容器技术的DevOps探索》。首先介绍了DevOps和CD,接着分析了Docker如何打


2月9日,mmddy,高级研发;阿里巴巴云容器服务团队d工程师,在云起计算之旅线下沙龙分享《基于容器技术的DevOps探索》。首先介绍了DevOps和CD,然后分析了Docker如何打破传统的CD壁垒,最后说明了如何从零开始构建连续交付系统。


回顾:https://yq.aliyun.com/edu/lesson/play/493


开发和持续交付


DevOps


在一个相对成熟的软件和服务交付团队中,从技术上讲,主要分为三个组成部分:开发、测试和运维。开发团队更注重代码是否能运行,运维更注重系统上线后是否能稳定运行,于是差距就产生了。DevOps似乎解决了这个问题。DevOps的作用是将这三个部分紧密连接起来,提供一条从软件开发到质量保证再到技术运营的汽车生产线,加强不同角色之间的沟通与合作,从而减少资源浪费,提高质量,快速将产品推向市场,快速有效地将一个想法转化为价值,交付给客户。


激光唱片




如何实现DevOps?我们定义了连续集成,连续集成是一种方法。光盘有三个要点:自动化、持续有效的反馈。图中从左到右是从代码到交付的过程。


CD过程中可能会出现几个问题,可以概括为三个方面:环境一致性,开发者之间的环境不一致性;版本管理问题;快速响应(发布、回滚)问题。


那么,问题的根源是什么呢?因为开发人员只提供代码和代码依赖关系,并且保持站点运行需要运行环境而不是代码和运行环境之间的依赖关系。


Docker是如何打破传统CD壁垒的?


Docker是最适合实现DevOps的工具之一,甚至改变了软件交付的方式,可以有效解决持续交付过程中遇到的问题。


阿里巴巴云集装箱服务




阿里巴巴云容器服务在资源层面有集群和节点,在内容层面有组合模板和图片,在应用层面有应用、服务和容器。


完整的集装箱化连续交付流程




在传统的开发过程中,开发人员的代码包括逻辑、应用和代码依赖包,而我们的代码将添加Docker File和Docker Compose来制作和传输容器。代码提交成功后,代码服务器会通知CI服务器,CI服务器会拉代码进行代码打包,然后进行单元测试。如果单元测试失败,有效的反馈会立即告诉开发者。如果应用程序被认为包含应用程序,我们将根据代码给出的Docker文件创建映像,服务器将拥有配置的使用权,映像将被推送到阿里巴巴云容器,代码的可交付结果已经生成。


在部署阶段,如果进行了集成测试或回归测试,并且采用了测试环境,则使用Compose模板来描述如何在部署期间进行部署。用Jenkins丰富功能,用各种插件下拉映像部署到应用环境中,实现了代码提交到整个部署过程的变化。


Jenkins2.0




Jenkins版本包含一个新的管道建设和交付系统。流水线的设计理念基于Groovy DSL,实现一套灵活可扩展的连续发布(CD)工作流,将原本在单个节点或多个节点独立运行的任务连接起来,实现一个复杂的发布流程。此外,Jenkins支持直接从代码库中读取脚本。


从头开始构建一个持续的交付系统。




阶段是整个连续交付过程的明确定义。是自己写的,单元测试结果也能完美显示。每个阶段的时间消耗可以直接从日志中读取,也可以将软件打包的结果存储在本地。


持续交付流程设计




从机的动态生成和作业的最终销毁都是通过插件实现的。我们还支持共享存储OSS,上传战报包,镜像存储要交付的东西,部署阿里巴巴云自主开发的插件,调用容器服务的API。


詹金斯大师和经纪人




docker中的Docker表示代理将使用Docker进行图像打包。如果在詹金斯身上执行十个项目,它将

涉及到在所有项目中安装agent非常消耗资源,所以我们采用父子结构,通过透传的方式,可以使用宿主机上Docker的agent服务器执行镜像构建和打包,做到自动化流程内的隔离。

发布策略

容器服务现在支持两种发布方式:

一是rolling update,依次停止老容器,启动新容器,整个过程自动化,无需用户手动操作,适合测试场景,适合于多副本的应用发布;一是蓝绿发布(热部署):不会停止老容器,为新服务启动新容器,需要用户设置路由权重,实现不同版本应用的上线、下线,适合于版本的快速发布,不会停机影响用户。

未来还会支持金丝雀发布(灰度):不会停止老容器,为新服务启动新容器,需要用户设置路由权重,实现不同版本应用的共存,支持A/B测试,适合多方案选择。

关于云栖计算之旅

云栖技术之旅,是由阿里云云栖社区主办,整合了阿里集团内部多个领域顶级技术专家与技术资源,通过线下技术培训的方式,为热爱技术的朋友提供一个交流&分享技术观点、碰撞精彩火花的平台。

第1期精彩回顾:https://yq.aliyun.com/articles/62414

第3期预告(12月23日前端专场):https://yq.aliyun.com/promotion/140

关于阿里云容器服务

阿里云容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过Docker容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造Docker云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。

更多深度文章,欢迎关注云栖社区:https://yq.aliyun.com/cloud


推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 深入解析Docker镜像的工作机制
    本文旨在深入探讨Docker镜像的内部结构及其工作机制,包括镜像的分层体系、联合文件系统(UnionFS)的应用,以及各层如bootfs和rootfs的具体作用。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • 本文探讨了现代分布式架构的多样性,包括高并发、多活数据中心、容器化、微服务、高可用性和弹性架构等,并介绍了与这些架构相关的重要管理技术,如DevOps、应用监控和自动化运维。文章还深入分析了分布式系统的核心概念、主要用途及类型,同时对比了单体应用与分布式服务化的优缺点。 ... [详细]
  • 本文详细探讨了在微服务架构中,使用Feign进行远程调用时出现的请求头丢失问题,并提供了具体的解决方案。重点讨论了单线程和异步调用两种场景下的处理方法。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 本文探讨如何利用Java反射技术来模拟Webwork框架中的URL解析过程。通过这一实践,读者可以更好地理解Webwork及其后续版本Struts2的工作原理,尤其是它们在MVC架构下的角色。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • 本文将指导您如何在Docker环境中高效地搜索、下载Redis镜像,并通过指定或不指定配置文件的方式启动Redis容器。同时,还将介绍如何使用redis-cli工具连接到您的Redis实例。 ... [详细]
  • 容器与微服务基础:快速入门指南
    探索容器和微服务的基础知识,了解如何通过先进的应用性能管理(APM)工具提升监控效能。加入AppDynamics APM的导览,掌握容器与微服务实施及监控的最佳实践。 ... [详细]
author-avatar
黑夜总好漫长Q
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有