OpsDev的时代来了!

本文涉及的产品
云拨测,每月3000次拨测额度
简介: 本文讲的是OpsDev的时代来了!【编者的话】OpsDev指的是在进行开发之前必须理解和模型化应用程序不同组件的依赖。
本文讲的是OpsDev的时代来了!【编者的话】OpsDev指的是在进行开发之前必须理解和模型化应用程序不同组件的依赖。

最近在旧金山举办的WWDC(苹果全球开发者大会)大会上,开发者、终端用户、投资者、分析师以及竞争者全都渴望知道苹果公司(Apple)是如何保持其在手机市场领导地位以及市场份额。大会并没有发布什么令人兴奋的产品,而实际上苹果公司的股票价格有所下降。然而在不同的会议上多次提到了一个共同的主题:用户体验。

苹果公司不断地调整所有的产品和App,从而让一个拥有多款苹果产品的用户从一个产品或App切换到另一个时能够具有相似的体验,降低了用户使用新产品的门槛。苹果公司注重的是用户体验而不是产品的某些功能或者某些说明。苹果公司善于对用户体验进行思考,当他们的竞争者们通过宣传摄像头的高像素以及新款智能手机处理器有多强大来吸引顾客时,他们给用户展示的是通过iPhone拍的漂亮且富有灵感的照片而不是手机的任何技术细节。

我们都知道现在大多数人已经离不开智能手机,很多以前需要花很多时间才能完成的事情现在很快就能够完成,因为拿出手机点几下就能够获取大量信息。比如说,在拥有智能手机之前,想要在一个陌生的城镇找到一个吃饭的好地方,过去我会想想身边有谁来过这个地方,然后看下他有什么推荐。如果谁都没来过,到酒店的时候我就会问问那里的服务员。这就意味着即使我特别饿了,我必须先到酒店才能吃上饭。我还必须在离开机场之前通过谷歌地图查好去酒店的路线,然后才能坐上飞机到酒店。但是今天,我只要拿出我的iPhone打开Yelp,我就能找到我想去的餐馆。然后我可以通过Waze找到去餐馆的路线,更方便的是Waze还会推荐绕道路线,因为通常最近的路线最拥堵。然后我可以用OpenTable在去餐馆的路上预订一个座位。

如今,苹果公司考虑的是如何让我们的生活过的更加效率。通过上面的描述可以得知,为了在陌生的城镇找到一个吃饭的好地方,我需要打开很多不同的App来完成一系列的事情,苹果公司设想有一天我只要通过他们提供的服务就能够完成相同的事情,而不需要打开那么多App。这种憧憬需要一个新的产品或者服务设计模型,任何一家想要加入苹果服务以提供个性化用户体验的公司必须考虑OpsDev而不是DevOps。接下来我会解释为什么。

进入OpsDev时代

设想我们在为一个机械公司设计一款智能冰箱,用户体验大致是这样:

当你打开车门坐上车时,智能冰箱通过你的手机通知你去超市买些东西回来。它会给你三个选择,第一个超市离你最近,但是没有你最喜欢的冰欺凌;第二个超市需要多开10分钟的车程,但你能够买到你购物清单上的所有东西,并且都是你最喜欢的牌子;最后一个超市需要多开15分钟,除了有你想要的所有东西之外,还会送你一些优惠卷,这样能够让你省下12美元。一旦你选择了想去的超市,你车上的多媒体系统会给你提示最佳路线。

企业想要提供上述完整的用户个性化体验,就需要将要用的数据和服务整合在一起,包括智能冰箱提供的食品清单、连锁超市的库存数据、食品公司和连锁超市的优惠卷信息、交通和地理位置信息。这些数据存放在不同的数据中心,由不同的提供者提供。为了获取这些数据,你需要使用不同的证书、不同的处理流程以及不同的API。这种个性化服务的设计者们必须了解不同数据来源和服务的SLA(service level agreement,服务等级协议),因为如果综合服务不能及时获取到正确的信息就会影响用户体验。作为零售商,你肯定不希望终端用户多开了15分钟车程却发现他们想要的商品已经卖完了,而且因为优惠卷不能用或者需要买些替代品,比预期多花了20美元。

