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 可以更容易创造视觉上充满吸引力的下拉菜单。
1445 0
|
11天前
|
Kubernetes 安全 Devops
【云效流水线 Flow 测评】驾驭云海:五大场景下的云效Flow实战部署评测
云效是一款企业级持续集成和持续交付工具,提供免费、高可用的服务,集成阿里云多种服务,支持蓝绿、分批、金丝雀等发布策略。其亮点包括快速定位问题、节省维护成本、丰富的企业级特性及与团队协作的契合。基础版和高级版分别针对小型企业和大规模团队,提供不同功能和服务。此外,云效对比Jenkins在集成阿里云服务和易用性上有优势。通过实战演示了云效在ECS和K8s上的快速部署流程,以及代码质量检测和AI智能排查功能,展示了其在DevOps流程中的高效和便捷,适合不同规模的企业使用。本文撰写用时5小时,请各位看官帮忙多多支持,如有建议也请一并给出,您的建议能帮助我下一篇更加出色。
136092 13
|
15天前
|
存储 Prometheus 并行计算
10倍性能提升-SLS Prometheus 时序存储技术演进
本文将介绍近期SLS Prometheus存储引擎的技术更新,在兼容 PromQL 的基础上实现 10 倍以上的性能提升。同时技术升级带来的成本红利也将回馈给使用SLS 时序引擎的上万内外部客户。
158389 7
|
12天前
|
NoSQL API Redis
最佳实践|如何使用c++开发redis module
本文将试着总结Tair用c++开发redis module中遇到的一些问题并沉淀为最佳实践,希望对redis module的使用者和开发者带来一些帮助(部分最佳实践也适用于c和其他语言)。
76200 0
|
11天前
|
存储 SQL Apache
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
|
16天前
|
人工智能 弹性计算 算法
一文解读:阿里云AI基础设施的演进与挑战
对于如何更好地释放云上性能助力AIGC应用创新?“阿里云弹性计算为云上客户提供了ECS GPU DeepGPU增强工具包,帮助用户在云上高效地构建AI训练和AI推理基础设施,从而提高算力利用效率。”李鹏介绍到。目前,阿里云ECS DeepGPU已经帮助众多客户实现性能的大幅提升。其中,LLM微调训练场景下性能最高可提升80%,Stable Difussion推理场景下性能最高可提升60%。
|
12天前
|
存储 弹性计算 Cloud Native
1 名工程师轻松管理 20 个工作流,创业企业用 Serverless 让数据处理流程提效
为应对挑战,语势科技采用云工作流CloudFlow和函数计算FC,实现数据处理流程的高效管理与弹性伸缩,提升整体研发效能。
64683 1
|
18天前
|
消息中间件 安全 API
Apache RocketMQ ACL 2.0 全新升级
RocketMQ ACL 2.0 不管是在模型设计、可扩展性方面,还是安全性和性能方面都进行了全新的升级。旨在能够为用户提供精细化的访问控制,同时,简化权限的配置流程。欢迎大家尝试体验新版本,并应用在生产环境中。
187454 6
|
2天前
|
关系型数据库 Serverless 分布式数据库
高峰无忧,探索PolarDB PG版Serverless的弹性魅力
在数字经济时代,数据库成为企业命脉,面对爆炸式增长的数据,企业面临管理挑战。云原生和Serverless技术革新数据库领域,PolarDB PG Serverless作为阿里云的云原生数据库解决方案,融合Serverless与PostgreSQL,实现自动弹性扩展,按需计费,降低运维成本。它通过计算与存储分离技术,提供高可用性、灾备策略和简化运维。PolarDB PG Serverless智能应变业务峰值,实时监控与调整资源,确保性能稳定。通过免费体验,用户可观察其弹性性能和价格力,感受技术优势。