微信号:infoqchina

介绍:有内容的技术社区媒体

天生一对:云与DevOps

2013-12-09 16:52 InfoQ

数字创新经济


云计算和DevOps间的关系到底是什么呢:难道DevOps真的只是“针对云的IT”?只能在云中执行DevOps?只能通过DevOps运行云?针对这三个问题,其答案都是否定的。云和DevOps是相互独立的,但在通过IT交付商业价值上却是相辅相成的。


要想真正理解云与DevOps之间的关系,应该退一步在两者是如何发生的大背景下去考虑,这样会有所帮助。云和DevOps的演变是对三个基本社会变革的回应。首先,我们正在经历从产品经济到服务经济的演变。人们更多地强调体验,而非具体事物。尽管公司依然生产各种产品,但是他们将其包装于服务中。BMW一辆新车的价格包含了日常维护。凯迪拉克也将OnStar服务集成于它的车辆中。而iPhone的优势则主要来自它对iCloud和iTunes的集成。


从产品到服务的转型也同样影响着软件交付。以前,开发公司完成软件产品后,就直接交付给用户去负责运营。而随着云计算的到来,大部分公司在构建软件的同时,也负责为客户运营该软件。


软件即服务正发生于IT产业的各个层面。在底层,基础设施即服务交付随需而变的虚拟机、网络和存储。平台即服务交付随需而变的数据库、缓存、工作流引擎和应用程序容器。软件即服务交付按需分配的业务功能。在每个层面,供应商允许客户根据需求购买相应服务,然后根据消费来支付费用,同时也将管理责任交给供应商。


第二,21世纪的商务环境迫使公司将他们的注意力从稳定和有效转变为敏捷和创新。变革的速度不断加快。Kodak鼎盛了100年才开始面对它在市场上的衰弱。相反,Microsoft仅在30年后就感觉到其地位的动摇。而Apple在短短几年后,其作为世界最有价值公司的称号就遭到质疑。


为了向市场展示其应变能力,企业需要改变它们的工作方式。它们需要缩短工作周期,增加交付频率,以及采取支持持续试验的态度。社交媒体正在将主导力从生产商转移到消费者身上。营销也从行为驱动流程转变成对行为的回应。当公司即整体转变为关注单个员工时,公司需要鼓励具有创造性的回应,尽量减少阻碍其前进路上所造成的浪费。


第三,数字层面已经开始完全渗透到物理层面。你的车到底是由金属和塑料,还是Pandora音乐服务客户端组成的?你的办公楼是HVAC系统在流体动力学上一个奇迹,还是大数据的一个奇迹?你的当地图书馆是个需要去真正书架上找书的地方,还是可以上网查看的地方?这三个问题的答案当然都是双重肯定的。


数据渗透极大地提高了IT的赌注。我们已经到了所有日常行为都离不开数字化技术的程度。公司的任一一个存在都需要依靠IT。在为持续业务提供令人信服的平台上,IT无法承担其失败的后果。


拥抱敏捷


以上这些转型与云或DevOps有什么关系?云是对敏捷需求的直接回应。最初,人们主要认为云是一种省钱方式,将资本支出(CapEx)转移到了运营支出(OpEx)。现在,人们发现云的真正价值在于:减少那些会阻碍速度、或让我们失去焦点的浪费。只有很少一部分公司将数据中心业务视为其核心价值主张的一部分。云服务允许IT部门将他们的注意力从繁重的日常工作中解放出来,比如:管理硬件或给操作系统打补丁,从而让他们有时间和精力去创造那些更有特定商业意义的价值。


从产品经济到服务经济的转变同时,伴随着数据化的入侵,这意味着公司在成为软件服务提供商的同时,也要变成消费者。现在,我有99%的银行交易都是通过银行网站或移动应用来完成的。我会通过这些数据交易的质量来判断其品牌好坏。同时通过功能性,可操作性和交付能力等来评价这些交易质量。而在这三点上,我期望其质量能达到无缝结合。


