容器与devops

即使回顾起来,也很难知道哪个对我们最先出现:容器或向DevOps文化的转变。

在杜克大学信息技术办公室(OIT),我们开始研究容器,以此作为一种用于承载网站的虚拟化基础架构来提高密度的方法。 虚拟机(VM)泛滥已开始成为一个问题。 我们倾向于将每个客户的网站都隔离到自己的VM上,以进行隔离和组织,但是稳定的增长意味着我们管理的服务器数量超出了我们的处理能力。 当我们寻找降低管理开销和更好地利用资源的方法时,Docker成为新闻,我们开始尝试对Web应用程序进行容器化 。

对我们而言,对容器的初步调查反映了向DevOps文化的转变。

我们从哪里开始

当我们第一次研究容器技术时,OIT是高度过程驱动的,由整体应用程序和整体组织结构组成。 早期对自动化的一些尝试开始导致部门内部向新的文化组织的转变,但是即使如此,我们的绝大多数基础结构还是由“宠物”服务器组成的(使用宠物与牛的类比)。 开发人员在临时服务器上创建了他们的应用程序,该临时服务器旨在匹配生产托管环境,并通过将代码从前者迁移到后者来进行部署。 运营仍然像往常一样接近托管:为单个服务创建专用的VM,并提交手动票证以进行监视和备份。 服务的生命周期以变更请求,复审委员会,标准维护时段和很多个人关注为标志。

文化的转变

当我们开始拥抱容器时,这些对开发和托管的长期态度开始有些转变。 较大的两个容器成功案例来自我们对云基础架构的调查。 创建第一个项目是在Microsoft Azure主机上托管数百个用于学生课程的R-Studio容器,这打破了我们现有的独立管理服务器模型,并朝着旨在托管容器化应用程序的“牛”式基础结构发展。

另一个是在遭受拒绝服务攻击的同时,将Duke网站快速容器化并部署到Amazon Web Services,动态创建基础架构并快速部署服务。

这两个非常不规范的项目的成功帮助使部门内的容器合法化,并且投入了更多的时间和精力来进一步研究它们在内部以及通过公共云提供商所获得的收益以及按需和一次性云基础架构所带来的收益。

早期很明显,容器与传统基础架构的生存时间不同。 我们开始注意到在创建票证以将其输入库存,监控或备份之前,短暂的,单一用途的服务已被创建,部署,使用了整个生命周期并已退役的情况。 我们的政策和程序无法跟上容器开发和部署所伴随的时间表。

此外,人类无法跟上在主机上创建和管理容器的自动化。 作为响应,我们开始开发更多的自动化功能来完成通常由人为操作的流程。 例如,将容器从一台主机动态迁移到另一台主机需要更改我们的监视方法。 将主机和服务监视捆绑在一起或手动提交票证已不再足够,因为容器会根据事件自动销毁并在其他主机上重新创建容器。

其中一些已经在我们的工作中了—自动化和容器的采用似乎相互平行。 在某些时候,它们变得密不可分。

随着容器的持续流行以及OIT开始开发用于容器编排的工具,我们试图进一步加强“牛而不是宠物”的基础架构方法。 我们将主机的登录仅限于操作人员(与传统不符),并为所有指定用于容器托管主机的主机提供通用名称。 类似于为了避免附件而被指导避免为流浪动物命名那样,具有通用名称的服务器实际上已经被遗忘了。 基础架构本身的管理成为自动化的责任,而不是人类的责任,人类将精力集中在容器内部的服务上。

容器还有助于将持续集成引入我们的日常工作流程。 OIT的身份管理团队成员是早期采用者,并开始使用Jenkins在容器内构建Kerberos密钥分发中心(KDC),并定期构建以合并补丁并测试生成的图像。 这样一来,团队就可以在将破坏性构建推向生产服务器之前对其进行捕捉。 在此之前,环境的复杂性和中断的广泛影响使修补系统成为一项艰巨的任务。

持续部署

从最初的用例开始,我们还接受了持续部署。 与我们的持续集成/持续部署(CI / CD)系统相关的每个项目都有一个可靠的模式。 很多团队最初对在测试通过时自动部署有很大的犹豫,他们倾向于建立需要人工干预的检查点。 但是,随着他们对系统更加熟悉并学习如何编写好的测试,他们几乎总是删除这些检查点。

在我们的容器编排自动化中,我们使用Jenkins定期修补基本映像,并在父级更改时重建所有子级映像。 我们尽早做出决定,可以通过自动化流程随时重建和重新部署图像。 这意味着在构建作业中使用的git信息库分支中包含的任何代码都将包含在映像中,并且可能在不涉及任何人员的情况下进行部署。 尽管有些开发人员最初对此感到不满意,但最终导致了更好的开发实践:开发人员仅将真正准备好部署的代码合并到生产分支中。

这种做法有助于在代码合并到生产分支后立即重建容器映像,并允许我们在构建新映像后自动部署新映像。 在这一点上,几乎每个使用自动重建的项目都已经启用了自动部署。

展望未来

如今,对于OIT而言,同时采用容器和DevOps仍在进行中。

在内部,即使采用新的工具和文化,我们仍然必须与历史的熵作斗争。 我们最大的挑战将是说服人们摆脱目前占据主导地位的重复性的“ 断点修补”思维,而将更多精力放在自动化上。 尽管时间总是很短,而且第一步总是很艰巨,但从长远来看,采用自动化来执行日常任务将使他们有更多的时间从事更有趣,更复杂的项目。

