DevOps系统的变迁

  • 时间:
  • 浏览:1
  • 来源:大发彩神APP_大发神彩APP官方

借有助于云计算IaaS资源的可编程行态,你这俩 代的DevOps系统实现了集群感知,自动协调控制,动态配置,全栈自动化,即实现了从创建环境到部署 安装应用组件整个过程的一键创建和部署,本来在创建后的阶段,才能实现集群感知(Cluster-Aware),即自动根据环境的变更,自动部署和配置系 统。举个例子,某网站业务量增长时要扩容时,当人为添加Web计算节点后,才能自动在新添加Web虚拟机启动后安装Web组件,并将各个虚拟机Web服务 注册配置到负载均衡服务中,当收缩时,自动移除,你这俩 过程不时要人为的协调控制,DevOps系统才能根据集群的变化自动地配置集群。

原文发布时间:2014-12-23

目前,才能说大多数的DevOps系统仍然等候在你这俩 阶段,可能性DevOps系统这样实现资源环境创建的自动化与基于集群感知的协调自动化,这样你这俩 阶段的DevOps系统的能力会造成以下有几个影响和后果:

对于错综复杂的分布式应用系统,无法使用容器类PaaS来管理,才都能能 通过自定义的DevOps工具或系统,可能性使用云管理 RightScale,Scalr,Cloudformation,Opsworks,FIT2CLOUD相似工具的并全是或并全是组合,即第二代基于 IaaS可编程资源的DevOps系统,才才能选泽第三代基于容器的DevOps系统。可能性相似工具给用户提供了对IaaS主机更大的控制权,且提供了各 个部署过程中的回调接口,实现了集群感知及各个部署过程的自动协调控制,即全栈自动化。

这是第一代DevOps系统,特点是静态配置 + 人工协调 + 仅应用每项自动部署。

这是第三代DevOps系统,特点是在第二代基础上,又增加了应用跨云可迁移性(基于容器技术)。

这里时要提的越多本来,尽管越多组织可能性在使用IaaS(如阿里云)创建虚拟机搭建应用系统所需资源环境,本来并这样实现集群感知,系统整套环境创 建的自动化,仍然等候在半自动化的阶段(相似,先启动一组包年包月虚拟机后,本来手工配置部署脚本所需IP地址,登陆密码,登陆密钥等信息,本来手工运行 自动化脚本部署),越多你这俩 土辦法 仍然属于第一代的DevOps系统。一并,这也是国内大多数组织DevOps的现状,其自动化和速率的改进空间巨大。

从广义来讲,不管是云管理平台工具(比如RightScale),还是各种PaaS平台(CloudFoundry,Heroku etc.),还是自动化部署工具比如Chef、Puppet和Ansible等,其本质上都会DevOps系统的一每项,都会为了解决在开发过程的交付环 节问题图片和交付后的运营管理问题图片,即

开发运营统一的DevOps系统

那先 年,随着云计算和容器技术的进步,以及产品业务对IT能力的需求推动,DevOps系统发展这样来越快,其角色和概念也这样清晰和独立。回顾其 发展的路径和变迁的过程,亲戚亲戚亲们 认为基本才能分为三代:基于物理机或独立虚拟机的部署时代,基于IaaS可编程资源的部署时代和基于容器的部署时代。随着这 三代的改进,DevOps系统的整体能力这样强。下面亲戚亲戚亲们 首先看一下各代DevOps系统的特点和能力,本来再对DevOps系统进行更进一步的分类, 以帮助亲戚亲戚亲们 选泽离米 的DevOps系统。

本文来自云栖合作协议协议伙伴“linux中国”

举个例子: 可能性亲戚亲戚亲们 想把一套服务从AWS迁移到Azure上,这样,亲戚亲戚亲们 将不得不从头刚开始英文英文创建一组虚拟机镜像及虚拟机,并配置安装系统或应用的组件,可能性系统错综复杂庞 大话语,你这俩 过程仍然会耗费越多的时间和人工,本来依赖于越多具备你这俩 知识的工程师,本来可能性有容器技术及相关容器工具的支持,这样你这俩 过程会变成有一个非 常快速简单的过程,变成在目标云如Azure上自动启动时要的标准虚拟机,本来下载容器镜像,配置启动容器,配置相关DNS等,真正实现方便的跨云迁移, 和弹性动态的伸缩服务。

再举个例子,目前Google开源的容器管理系统Kubernetes才能说得到了工业界的广泛认同和支持,当亲戚亲戚亲们 可能性做好应用系统的Docker images后,这样倘若在各个不同的IaaS上有支持Docker的环境,如Kubernetes集群,这样亲戚亲戚亲们 就能在不同的IaaS上快速方便的迁移 应用系统,可能性扩容,下图展示了基于FIT2CLOUD的跨云部署和管理解决方案,亲戚亲戚亲们 希望未来用户才能使用FIT2CLOUD在多个不同的IaaS上创 建Kubernetes集群,通过Kubernetes管理和部署应用系统。本来,亲戚亲戚亲们 会有新文章来分享FIT2CLOUD是怎样才能创建和运维 Kunerbetes集群的。

