变革这个词在当今的数字化时代司空见惯,IT技术每过一段时间就会有一起革新,从WEB2.0、虚拟化、云计算、大数据、微架构、DevOps再到今天的容器Docker与Mesos。

Docker的出现方便了应用的测试、部署、与升级,其将各种应用程序和它们所依赖的运行环境打包成标准的Container/Image,进而发布到不同的平台上运行。Docker的轻量级、快速部署、迁移方便的特性促进了DevOps的落地,借用容器,开发人员可以很方便的融入到产品的交付流程当中。

Mesos是软件定义数据中心的最佳实践,其理念用最通俗的话来讲就是,让运维人员操作数据中心就算操作一台服务器一样去操作,将数据中心中的CPU、内存、存储等资源统一在一台服务器内进行调度与管理。听起来非常的高大上,如果用技术化的语言来描述,Mesos是这样定义的,统一的集群资源管理与调度平台,将生产环境中的各种服务框架,部署在一个公共的集群中,共享集群中的资源,由Mesos对资源进行统一调度,提供给服务框架使用。Mesos的出现给IaaS、PaaS以及运维的管理提供了极大的便利。

在实践中,Mesos与Docker是最佳的伴侣,前者提供了资源的统一管理,后者实现了资源的隔离使用,有合有分,在不同的层次发挥着不同的效能。同时,Mesos与Docker又都有自己的技术生态圈,两者的生态圈又都相互的促进和推动。

§Marathon保证Mesos上的服务长期运行的框架,确保运行在Mesos上的服务一直运行,某台Mesos主机发生故障时自动迁移到其他服务器。

§Chronos服务循环运行作业调度框架,可以设定反复在特定的时间触发运行Mesos中的服务

§Mesos-DNS针对Mesos的基于DNS的服务发现机制,可以方便的发现容器运行位置,并进行管理调度

§Kubernetes集群级别的容器编排管理系统,能方便的管理跨集群运行的容器化应用,提供容器调度、部署、服务发现、扩展机制等功能

§Swarm用于创建Docker主机(运行Docker守护进程的服务器)集群的工具,使用Swarm操作集群,会使用户感觉就像是在一台主机上进行操作。

Mesos与Docker这对最佳伴侣为应用的持续交付带来了极大的便利,为应用的运维管理提供了很大的方便,两者在持续交付的解决方案中都起着至关重要的作用,如下图展示了Mesos与Docker在应用持续交付中的实践。其具体的过程可以描述如下:

o开发人员根据产品的需求进行代码的实现,将实现的代码提交到Git/SVN等代码管理仓库;

o测试人员通过Jenkins/Hudson等持续集成工具,对代码进行编译、打包、集成等,将代码打包成DockerImage提交到Docker镜像仓库;

o测试人员通过Mesos资源调度和Marathon平台,用新的DockerImage部署测试环境,测试人员在测试环境中对产品需求功能进行验证。如果不符合验证反馈给开发人员,由开发人员继续修正,如果已经符合要求会通知运维人员将代码部署到预发布或生产环境;

o运维人员接到测试已经验证通过的通知后,会利用新发布的Docker Image,将其部署到由Mesos调度管理的生产环境中;

o在生产环境运行过程中,运维人员可以通过Marathon等平台对环境进行一下业务的扩容及缩容操作,甚至一些故障的自动恢复等管理。

Mesos与Docker交付中应用案例

上述过程描述是基于比较传统标准的组织架构型的公司来描述的,有清晰角色分工的开发、测试、运维等角色人员;有部分公司已经实践DevOps的管理方式,开发运维合二为一,组织架构中的角色分工更简单简洁,其利用Mesos、Docker实现的持续交付过程会有一些大同小异,其具体的操作过程还是一样的,只是操作的人可能不同。

Mesos与Docker的出现应用快、持续、自动化的交付的落地消除了很多的屏障,带来了极大的便利。IT技术就是日新月异,我们能够选择的只有不断积极的拥抱。明天会更好,本篇是我们应用持续交付系列文章的导入篇,在后续会根据实践不断更新此系列,一起加速互联网敏捷运维。

