DevOps在云中如何演变

Puppet和Chef这样的工具帮助人们在云上使用DevOps成为可能,但是当涉及到管理和分析云应用时,仍然会有障碍。

软件开发从一个应用程序的架构开始。传统的应用是单片的,一个承载着业务逻辑的单独载入的镜像运行在一个单独的机器上。但是随着多年来人们对分布式计算兴趣的日益增加,以及易于部署和重用的软件组件化,催生了一种新的模型。

无论你是叫它面向服务的架构(SOA),模块计算还是Web Service,这种新的模型将应用划分成多个部分,然后用工作流接口连接在一起。开发人员必须发送所有的整合和工作流的信息给那些负责部署和管理应用的人员。这种在开发和运维之间的沟通,加上促进这种沟通的流程,在2009年被定义为DevOps。今天,DevOps也指使用实时开发数据来自动化应用部署的工具。

云的DevOps截然不同

云计算正在重新定义DevOps。主要是因为集成的问题,云部署比本地应用部署更复杂。云是一个动态的资源,所以用户期望能够有对故障转移和云爆发的支持。这意味着应用组件和整个应用不会一直在他们初始的位置上。这也意味着工作流和连接会在负载或者一个故障模型操作中变化。于是云管理工具很自然的开始影响,并且也同时越来越多的受到DevOps工具和原则的影响。

有两种常见的DevOps方式:基于脚本和基于模型或对象。脚本模式在前云时代占据主导地位。但是,许多DevOps大牛担心脚本太过程化,只描述了部署和整合的步骤,而不是最终的产品。而一个定义最终目标的DevOps模型需要更多的工作,它可以在各种各样的基础架构和应用组件之间移动,使之更加适合云。

脚本工具在云计算中仍然很常用。但是另外两个工具一直在角逐第一的位置:Puppet,展现了一种基于模型或者声明性的脚本撰写方式,另一个是Chef,则采用过程化或者指令的方式。

Chef是一个指令式的DevOps框架,用Ruby来撰写脚本。Chef成为代表DevOps的开发方的强大选项的同时也很难于学习。

然而与Chef不同的是,Puppet对于系统管理员来说通常更加容易学习。Puppet是使用基于JSON数据模型的一种声明式语言。由于Puppet是非过程化的,它成为了DevOps的脚本形式和模型形式之间的桥梁。

云端DevOps的另一大进步是云应用拓扑和编排规范(TOSCA),一个由行业联盟OASIS制定的开放标准。TOSCA是一个基于模型的架构,将部署和管理定义成抽象的层次化的组件模式属性。其结果是,TOSCA是一个理想的用来描述复杂应用的架构。另外,TOSCA还产生了至少一个开源的实现—OpenTOSCA。

TOSCA对未来的影响比当前的支持更重要。云是关于抽象资源比如虚拟机,虚拟网络和虚拟服务在资源池上的具体实现。这种方法正适合于基于模型的DevOps,并且受到云应用变得更动态的驱使,同时改变了运维和开发。

DevOps背后的推动力

专家们相信敏捷性是DevOps最大的推动力。而移动宽带和云计算又接着推动对于敏捷性的需求。一个未来的云应用会是一组连接在一起的组件,几乎可以瞬间对事件进行响应,比如一个移动工作人员,一个无人驾驶汽车或者另一个实时的需求。尽管这些应用也许要更容易建模而不是用脚本,无论何种方式,应用开发和生命周期管理正在演化成更适应云。因此,DevOps应该成为一个业务技术规划流程中的关键部分。

尽管DevOps正以云的面貌不断演化,然而还有一些挑战要克服。比如,一些DevOps工具,即便是最新的那些,当用来管理应用执行的时候还是有短板。许多云部署使用一种耦合分析的方法来管理。在这种方法中,云收集信息并提供分析来管理一个资源池,不需要关联到特定应用的特定资源。但是,这对于那些高动态的应用和被用来只是回答某个用户的问题的个性化应用来说可能是个挑战。当管理数据只提供在一段时间内一池的资源信息时,要判断这些应用存在的问题是很困难的。

原文发布于微信公众号 - 云计算D1net(D1Net02)

原文发表时间:2015-03-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏软件测试经验与教训

张老师聊面试(二)

小梅,毕业一年,从实习到现在都在一家外包单位工作,做的是手机测试和定制软件的测试,由于工作单调,且没有成长空间,因此考虑换一份工作。但几次面试都不太顺利。

951
来自专栏我是极客人

微信时代 | 你还在电脑上管理公众号吗

极客人最近为王柏元的博客制作了自己的微信公众号,这个公众号旨在将移动终端用户在手机上的所有操作,化繁为简,集中在一个微信公众号里,免去用户安装过多移动APP,比...

1842
来自专栏企鹅号快讯

一文读懂云计算,所有常用术语

云计算:云计算指的是交付计算即服务(或者交付结果中包括计算架构),而不是产品。资源共享,软件和信息通过网络(企业内网、互联网或者二者的结合)供计算机或者其他设备...

24610
来自专栏媒矿工厂

优化延迟的最佳视频传输方案(二)

上一篇文章《优化延迟的最佳视频传输方案(一)》介绍了在整个视频传输系统中的分发链前端和媒体内容准备方面的延迟优化方案,本文将继续介绍传输系统的接下来的优化方案,...

1562
来自专栏美团技术团队

云端的SRE发展与实践

背景 SRE(Site Reliability Engineering)是Google于2003年提出的概念,将软件研发引入运维工作。现在渐渐已经成为各大互联网...

3499
来自专栏北京马哥教育

原创投稿 | 虚拟化与云计算初级了解

各位朋友大家好,今天我们一起来了解下虚拟化与云计算,在说虚拟化与云计算前我啰嗦几句:当我们在做某件事儿的时候,首先多问自己几个为什么?大家不要小看这个为什么?当...

39013
来自专栏云计算D1net

正确估算而非过度配置公共云资源

一般来说,企业用户都希望为使用云做好准备,也就是他们不必为没有使用过的资源支付费用。本文所介绍的这些小贴士可以有助于用户正确估算他们的云实例并避免云资源的过度配...

3485
来自专栏Java学习网

论编程的最后期限

普通编程与专业编程之间有很多差别,而最为显著的就是截止日期。 截止日期 / 最后期限   当你给自己写程序的时候,只要你愿意,就可以用很多(或者很少)的时间来...

3397
来自专栏腾讯云数据库(TencentDB)

不知道CynosDB为什么叫真正的云原生数据库?腾讯云数据库的产品欧巴今天跟你聊一聊

注:本文摘自2018年11月22日腾讯云数据库CynosDB新品发布会的演讲实录。随着互联网信息的发展,大家也对云这个词汇也不是特别陌生了,作为全球首选的云服务...

2842
来自专栏Java后端技术栈

新的一年来自一个程序员的反思!

程序员大军鱼龙混杂,水平的高低无法简单的从一个功能完成情况来评定,同样一个需求,功能都可以完成,但是不同程序员完成质量会不一样,完成质量的好坏需要从多方面评定,...

872

扫码关注云+社区

领取腾讯云代金券