热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DevOps在2018年的五个趋势

刚刚过去的2017年对于DevOps来说是里程碑式的一年,各个行业都开始结合自身的业务特点,在落地DevOps这件事情上有了一些规划、探索。虽然大家对于DevOps究竟是什么依然未能

刚刚过去的2017年对于 DevOps 来说是里程碑式的一年,各个行业都开始结合自身的业务特点,在落地 DevOps 这件事情上有了一些规划、探索。虽然大家对于 DevOps 究竟是什么依然未能完全达成一致,但每个企业确实又能找到符合自身能力需求的部分。DevOps 带有很强的实践色彩,解决实际问题才是王道,既然那么多的 DevOps 工具、流程和方法无法一次性落地,那么先解决一部分问题总是好的,这也很符合 DevOps 的实践精神。

2018年,容器技术和 DevOps 这对好兄弟会联手上演一场大戏,这是业内大家都认同的趋势。但具体落地的路径究竟如何,目前都还是经验积累阶段。闻道有先后、术业有专攻,在众多的工具、流程和方法中找到一个解决所有问题的“银弹”固然是不大可能,但总结一些经验和教训,对未来做一些预测总归是有备无患。

趋势一 统一的自动化流程

DevOps 最直观的一个价值就是自动化,自动化构建、自动化测试、自动化部署等等。自动化的价值自然是很清晰的,但目前的自动化还是各种工具、各种平台、各种语言独立在走自动化之路。比如,公司里的 Java 项目和 Node 项目,由于其私服都是各自搭建的,仓库也是各个团队在维护,自然各个团队直接都是烟囱式的结构。这种结构的问题在于很多协作变得不可能,比如 Java 项目团队将仓库分为了开发库、测试库和发布库,制定了一套机制很好地实现了发布流程自动化的机制,但其他项目还是得重新去构建自己的流程和规范。

DevOps 在2018年的五个趋势

未来的趋势肯定是一个仓库包含所有的语言类型,比如 Java、Node、Python 等等开发语言,统一提供高可用、负载均衡和容灾备份等问题,那么这些仓库都适用同一套自动化规则。DevOps 一个很重要的标准就是可度量,只有在流程统一的情况下才方便去持续度量,然后发现问题从而持续改进。

趋势二 基于数据的决策

在规范了自动化的流程后,数据将会变得更有价值,而且随着时间的推移,历史数据将能提供更多的智能化决策建议。每一个数据点的背后,都带有一个基准数据作为参照系,企业可以根据自身的成熟度模型适当调整,但总体来说,数据不再只是反映当前的状态,更多地是实时与历史数据、基准数据做对比分析,动态提供建议、风险评估和预测。

DevOps 在2018年的五个趋势

如上图所示,在1月23日这段时间,与基准的运行轨迹差别很大,说明计划外的任务或者 Bug 比较多,那么意味着工作量评估存在一些问题,可能是 Buffer 设置不合理,或者是对人员的能力评估不准确等等。系统在这些异常点给出一些警示及可能的建议,那么在下一个 Sprint 开始时,对于用户的设置提出一些风险及建议。

数据变得有温度,这是数据应用的最佳实践,但这背后要有很多的数据分析能力的支撑,所以,DevOps 变得智能将是下一代 DevOps 的显著特点。

当然,数据决策最直观的方式还是可视化,在这方面 Capitalone 开源了一款 DevOps 可视化面板 -Hygieia。这款产品是支持高度自定义,且支持多种 DevOps 工具的可视化,如代码提交频率,构建情况及质量情况等等,从团队管理者提供快速的决策支持。

DevOps 在2018年的五个趋势

趋势三 加速基础设施独立性

容器的兴起对 DevOps 有不小的促进作用,这也是未来的趋势。Mesos 与 Kubernetes 争雄的时候,很多人认为 Kubernetes 只是玩具,难以担当数据中心操作系统的大任。容器编排的意义不仅仅在于管理一堆容器,更重要的目的在于将整个数据中心抽象成一台服务器。好在 Kubernetes 发展迅猛,从应用运行的角度切入,最终赢得了大家的欢心。Mesos 只是做了更长远的事情,但未能知所先后,导致发展趋缓。

目前还有很多应用是通过脚本来部署的,当然大部分都采用了 Ansible 等工具,但只是提高了时效性,部署者依然需要关注应用运行的基础设施是什么样的。容器及容器编排技术使得完全可以不关注底层基础设施,将一个应用扔到服务器的汪洋大海里,可能在物理机上运行,也可能是虚拟机,可能是 CPU,也可能是 GPU 的,更加不用关心是什么样的操作系统。大有“只在此山中,云深不知处”的意味。

DevOps 在2018年的五个趋势

从最近流行的 Service Mesh 更加佐证了这一观点,应用和基础设施的剥离是大势所趋,只不过是一个循序渐进的过程。所以,Devops 和容器技术是互为因利乘便的关系,容器是未来应用运行的标准形式,DevOps 也将加速这个潮流。但这并不否认传统非容器应用的价值,但也一定是朝着与基础设施无关的方向发展。

趋势四 更丰富的灰度场景

如果前三个方面趋势成为现实,那么应用发布的速率将会呈指数上升,发布日将不再存在,随时随地上线,滚动升级将成为现实,然而大规模、复杂系统的上线靠什么来保证质量呢? 最近比较流行的混沌工程可能是这方面的一个探索,通过引入一些扰动因素来逐步完善灰度的策略,这个过程就是一个持续学习、持续优化的过程,同样,历史数据起着至关重要的作用,大量的算法和机器学习开始登场了。

DevOps 在2018年的五个趋势

Netflix 公司的开源项目 Chaosmonkey 已经有这样的趋势,通过随机地关停虚拟机或者容器去看系统如何做出反应。目前来看,Kubernetes 的应用迁移、弹性扩容、副本集等特性具有很大优势。但单纯从应用层面处理肯定不够,还有一个很重要的层面需要关注,那就是应用的模板-镜像(或者二进制包),未来的复杂场景肯定是多地域的,那么数据中心之间的快速自动分发,仓库高可用、容灾备份等也是确保整个灰度系统正常运转的关键要素。

趋势五 需要更多企业级特性

正如第四点所述,更复杂的灰度场景,需要更多底层的支持。目前一时间还难以实现应用全部容器化,但多种语言、仓库的高可用、容灾和分发是必须满足的场景。既然应用可以在多个数据中心任意迁移,那么应用的"母体"也必须可以同步迁移,否则混沌工程必然发生混乱。

DevOps 在2018年的五个趋势

从目前的工具来看,很少可以达到这种要求,JFrog Artifactory 具有这种全球分发的案例,在2017年 AWS 技术峰会上,HERE Technology 分享了他们的案例,通过这种方式支撑了百万级别工件量级的分发,每天在系统里流转的数据超过 10TB,从市场上的情况来看,他们已经走在了前列。


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
author-avatar
王先生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有