值得庆幸的是,组织内的人们开始拥抱在跨学科成员的有组织或特设小组中工作,并共同开发自动化。 当我们采用自动化编排和复杂的系统时,这绝对有必要。 将需要一群具有互补技能的才华横溢的人来全面管理新环境。

翻译自: https://opensource.com/article/17/6/duke-university-using-containers-and-devops

容器与devops

容器与devops_容器和DevOps如何改变杜克大学的IT部门相关推荐

  1. 容器与devops_什么容器可以教我们有关DevOps的知识

    容器与devops 有人可能会说容器和DevOps是彼此兼容的. 当然,在设计选择和开发容器技术的团队使用DevOps的过程中,DevOps实践的迅猛普及将使容器生态系统受益. 由于这种并行发展,在生 ...

  2. 研发效能 | DevOps如何改变游戏公司工作方式?

    如果你是游戏开发者,那么在过去几年里,你可能会觉得有人给了你一把双刃剑. 整个行业不断蓬勃发展,但玩家的预期值也越来越高.玩家们总是希望游戏体验能够更快.更真实.更具创造性.此外,他们还希望能够定期推 ...

  3. 复习笔记(九)——C++中的容器(STL容器)

    STL定义 STL(Standard Template Library),即标准模板库,是一个高效的C++程序库.被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/I ...

  4. 容器性能比无容器服务器,【译】容器 vs 无服务器(Serverless)

    一些历史 不久之前,开发,部署和运维还相当复杂.在一开始,运维不仅需要修补程序代码,还要支持物理机器.保持服务器,硬件与软件处于最新状态也是一项艰巨的任务. 在2000年代,一个新的模型--架构即服务 ...

  5. docker server 容器连接sql_Docker 容器的网络连接

    文章首发于公众号<程序员果果> 地址:https://mp.weixin.qq.com/s/DzF-ZwaY4QtlgM32I5wybg 一.Docker 容器的网络基础 docker0( ...

  6. java用来存储键值的容器是_Java容器 - osc_y0caef0i的个人空间 - OSCHINA - 中文开源技术交流社区...

    问题及答案来源自<Java程序员面试笔试宝典>第四章 Java基础知识 4.9容器 1.Java Collections框架是什么? Java Collections框架中包含了大量集合接 ...

  7. 【容器化】浅析容器化以及容器编排

    文章目录 容器化概念 视图隔离 资源隔离 Docker 镜像(Image) 容器(Container) 镜像仓库 容器编排 容器编排 TKE 容器化概念 容器化的本质是一个"视图隔离.资源受 ...

  8. Runc 容器初始化和容器逃逸

    更多奇技淫巧欢迎订阅博客:https://fuckcloudnative.io 前言 在每一个 Kubernetes 节点中,运行着 kubelet,负责为 Pod 创建销毁容器,kubelet 预定 ...

  9. 无法从另一个容器访问Docker容器中的MySQL数据库|解决方案

      ▲ 点击上方"DevOps和k8s全栈技术"关注公众号 我从这里拉取了 MySQL 5.7 容器:https://hub.docker.com/_/mysql/ 这是我运行它的 ...

最新文章

  1. Atitit JAVA p2p设计与总结  JXTA 2
  2. swift为UIView添加extension扩展frame
  3. Java黑皮书课后题第5章:5.6(英里与千米之间的互换)编写一个程序,并排显示下面两个表格
  4. 黑马程序员:java基础学习——数组
  5. python socket tcp实战_Python socket.TCP_MAXSEG属性代码示例
  6. 图像标注工具labelImg使用方法
  7. vue 配置sass、scss全局变量
  8. 京东时间校准_微星PAG272QR评测(友达新代号屏出现,QR2正在测试,稍晚一点时间发出)...
  9. 深度deepin安装腾达U12无线网卡驱动
  10. 海信LINUX系统改安卓,如何获取海信电视的root许可一键单击海信Smart TV的root卸载内置软件...
  11. 这种网站我看见就收藏
  12. D-link 带USB口无线路由器 配置网络共享打印机
  13. 考研数学中的三角函数公式
  14. Excel如何筛选数据重复项?
  15. TA100 T3.7 TB(D)R
  16. 安卓目标检测,目标跟踪,人流量计数
  17. linux去除文件中重复行,Linux Shell教程 - 如何删除重复的文本行
  18. RTX30系列-Ubuntu系统配置与深度学习环境Pytorch配置
  19. 你是如何进行文件备份的?
  20. iPhone XS系列降价一千元;Intel雷电接口将融合USB4;蔚来汽车收入、亏损均增长百分百 | 雷锋早报... 1

热门文章

  1. 关于Gossip协议的几个问题
  2. 什么是ZooKeeper
  3. 深入理解并发的关键字-volatile
  4. DockOne微信分享(一三一):Juice——一种基于MesosFramework的任务云框架
  5. CCF201612-2 工资计算(100分)
  6. struct多种声明定义写法的小结
  7. Javascript实现返回上一页面并刷新
  8. 数字ToString作为货币显示并且带小数
  9. android系统优势 研究,Android系统关注度持续保持优势
  10. pico park无法连接至远程服务器,pico park怎么联机玩?pico park怎么邀请朋友一起玩?[多图]...