热门标签 | 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


推荐阅读
  • 在拉斯维加斯举行的Interop 2011大会上,Bitcurrent的Alistair Croll发表了一场主题为“如何以云计算的视角进行思考”的演讲。该演讲深入探讨了传统IT思维与云计算思维之间的差异,并提出了在云计算环境下应具备的新思维方式。Croll强调了灵活性、可扩展性和成本效益等关键要素,以及如何通过这些要素来优化企业IT架构和运营。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文探讨了利用Python编程语言开发自动化脚本来实现文件的全量和增量备份方法。通过详细分析不同备份策略的特点,文章介绍了如何使用Python标准库中的os和shutil模块来高效地管理和执行备份任务。此外,还提供了示例代码和最佳实践,帮助读者快速掌握自动化备份技术,确保数据的安全性和完整性。 ... [详细]
  • 探讨低代码行业发展现状,分析其未能催生大型企业的原因,包括市场需求、技术局限及商业模型等方面。 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • Win10蓝屏错误代码 DRIVER_IRQL_NOT_LESS_OR_EQUAL (Netwbw) 的解决方法
    本文介绍了如何解决 Win10 系统中出现的蓝屏错误代码 DRIVER_IRQL_NOT_LESS_OR_EQUAL (Netwbw),包括软件和硬件方面的解决方案。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 本文深入解析了Linux系统中常用的文件和目录操作命令,包括但不限于`ls`、`cd`等。通过详细讲解每个命令的功能、语法及应用场景,帮助读者掌握这些基本工具的使用方法,提升在Linux环境下的操作效率。此外,文章还介绍了如何结合选项和参数来实现更复杂的文件管理任务,为初学者提供了丰富的实践示例和技巧。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 如何正确获取Oracle TNS_ADMIN环境变量的值
    如何正确获取Oracle TNS_ADMIN环境变量的值?TNS_ADMIN 是 Oracle 客户端配置中的一个重要环境变量,用于指定网络配置文件(如 tnsnames.ora)的路径。本文将详细介绍如何在不同操作系统中准确获取该变量的值,并提供实用的命令和步骤,帮助用户确保 Oracle 客户端的网络连接配置正确无误。 ... [详细]
  • 考前准备方面,我的考试时间安排在上午11点至12点,只需提前20分钟到达考场的接待休息区即可。由于我居住在福田区,交通便利,可以选择多种方式前往考场。为了确保顺利通过考试,我建议考生提前熟悉考试流程和环境,并合理规划出行时间,以保持良好的心态和状态。此外,考前复习应注重理论与实践相结合,多做模拟题,加强对重点知识点的理解和掌握。 ... [详细]
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社区 版权所有