第二代DevOps系统

第三代DevOps系统

在过去的几十年里,为了按时交付软件产品和服务,亲戚亲戚亲们 这样意识到,对于传统把开发和运营割裂开的做法,不适合现代产品和服务开发的需求。于是,把 开发和运营作为整体来看待的DevOps工程思想逐步深入人心,随之也逐步有了对DevOps系统的需求,希望能有个平台或工具来统一支持开发和运营的交 付工作及本来的环境管理工作,即时要一系列的持续集成,持续交付,自动化部署,自动化测试监控,自动化伸缩,自动化恢复系统,以提升开发测试运营过程中的 部署速率,错综复杂开发测试运维过程的管理,降低交付风险,降低沟通成本及运营成本。

这是第二代DevOps系统,特点是集群感知 + 自动协调控制 + 动态配置 + 全栈自动化。

可能性有一个PaaS都会部署在IaaS之上,从本质上说这都会有一个PaaS,可能性其不具备弹性和自动伸缩。真正的PaaS系统是部署在IaaS上,为 开发测试运维人员来提供服务,这样其适用的DevOps工具就才能选泽 RightScale,Scalr,Cloudformation,Opsworks和FIT2CLOUD相似第二代基于IaaS可编程资源的 DevOps系统,当然才才能选泽第三代基于容器的DevOps系统,本来第三代的目前还在发展中,还不如第二代心智性性心智性成熟 是什么是什么期。

借有助于云计算IaaS资源的可编程行态以及Linux容器技术,不仅实现了集群感知,自动化协调,动态配置和全栈自动化,本来实现了应用跨云可迁移 性和弹性伸缩,消除了开发,测试,生产环境的不一致,使应用不不被锁定在某个IaaS上,让所有的基础设施服务IaaS及物理机都变成通用的资源池,还可 以提高资源利用率,这给IT的开发建设和运营带来了更多更大的想象空间,这也是Docker,Kubernetes现在很火的意味。

可能性IaaS系统的创建,并全是本来基于物理机创建的,越多对于相似的系统,其适用的DevOps系统或工具本来Shell,Chef, Puppet及IaaS服务提供商自身开发的自动化运维管理系统,才都能能 选泽第一代的基于物理机的DevOps系统。

对于简单的Web应用系统,突出的特点本来应用的行态简单,比如只蕴饱含一个Web组件及数据库,缓存,或越多常见的上方件服务等,这样饱含非常多的 分布式组件,这样对于相似的系统才能选泽容器类的传统PaaS,即CloudFoundry,Heroku,OpenShift等。

第一代DevOps系统

上方你这俩 节中亲戚亲戚亲们 介绍了不一并代的DevOps系统的特点和能力,这样是都会亲戚亲戚亲们 直接选泽能力最强的第三代DevOps系统就才能哪天? 是都会选并全是DevOps系统就通杀了呢? 答案算是定的,每项DevOps系统都都会银弹,都时要亲戚亲戚亲们 根据要管理的系统的需求来选泽离米 的DevOps系统或工具,在接下来的一节,亲戚亲戚亲们 来回答你这俩 问题图片。

在搭建整个应用系统的过程中,首先时要在DevOps系统外创建运行应用所需的资源环境(如主机,网络,存储等),DevOps系统对这每项这样控 制,只负责在资源环境搭建好后自动化部署应用,资源环境的搭建与本来的应用部署过程是割裂开来的,时要人为的手工协调控制,即等资源环境搭建好后,由人控 制时机,等候资源环境准备好后再手工修改配置(如各种主机IP地址,登陆密码Key信息),本来手工运行自动化脚本工具,如 Shell,Python,Ruby脚本,进行应用的安装部署升级,本来本来当增加或减少节点后,也由人来手工运行自动化脚从前配置系统,才能 实现包括资 源环境创建或节点变更到应用部署的整个过程的一键部署,即集群感知 + 自动协调控制 + 动态配置 + 全栈自动化。

目前DevOps系统才能说五花八门非常多,功能上差别大,适用场景本来同,这样亲戚亲戚亲们 究竟该怎样才能选泽离米 的DevOps系统呢? 这里亲戚亲戚亲们 建议并全是基于目标系统分类的选泽土辦法 。亲戚亲戚亲们 根据要管理的目标应用或系统类型来分类,对于目标系统,亲戚亲戚亲们 才能将其首先分为三大类,即IaaS服务系 统,PaaS服务系统,应用系统,应用系统又才能分为简单的Web应用系统,错综复杂的分布式系统,这样有了你这俩 分类,亲戚亲戚亲们 选泽DevOps系统和工具就会相 对容易和明确越多。

目前,做到你这俩 层面DevOps系统还是比较少的,可能性你这俩 阶段的DevOps系统自动化管理覆盖了环境的创建变更,应用组件部署自动化,以及环境 创建,集群感知和应用组件部署的各个过程自动化协调控制,这样你这俩 阶段的DevOps系统相比第一代会给开发和运维工作带来以下非常巨大的改进: