杜克大学VS中国10个验证场景,中外DevOps&容器落地实践哪家强?

目前,DevOps&容器似乎已经成为企业进行生产环境改造,提高交付效率的标配,小数之前去奥斯汀参加Dockercon2017接触过两个国外案例:

Visa——容器的研发生产、标准化的打包、配置和管理,多样化的时间点、给Visa带来了提高IT效率和速度的破局。

中美人寿——5个月内的生产上线,DevOps&容器带来的新IT文化,给中美人寿这个传统保险巨头带来了灵动高效的IT转变。

DevOps&容器这对黄金搭档可见适用于各个行业,今天小数再给大家分享一个杜克大学的实践。

当时的困境

杜克大学的IT部门(信息技术办公室(OIT))逐步实践DevOps&容器文化转型,如今回首仍能感受到当时的不易。

虚拟机将每个客户的网站分离后进行隔离和组织,但稳步增长意味着需要管理的服务器数量超出当时的管理能力。所以需寻找方法来降低管理开销以及更高效地利用资源。Docker一出现,杜克大学信息技术办公室(OIT)就开始尝试容器化Web应用程序。除此之外,容器镜像也将OIT引向DevOps文化。

从哪里开始

最初看到容器技术时,OIT认为是依靠高度过程驱动的、组成独立应用程序的一个整体的组织结构。但那时,一些早期部署自动化的企业,已经开始在企业内部进行新的文化转型。但即便如此,OIT部门的绝大多数基础设施,仍然是“圈养”风格的服务器(注:此处使用“圈养”和“散养”的类比)。开发人员设计应用程序要考虑——生产托管环境和部署迁移代码等方方面面。

运维仍然接近托管,因为它为个人服务并创建虚拟机专用文件来进行监控和备份。服务器的生命周期与变更请求、委员会审查、维护标准、以及大量的人为因素有关。

文化的转变

当OIT部门开始接受容器后,一些长期开发和运维的态度开始转变。转变主要来自于两个实际案例:

为学生在微软Azure的主机上创造了数百个R-Studio容器,打破现有的单独管理服务器模型,进而走向“散养风格”基础设施管理。

杜克大学网站的快速容器化和部署Amazon Web服务,能够在抵挡服务供给的同时,动态创建基础设施和快速部署服务。

这两个非标准项目的成功,提高了容器在OIT部门的认可度,从而进一步实施推广。

很明显,从传统基础设施方面来看,容器出现在不同的时间段中。OIT开始关注在短期内,专用服务创建、部署,在整个生命周期中的生存,并在退役之前完成创建许可、存储、监控、备份。OIT的策略和程序是无法跟上容器开发和部署的时间表。

此外,人们无法跟上的自动化创建的步伐来管理容器。作为反馈,我们开始开发更多自动化来完成人工流程。例如,从一个主机到另一个容器的动态迁移需要改变我们的监控方法。不再把主机和服务监视绑定在一起或手动提交,容器会自动销毁并重装创建在其他主机上来响应事件。

自动化和容器看似彼此平行。但在某个时刻,它们紧密交织在一起。

容器受欢迎程度持续增长,OIT开始为容器编配开发工具,试图进一步加强基础设施的“散养性”。OIT只限制登录主机的操作人员(打破传统),并且给所有容器主机命名。如同教练一样,避免附件、服务器像流浪猫一样被遗忘。管理基础设施成为自动化的责任不在于人,人要将精力都集中在容器内的服务上。

容器也有助于将持续集成引导到日常工作流程中。OIT管理团队成员身份的早期采用者,开始构建Kerberos密钥分发中心(kdc),在容器内使用Jenkins,定期将补丁和测试生成镜像。使得团队能够在服务器投入生产之前查缺补漏。

在此之前,环境的复杂性和宕机带来的发范围修补是一项艰巨的任务。

采用集成部署

直至今日,OIT也一直在采用集成部署。CI/CD系统已经成为一种既定模式。许多团队最初对自动部署测试十分犹豫,更倾向于人工干预建立检查点。然而,当懂的如何编写好用的测试系统后,又都会将原来的检查点移除。

在OIT的容器业务流程自动化中,当镜像变化时,使用Jenkins做定期补丁,重建所有的子镜像。OIT决定早期的镜像可以在任何时候重新构建并重新部署自动化流程。

这意味着任何代码包含在分支的Git存储库用于构建工作,在没有任何人为的涉及下,包括镜像和潜在部署。虽然有些开发人员最初不爽,但它最终朝着更好的开发实践方向发展:开发人员并入生产部门,只有代码是真正被部署的。

当代码合并到生产部门,并且能够自动化部署新镜像时,这种做法会有助于立即重建容器镜像。这样,几乎每一个项目都使用自动重建,也就相当于创建了自动化部署。

展望未来

如今,OIT仍在实践DevOps和部署容器。

即便OIT采用新的工具和文化,但仍要和旧模式做斗争。OIT最大的挑战是说服人们脱离反复修复的心态,使自己的工作更多地专注于自动化。

时间转瞬即逝,第一步总是令人望而生畏,但长期采用自动化会让工程师门的工作集中到更有趣、更复杂的项目上去。

值得庆幸的是,组织内开始接受自动化。这要求我们必须接受自动编排和复杂的系统。一群才华横溢的人相互补充才能适用于新的管理环境。

在企业DevOps转型和落地实践容器和道路上,任重道远。基于云平台的DevOps解决方案正在成为一种趋势,而与容器技术的结合更大大的提高了产品更新迭代的速度,但随之而来的落地实践问题也值得关注。

6月24日,数人云将在“2017双态运维乌镇峰会”专题研讨会上,与业内知名公司和技术专家一起分享“DevOps&容器—10个被中国用户验证的落地场景”。

加小数微信号:xiaoshu062 了解更多活动信息~

Markdown

Markdown