以下是2020年在DevOps中您可以期待的内容。Netscape的创始人马克•安德森(Marc Andreessen)很久以前就说过,软件正在吞噬整个世界。他还表示,如今每家公司都是软件公司,软件公司已经准备好占领经济的大部分领域。
到2020年,您将清楚地看到DevOps中持续的更新将改变软件交付到几乎无限市场的方式。DevOps已经成为在这个竞争激烈的技术世界中繁荣发展的必需品。
DevOps简介
虽然企业对DevOps有不同的理解,但我们可以将DevOps定义为团队采用的一种思维方式,以使其工程势头调整到新的高度。DevOps主要的目的是关于消除工程上的障碍,比如思想和执行之间的文化障碍,从而使软件的发布过程更好、更快、更便宜、更安全。
无论您怎么称呼它,它都应该归结为自动化,这反过来应该有助于公司快速发展、快速上市、快速失败、快速恢复和快速学习。
从SDLC模型到今天,情况已经发生了巨大的变化。在2009年,DevOps被创造出来,它提倡文化转型和一些将所有内容都视为代码的技术原则。之后出现了像CI/CD这样的原则,但是,该软件曾经是作为一个大的整体来编写的,这带来了许多挑战。
因此,在2011年,引入了微服务体系结构,这种微服务体系结构提倡细粒度和松散耦合的组件,并承担特定的任务。
按照这种松散耦合的基于微服务的体系结构编写的应用程序被称为“云原生”。这些公司正在根据他们的业务需求和目标,从vm过渡到Kubernetes,再过渡到无服务器。
根据Kelly Shortridge和Nicole Forsgren博士在《2019年美国黑帽》杂志上发表的一张幻灯片,当你与DevOps行业的精英进行基准测试时,四个因素是很重要的。
- 变更准备时间
- 发布频率
- 恢复时间
- 变更失败率
DevOps性能指标
在本文中,我们将了解DevOps的未来。
1.云原生将成为必要
迪亚曼蒂对500多名IT领导者的调查表明,无论以何种标准衡量,容器技术都已经发展得远远超出了这一范畴,并在一年之内显著成熟,从开发人员试验转向生产。云原生技术将上升到新的高度,尤其是Kubernetes的采用。云原生技术为企业提供了更高的优势,可以更快地推向市场
为什么选择云原生?
采用云原生实践意味着更好的创新、更先进的转换和更丰富的客户体验。正如我在另一篇文章“cloud-native DevOps”中所描述的,cloud-native从根本上促进了云自动化,即自动管理云计算服务的安装、配置和监督。它是在正确的时间使用技术为云计算资源做出更可靠的业务决策。
根据甲骨文公司对云计算未来的预测,预计到2025年,80%的it企业将转向云计算。CNCF的调查结果显示,在生产中使用云本地技术的增长超过200%。
去年,服务提供商云计算基金会的开源平台执行董事Abby Kearns在2018年的LinuxCon ContainerCon CloudOpen China(简称LC3)大会上发表了一篇主旨演讲,对云原生平台进行了更深入的阐述。
“云原生技术和云原生应用正在增长,”卡恩斯说。在未来18个月里,组织编写和使用云原生应用程序的组织数量将会增加100%,”她补充道。这意味着您不能再仅仅投资于IT,还需要投资云技术。(引用Abby Kearns的主题演讲“塑造云原生的未来”)
美国空军是她在她的演讲中提到的最好的例子之一,她在演讲中谈到了美国空军已经变得多么敏捷,并使用了前沿技术和云计算的固有原则。美国空军已经实施了敏捷实践,现在正在利用云技术开发应用程序,以在多个云上运行。
2.容器注册服务呈现上升趋势
这一点本来可以包含在云原生部分本身中。尽管如此,我认为这仍然需要特别注意,因为现在大多数软件公司都沉迷于容器注册表,它帮助开发人员存储和管理工件和所有依赖项,以实现软件开发生命周期平稳进行。
就像在版本控制的存储库(如Git)中管理应用程序源代码一样,管理Docker映像也是非常重要的。Docker还提供了类似的管理Docker映像的功能,这些映像可以在您的开发机器上本地管理,甚至可以在远程容器注册表(也称为Docker hub)上管理。
但是,有时这些映像容易出现许多与安全相关的问题,并且很容易被黑客访问。因此,现代企业需要一种安全可靠的方法来通过注册表、容器注册表管理和维护它们的容器映像。
当涉及到处理容器化应用程序和微服务体系结构的DevOps团队时,容器注册表已经成为必备的条件。随着Docker和云原生应用的日益普及,容器映像管理成为现代软件开发的重要组成部分。容器注册表只是存储库的集合,这些存储库主要用于存储容器映像。
在最近一次圣地亚哥的KubeCon会议上,JFrog宣布了它自己的容器注册表。基于Artifactory的强大功能,JFrog容器注册表是市场上最可靠的免费容器注册表。它是可扩展的、混合的,带有Artifactory的良好用户界面,并由Artifactory提供支持。
当今市场上其他著名的容器注册中心包括:
- Amazon Elastic Container Registry (ECR)
- Dockerhub
- JFrog Container Registry
- Azure Container Registry
- Google Container Registry
容器注册表应该具有完全混合的特性,包括Docker注册表、Helm注册表、通用存储库、远程存储库、虚拟存储库和丰富的元数据。
哪里需要容器注册表?
容器注册表有几个必要的原因。
1.随着云原生方法的增加,我们看到使用Kubernetes,Docker,Artifactory,Helm和Istio等工具在企业级进行了快速的数字化转型。全世界都在快速地向容器注册技术过渡,这就是容器应用程序快速、安全地交付的未来。
2.混合动力汽车的竞争正在升温。大多数云提供商都为他们的服务提供免费的注册层,因为他们知道它的重要性。
3.Docker容器往往会占用大量的存储空间,并且经常被移动。这意味着存储成本很高,有时,安全性可能会成为一个问题。因此,我们看到一些公司除了Docker之外,其他任何事情都使用Artifactory,并使用其他免费工具来管理它们的容器。很高兴看到JFrog现在有了自己的容器注册表:)
4.注册中心可以充当远程和虚拟容器存储库,其中具有丰富的元数据,这些元数据是DevOps中必须考虑的因素。
5.获得关于工件的宝贵的见解。
3.Golang和DevOps将共同发展
Golang作为一种编程语言将对DevOps社区将产生更大的影响,当然它现在已经在产生影响了。大多数DevOps工具如Kubernetes、Helm、Docker、etcd、Istio等都是用Go编写的。Kubernetes的创始人Joe Beda写了为什么Kubernetes是用Go写的。
Golang非常适合在您不能或不想安装依赖项的环境中工作,因为它会编译成独立的二进制文件。无需设置整个环境,您就可以比其他编程语言更快地完成工作。
在最近于伦敦和圣地亚哥举行的GopherCon大会上,JFrog对一千多名开发者进行了调查,以更好地了解Go社区和对Go模块的总体看法。
他们发现了什么?
- Go开发人员非常投入
- 超过82%的Go开发人员使用能够使用Go模块的Go版本,而现在使用这些模块的人数与预计到2020年中期使用的人数几乎相同。
- Go模块的使用率很高
- GoLang被广泛应用于各个行业
- 选择Go模块很难
4.安全将成为更重要的优先事项
在开发生命周期中,安全性比以往任何时候都更加重要。安全成为每个人的责任,而不仅仅是安全专家的责任。
全球DevSecOps市场
DevSecOps这个词看起来只是另一个流行词,但其实它需要给予安全性更多的重视。DevSecOps在组织内创建安全意识和共享知识库,以加强软件开发过程中的安全性。今年早些时候,Capital One的数据泄露使云安全成为一个令人担忧的因素,因此,人们关注的焦点是保护公共云中的数据。
三星Note 7的灾难在很大程度上解释了为什么安全在开发过程的开始和开发生命周期的每个阶段都如此重要。专家推测,Note 7手机的一个问题涉及电池管理系统。该系统监控电流并在电池充满时停止充电过程。该系统的一个故障导致电池过度充电变得不稳定,并最终爆炸。
这一漏洞修复花费了三星近170亿美元。如果公司能早点发现这个问题,他们就能省下一大笔钱,还能挽回品牌声誉。
要发展策略方法,使安全性成为组织内的一项必须,以下是一些需要考虑的要点:
- 从小处着手,在开发生命周期的每个阶段都有安全检查点。
- 对于开发人员,将安全性作为其工作的一部分,并将其作为性能评估的一部分。
- 开发和运营团队需要将安全性视为质量。
- 不要将DevOps和安全性分开;彻底地将它们联合起来,使之成为您的工程团队的座右铭。
许多公司将采用混沌工程原理来检查系统的稳定性和可靠性,并了解安全问题的严重程度。故意破坏系统可以帮助你找到更大的漏洞&将确保黑客不会发现任何漏洞。这也将帮助组织在客户发现bug之前找到它们。目标是让您的系统比以往任何时候都更强大。
5.开源将超越边界
开源给开发人员带来的好处和灵活性使它越来越受到重视。开放源码正在发展中,Synopsys最近的一项调查发现,几乎70%的企业组织正在为开放源代码项目做出贡献或拥有开源项目。
为什么开源?
开源软件对开发人员个人来说是提高技能的好方法。开放源码为开发人员提供了一个途径:
- 学习解决问题的新技术和有效方法。
- 协作并获得在项目中一起工作的经验。
- 对开源软件做出贡献会产生一种归属感;它会让你成为某个大项目的一部分,成为一个有着相同目标和心态的社区的一部分。
在最近的开放源代码印度2019年会议上,我们调查了近300名开放源代码专业人士,当我们问他们喜欢开放源代码软件的原因时,他们的回答如下,定制是大多数人喜欢开源软件的一个事实。
CB Insights最近的一项研究显示,预计开源服务行业在2019年将超过170亿美元,到2022年有望达到近330亿美元。
像微软、谷歌、英特尔和Facebook这样的大公司都不是开源公司,他们都在积极地为GitHub上的各种项目做贡献。2018年,谷歌员工集体贡献5500笔,其中的许多这样的贡献都帮助了小型的、独立的项目。
许多人支持谷歌的开源软件项目,如Kubernetes、Istio和Knative,这些项目需求量很大。随着企业资助的项目变得越来越受欢迎,独立开发人员将继续做出贡献。这表明这些巨头应该站出来帮助开源社区成长。
例如,微软的Visual Studio Code项目总共有19,000多个贡献者。有了成千上万的开发者的贡献,这些科技巨头受益于免费的开发者输入和直接的用户反馈。这使得组织可以更快地构建更好的软件,开源技术无疑已经成为主流并拥有光明的未来。
Cloud Native Foundation的生态系统主管Cheryl Hung最近在欧洲Linux基金会开源峰会上的演讲中明确表示,大公司现在正在开发开源项目。尤其是Kubernetes,它创造了一个庞大的社区。
6.无服务器仍然是一种趋势,但有一个光明的未来
以毫秒为单位进行部署是未来的趋势,许多公司已经充分利用了无服务器架构。无服务器市场预计到2021年将达到77亿美元。根据RightScale的2018年云状态报告,serverless是目前增长最快的云服务模式,年增长率为75%,预计到2020年将超过预期。
当前的无服务器计算选项包括:
- AWSλ
- 微软Azure
- 谷歌云平台
- IBM Bluemix / OpenWhisk
为什么开发人员更喜欢无服务器:
- 开发人员的生产力
- 更快的部署
- 增强可扩展性
- 良好的用户体验
- 更低的成本和基础设施
2017年5月,微软首席执行官萨蒂亚·纳德拉(Satya Nadella)承认了无服务器的潜力及其改变云计算机制的能力。
他表示,“但是我认为将彻底改变我们的逻辑的看法的一件事是无服务器。因此,serverless计算将不仅从根本上改变了后端计算的经济性,而且将成为未来分布式计算的核心。”
Lego的无服务器之旅
将向你展示,你的旅程可以从一小步开始,最终取得巨大的成功。黑色星期五/网络星期一的灾难使他们转向无服务器。Lego有一个包括Oracle ATG的旧系统,其中8台服务器与同一个数据库进行通信,而SAP则在后端支持TAX系统。
有了以上的旧系统,他们为一年一度的黑色星期五/网络星期一活动进行了现场直播,而系统无法控制夜间垂直峰值,这变成了一场灾难,。结果,发生了一系列事件,首先是税收系统崩溃,导致SAP系统崩溃,结果整个Lego电子商务平台宕机2个小时,这使他们蒙受了相当大的损失。
这个事件让他们想到了无服务器。为什么?
灾难过后,Lego团队决定迁移到云上,有一个简单的API,把Lambda放在后面,然后直接使用它。这是Lego转向无服务器的第一步。这使得他们也转向了微服务架构,甚至DevOps和自动化。
Lego团队从单个Lambda开始计算营业税,现在它使用Lambda。
7.数字转型将为他人树立榜样
我们将看到许多组织走出他们的舒适区并尝试新技术,甚至像医疗保健、金融机构、政府部门等传统部门也将看到通过拥抱云原生和DevOps实践的数字转型带来的全面大幅改善。让我们看看最近一些有趣的案例研究。
看看快递服务公司联邦快递(FedEx)是如何实现数字化转型的吧。联邦快递没有足够的IT专业人员来使用现代云计算和DevOps流程,但它并没有就此止步。联邦快递深知其工程师人才库中技能不足的问题,因此CIO Rob Carte找到了一个解决方案。联邦快递成为了一所大学,开始教授自己的工程师先进的计算技能和现代的软件开发方式。
为此,创建了团队,并将其命名为“The Cloud Dojo”。Dojo包含一个跨职能的团队,由云开发专家、安全专家和操作专家组成,并位于一个位置。目标是培训团队将传统的工程与现代的云实践相结合——DevOps、云原生、重写旧应用程序以在云中运行,以及自动化相结合。这个称为Cloud Dojo的本土团队已经重新培训了2,500多名软件程序员。
迄今为止,联邦快递已经为云计算重写了200多个生产应用程序,其中有300多个应用程序可供使用。联邦快递的云Dojo团队获得了2019年CIO 100 IT卓越奖。
Box的数字转型之旅
几年前,Box花了六个月的时间建立了一个新的微服务。到了今天,只需要几天时间。他们是怎样设法加快速度的?两个关键因素使之成为可能:
Kubernetes技术
DevOps实践
Box成立于2005年,是一个独立的PHP应用程序,随着时间的推移,它已经增长到数百万行代码。他们应用程序的整体特性导致他们基本上构建了非常紧密耦合的设计,而这种紧密耦合正朝着他们的方向发展。这导致他们无法像自己想要的那样快速创新。他们的应用程序的一部分的错误将要求他们回滚整个应用程序。
如此多的工程师使用数百万行代码在相同的代码基础上工作,bug并不少见。要按时发布特性甚至修复bug变得越来越困难。因此,他们寻找解决方案,并决定采用微服务方法。但之后他们开始面临另一组问题,那就是Kubernetes出现的地方。
8.多云将蓬勃发展到新的高度
多云技术将蓬勃发展。大多数企业都有混合云战略。许多应用程序被编写为在prem和off-prem上运行,并且可能在多个公共云环境上运行。谷歌的云服务平台Anthos是一个不错的验证,它证明了对于软件公司来说,多云将变得过于灵活和划算。
Azure和AWS是这个领域的领导者,它们将主宰多云的未来。
根据最近的RightScale 2019年国家云报告,可以看到84%的企业有一个多云战略。
多云与当今日益增长的市场趋势高度相关。根据国际数据公司(IDC)最近一项名为“云汇在多云世界中加速发展”(Cloud in a Multicloud World)的调查,多云最好地描述了当今的云现实。
多重云部署
多重云部署虽然有很多关于云成本优化和厂商锁定的讨论,但多云解决了一些关键问题,这是公司用来避免厂商锁定、成本优化、安全性、数据主权、最小化停机时间等的模型。
拥抱DevOps只是一个开始,还有很长的路要走。公司的数量与日俱增,对云的依赖使得DevOps市场成为一个大市场。联合市场研究公司(Allied Market Research)估计,到2023年,DevOps全球市场的年复合增长率将达到18.7%,达到94亿美元。DevOps将开发和操作结合在一起,并给予团队更高的信心和自由度来以更高的速度和质量交付产品。
DevOps尚未完成增长;它的发展日新月异,前景广阔。我们都知道,根据Forrester的数据,2018年是企业DevOps年。实施DevOps实践的企业从失败中恢复的速度快了24倍,并且花在安全问题上的时间少了50%,DevOps被证明可以产生更快乐、更投入的团队。
我希望这些DevOps趋势能让您了解市场的发展方向,以及您如何为更加敏捷和快速发布做好准备。