正如你所看到的,想要交付这种个性化软件服务就必须转变传统的设计模型。DevOps趋向于从开发者主导的挑战开始(例如:代码评审、代码标准、构建管理和持续集成),最后当应用程序上线于生产环境时运维人员才会参与进来。OpsDev正好相反,只有当我们理解了不同数据来源的相互依赖性和可用性时,我们才能设计组件并将各组件连接在一起。此外,智能冰箱软件会不断更新,使用新的传感器提供不同种类的数据。个性化服务软件必须持续获取新型数据来提供不同的个性化服务,软件的更新频率取决于所依赖的其他服务。因此,设计者必须开发一套自动化系统,用于获取依赖服务更新提示并立即分析这些更新会影响服务的哪些组件,以及决定何时更新个性化服务来同步依赖服务。

OpsDev是什么?

OpsDev指的是在应用程序正式开发之前,必须首先理解和模型化不同组件的依赖。此外,还必须事先重点考虑基础服务稳定性、环境建模、安全性和审计/合规措施。应用程序组件是存根的,他们不必处于最终形式。其次,对生产中部署组件的环境必须进行建模。再者,不同组件部署到目标环境的流程必须尽可能自动化。通过上述方式,设计和开发团队可以在开发和测试阶段以一致的方式复制应用程序和环境模型以及自动化部署过程。在开发和测试阶段,通过简单地复制生产环境及部署过程,设计、开发和测试团队可以尽早知道生产环境的限制和参数,这样他们在开发应用程序时可以充分考虑这些约束和参数。而使用传统的模型,大量的时间将浪费在排除由质量保证部门在模拟环境(译者注:Staging,在正式进入生产环境前模拟生产环境的阶段)或生产环境找到的问题。很多时候部署会被取消,因为环境因素略有不同,验证通过的应用程序将无法部署到生产环境中。

此外,借助OpsDev可以使用版本发行管道工具在开发、测试、模拟和生产环境编排应用程序的部署,这样不仅能够通过自动化和并行化加快不同环境的整体部署流程,还能够减少易出错的手动任务从而提高整体质量。版本发行管道工具由多种提交管道(commit pipeline)组成,一个提交管道是一个独立的应用程序管道,用于编排持续集成和持续测试。一个发行版可能包括多个由不同工程团队开发的应用程序,每一个工程团队可以拥有他们自己的提交管道。将不同团队的不同应用程序提交管道集成在一起就构成了一个版本发行管道工具。版本发行管道工具知道应用程序的相互依赖性并且能够将应用程序整理到模拟和生产环境中。版本发行管道工具使用手动和自动两种批准方式确保发行版已被批准以及确保部署流程的正确性。

使用OpsDev,版本发布管道工具能够集成ITSM(Information Technology Service Management,IT服务管理)和APM(application performance monitoring,应用性能监控)解决方案。版本发布管道工具通过往ITSM服务台发送一份即将部署应用程序的电子清单来寻求批准,并且开启一个变更请求。IT服务主管在ITSM服务页面上就会看到即将部署应用程序的通知,然后进行评审以及相应的批准流程。当IT服务主管审核通过后,ITSM就会发送信号给版本发行管道工具让其进行部署。部署成功后,版本发布管道工具会通过更新变更请求状态告知ITSM应用程序已经成功部署。

版本发布管道工具也可以集成APM解决方案,版本发布管道工具将应用程序部署在模拟环境中,然后通知APM监控性能和负载测试。APM会报告应用程序是否到达SLA,如果是,应用程序可以继续部署到生产环境。否则,版本发布管道工具就会终止部署,并且报警说应用程序未到达目标SLA。在生产环境中,APM能够监控事物、性能和负载。当到达一定的阀值时,APM就会通知版本发布管道工具在数据中心部署更多的应用程序来增加服务能力。当收到APM的请求时,版本发布管道工具会往ITSM上创建一个变更请求,当ITSM批准后,它就会部署更多的应用程序来提供更多的服务能力。当服务能力过盛时,APM就会通知版本发布管道工具关闭一些服务,将资源留给其他服务使用。

正如大家所了解,IoT以及基于手机应用用户体验的不断扩张,企业不能再使用传统的开发模式开发产品,因为SaaS服务和应用程序组件(设备软件、数据中心软件、手机应用和Web应用)相互依赖性的增强组成了单一且密切相关的用户体验。苹果公司,通过鼓励开发者首先考虑用户体验以及提供完整的苹果个性化服务这种变革使我们的生活变得更加效率,这也将加快DevOps到OpsDev思想的转变。

原文链接:OpsDev Is Coming(翻译:肖远昊)

原文发布时间为:2016-08-28

本文作者:肖远昊

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:OpsDev的时代来了!

相关文章
|
JavaScript 数据可视化 Serverless
nodejs 如何实现自动化部署?
什么是自动化部署 我接触到的自动化部署概念最早是在 Vercel 上提供的,Vercel 可以提供和 github 上的某个库建立‘链接’,当你 commit 到 github 远程库时就可以自动部署,Vercel 会帮你完成操作
|
移动开发 前端开发 JavaScript
推荐10个 CSS3 制作的创意下拉菜单效果
  下拉菜单是一个很常见的效果,在网站设计中被广泛使用。通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案。使用 HTML5 和 CSS3 可以更容易创造视觉上充满吸引力的下拉菜单。
1441 0
|
8天前
|
数据采集 存储 运维
提升团队工程交付能力,从“看见”工程活动和研发模式开始
本文从统一工程交付的概念模型开始,介绍了如何将应用交付的模式显式地定义出来,并通过工具平台落地。
119867 4
|
10天前
|
弹性计算 运维 安全
访问控制(RAM)|云上程序使用临时凭证的最佳实践
STS临时访问凭证是阿里云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时身份凭证,减少长期访问密钥(AccessKey)泄露的风险。本文将为您介绍产品原理,以及具体的使用步骤。
150968 3
|
9天前
|
监控 负载均衡 Java
深入探究Java微服务架构:Spring Cloud概论
**摘要:** 本文深入探讨了Java微服务架构中的Spring Cloud,解释了微服务架构如何解决传统单体架构的局限性,如松耦合、独立部署、可伸缩性和容错性。Spring Cloud作为一个基于Spring Boot的开源框架,提供了服务注册与发现、负载均衡、断路器、配置中心、API网关等组件,简化了微服务的开发、部署和管理。文章详细介绍了Spring Cloud的核心模块,如Eureka、Ribbon、Hystrix、Config、Zuul和Sleuth,并通过一个电商微服务系统的实战案例展示了如何使用Spring Cloud构建微服务应用。
103478 8
|
10天前
|
人工智能 Serverless 对象存储
让你的文档从静态展示到一键部署可操作验证
通过函数计算的能力让阿里云的文档从静态展示升级为动态可操作验证,用户在文档中单击一键部署可快速完成代码的部署及测试。这一改变已在函数计算的活动沙龙中得到用户的认可。
120244 159
|
9天前
|
SQL 存储 数据可视化
Ganos H3地理网格能力解析与最佳实践
本文介绍了Ganos H3的相关功能,帮助读者快速了解Ganos地理网格的重要特性与应用实践。H3是Uber研发的一种覆盖全球表面的二维地理网格,采用了一种全球统一的、多层次的六边形网格体系来表示地球表面,这种地理网格技术在诸多业务场景中得到广泛应用。Ganos不仅提供了H3网格的全套功能,还支持与其它Ganos时空数据类型进行跨模联合分析,极大程度提升了客户对于时空数据的挖掘分析能力。
|
9天前
|
存储 缓存 安全
深度解析JVM世界:JVM内存结构
深度解析JVM世界:JVM内存结构
|
16天前
|
人工智能 编解码 对象存储
一键生成视频!用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流
本教程将带领大家免费领取阿里云PAI-EAS的免费试用资源,并且带领大家在 ComfyUI 环境下使用 SVD的模型,根据任何图片生成一个小短视频。
|
14天前
|
数据采集 运维 监控
DataphinV4.0来啦:自定义全局角色 ,实时研发覆盖全部署场景,个性化企业配置看本期
本次V4.0版本升级,Dataphin支持自定义全局角色、自定义逻辑表命名规范、Flink on K8s的部署模式,提升企业级适配能力,灵活匹配企业特色;将集成任务快速从组件模式切换为脚本模式、支持外部触发类型节点等,提升研发平台易用性,助力高效开发便捷运维。
90950 1