Cloud通过让IT基础架构更加地灵活,从而为商务带来了更大的灵活性。它允许公司与客户间建立起数据化的服务关系。尽管如此,IT在如何让企业实现自我适应这一问题上,Cloud只是原因之一。对于IT企业,不管它是在数据中心硬件上,还是在私有或公共云上运行应用程序,都需要与商业需求同步,而非反之而行,让商业需求与IT同步。基于仓储(Silo)的组织和各种手动流程依然产生各种浪费,阻碍了交付持续更新和进行持续试验的能力。繁琐、费时、无关痛痒的变更管理流程同样也让人生厌和沮丧,迫使用户和开发人员等一起寻求能绕开IT的方法。


IT运维部门(IT Ops organization)总是不幸地被冠上“拒绝部门(The Department of No)”的绰号。在以前那些受挫的商业人员也将此昵称赋予了开发团队。敏捷开发运动大大加强了商业和开发之间的相互信任关系。尽管敏捷为我们带来了各种新的趣味,但是它也有它的不完善之处。从根本上讲,敏捷是调整开发,让其更易去接受,而不是加强它对变化的抵抗力。


功能和可操作的不可分割性


从DevOps角度开看,软件即服务的最重要意义在于其融和了功能和操作性之间的分离。让用户体验到它们之间是整体的、无缝链接的。客户在期待功能和操作性的高质量的同时,也期望服务供应商能在该质量平台上为他们提供持续的更新。


这些期望要求一个完全不一样的软件交付方式。将开发从运维中分离出来与由外到内不可分割的观点相冲突。功能+操作很自然地与开发+运维相对应。DevOps正是由此而生。DevOps所代表的致力为软件即服务各环节建立起相互的信任关系,与敏捷为软件即产品所作出的努力是一样的。敏捷教会开发如何与商业保持相同的速度及灵活性。而DevOps则尽力在教导运维与开发保持相同速度及灵活性。21世纪的成功需要从营销一路到运维,对目标、观点、语言和节奏上有统筹的定位。


Cloud和DevOps不仅仅适用于Web应用


对于那些从事监管行业的IT组织,可以不使用Cloud吗?还有那些主要运营商业软件,而非开发自己产品的IT组织,可以不采用Cloud或DevOps吗?对于这两个问题,答案当然都是可以的。


IT组织从开发到产品的各个层次上都需要灵活的基础架构。集中且共享的开发测试环境会产生大量的浪费,这些浪费来自被污染的测试数据及对资源的竞争。不论私有还是公共的云,IT组织不需要等到有了特定能力才在产品中使用。他们可以使用Vagrant和Docker等工具来改善桌面生产力及共享测试基础设施。


那些管理商业软件的组织也仍然需要协调功能和操作性。他们还是需要稳健、频繁地交付变化,哪怕这些变化包含有业务规则配置。产品支持需要理解变化的总体,包括最上端的商业规则到最底部的基础架构。与其它公司一样,这类组织也能从跨部门协作、全面的版本控制和自动化中获益。


尽管如此,事实上,数字化注入的服务经济很可能会使纯粹的商业应用支持成为过去。随着IT商业价值的不断提升,更多的公司需要在定制开发上有一定的投资,哪怕只是集成或API级别。不可分割的开发和运维实践是普遍通用的。


云计算、敏捷开发和DevOps是推动IT转变为商业适应性策略中环环相扣的几个部分。如果Cloud是个乐器,那么DevOps就是演奏该乐器的音乐家。两个一起为IT完成一重要转变:从询问“我们在崩溃前还能坚持多久?”到“我们多久可以提交一个新功能?”或“我们能多快部署一个新服务?”。


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 回顾里约奥运期间,App 的花式营销大法 晋升的为什么不是你 依赖注入(DI)和Ninject iOS基础入门(二) RSA算法原理(二)