持续交付的Mesos与Docker导入篇的更多相关文章

  1. 容器调度 • Docker网络 • 持续交付 • 动态运行应用程序 部署的多元化

    <英雄联盟>在线服务运维之道 - InfoQ https://www.infoq.cn/article/running-online-services-riot/ 第一章 简 介 我是Jo ...

  2. 云端基于Docker的微服务与持续交付实践

    云端基于Docker的微服务与持续交付实践笔记,是基于易立老师在阿里巴巴首届在线技术峰会上<云端基于Docker的微服务与持续交付实践>总结而出的. 本次主要讲了什么? Docker Sw ...

  3. 测试需要了解的技术之基础篇三__持续集成持续交付DevOps

    持续集成.持续交付.DevOps 1.容器技术Docker:容器技术介绍.Docker安装与加速配置.Docker基础命令.Docker搭建selenium.Docker搭建持续集成平台Jenkins ...

  4. 持续交付之软件包管理maven篇

    背景 持续交付的我们常见的流程如下,其中有一个环节就是软件包管理 今天我们以maven仓库为示例,如下是Jenkins与CD生态: 持续交付的示例 5 Principles 五个原则 Deliver ...

  5. 基于Docker持续交付平台建设的实践

    导读:中国五矿和阿里巴巴联手打造的钢铁服务专业平台五阿哥,通过集结阿里巴巴在大数据.电商平台和互联网产品技术上的优势,为终端用户带来一站式采购体验.本文是五阿哥运维技术团队针对Docker容器技术在如 ...

  6. 利用jenkins和docker实现持续交付

    利用jenkins和docker实现持续交付 一.什么是持续交付 让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定.持续的保持在随时可以发布的状况.它的目标在于让软件的构建.测试与发布变得更 ...

  7. Docker学习总结(14)——从代码到上线, 云端Docker化持续交付实践

    2016云栖大会·北京峰会于8月9号在国家会议中心拉开帷幕,在云栖社区开发者技术专场中,来自阿里云技术专家罗晶(瑶靖)为在场的听众带来<从代码到上线,云端Docker化持续交付实践>精彩分 ...

  8. Docker学习总结(8)——利用Docker开启持续交付之路

    持续交付即Continuous Delivery,简称CD,随着DevOps的流行正越来越被传统企业所重视.持续交付讲求以短周期.小细粒度,自动化的方式频繁的交付软件,在这个过 程中要求开发.测试.用 ...

  9. [置顶] Docker学习总结(7)——云端基于Docker的微服务与持续交付实践

    本文根据[2016 全球运维大会•深圳站]现场演讲嘉宾分享内容整理而成 讲师简介 易立 毕业于北京大学,获得学士学位和硕士学位:目前负责阿里云容器技术相关的产品的研发工作. 加入阿里之前,曾在IBM中 ...

随机推荐

  1. python 脚本检测python 版本

    通过sys 模块的sys_info可以返回当前python 的版本信息, 其返回值是一个元组, 比如(2, 6, 6, 'final', 0); 表示当前版本为2.6.6 , 我们可以利用这个变量的值 ...

  2. circRNA 序列提取中的难点

    在预测circRNA时,都是检测breakpoint 处的reads 数,最后给出的环状RNA的ID 都是诸如 chr14:106994222-107183708 这样的形式,给出了起始和终止位置: ...

  3. php如何定时执行任务

    PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的 ...

  4. 10046事件sql_trace跟踪

    查看 sql 执行计划的方法有许多种, 10046 事件就是其中的一种. 与其他查看 sql 执行计划不同, 当我们遇到比较复杂的 sql 语句, 我们可以通过 10046 跟踪 sql 得到执行计划 ...

  5. MVC Razor与javascript混编(js中嵌入razor)

    其中的关键是输出js上的纯文本内容,让浏览器解析为其中的js代码 <script>    BUI.use('common/main',function(){        var conf ...

  6. LLE局部线性嵌入算法

    非线性降维 流形学习 算法思想有些类似于NLM,但是是进行的降维操作. [转载自] 局部线性嵌入(LLE)原理总结 - yukgwy60648的博客 - CSDN博客 https://blog.csd ...

  7. Qt监控excel

    配置文件setup.ini内容 [General] ExcelFilePath=D:/项目资料/GSC-西门子开关/GSCOPC.xlsx GameIp=192.168.1.152 GamePort= ...

  8. 事件和winform的学习

             记得现在已经不在学习winform啦,可是我们为什么还是学习啦,我感觉就是帮助我们往下一个层次进发啦,因为从控制台直接开始进入webform的学习,我们很难接受啦,估计效率也不高啦, ...

  9. Windows下重置Mysql密码

    1.首先停止正在运行的MySQL进程 >net stop mysql 如未加载为服务,可直接在进程管理器或者服务中进行关闭. 2.以安全模式启动MySQL进入mysql目录在命令行下运行 > ...

  10. GROW

    经理今天介绍了一下,GROW,就给他放上来了:   有一个辅导的方法 叫做 GROW (G:goal:R:reality:O:option:W:will)这个辅导方法是这样的,客观地给自己或者别人提问 ...