这些技巧帮助您更加高效、灵活的使用DevOps——比如使用Docker、自动化和Serverless(无服务器计算)。
无论您是否已经在开发中应用了DevOps,还是仅仅考虑了这样一个机会,您都应该了解这个领域的最新趋势,以便做出正确的决策。当有更先进的技术可用时,没有理由使用过时的技术,这就是为什么我们决定讨论DevOps行业的最新趋势。
除了趋势之外,我们还将说明DevOps在进行中会遇到的一些“坑”,对于那些想要采用这种方法的公司,他们因为哪些“坑”失败了。
DevOps 趋势将于2018年得到关注
无论如何,实现DevOps是一个好想法。然而,去年使用的工具和技术现在可能已经过时了。这也就是为什么我们建议您深入研究DevOps趋势,这有助于增强软件开发过程。
#1. Docker的使用
在容器化过程中,没有比Docker更有效的工具了。这就是为什么DevOps喜欢用到它。Docker有助促进应用的开发阶段和配置管理。Docker的另一个优点是它会更新完善自己,最近的一次更新为这个工具带来了本地Kubernetes的支持。这意味着现在您可以使用与云无关的容器,并停止在不同的PaaS系统上花费时间和金钱来使用它们的基础设施和环境。
#2. 自我维护的过程
Kubernetes的开源项目可以使用户做到在几秒钟内从容器中恢复所有数据。换句话说,用户完全可以做到,一旦发生任何故障,轻松恢复他们的所有信息。更重要的是,系统会发送一份关于这个问题的报告给你,以便用户日后避免这个问题。
#3. 自动化(运维)
自动化运维可能是DevOps方法的核心点,这个趋势特点永远不会跟DevOps失去相关性。自动化过程令您摆脱手工测试。这种类型的测试不仅耗时,而且“消耗”大量资源。当然,有很多的QA工程师为人工测试辩论,他们说自动化单元测试是一个令人厌烦和让人望而却步的过程。尽管如此,自动化运维是唯一适合长期前景的选择,因为它节省了大量时间。尤其是考虑到您可以多次使用测试单元。
#4. 敏捷(Agile)
现在,敏捷软件开发是最流行的方法之一。与此同时,很难找到一个以初始形式使用它的团队。然而,DevOps打算改变这一点,让我们回到初始形式。问题是DevOps只能在足够灵活的环境中才能成功使用。所以你最好再读一遍敏捷软件开发条例,以防忘了真正的敏捷方法是什么意思。
#5. 度量DevOps的效果
这是非常重要的一点,因为仅仅实现DevOps是不够的,您必须了解DevOps实现的影响。是使运维变得更好,更糟糕还是停滞不前?换句话说,这与效率以及如何跟踪效率有关。使用DevOps方法的公司通常使用各种工具来评估DevOps对其团队的影响。
#6. 无服务器架构计算
实现无服务器架构的系统不是梦想,它是可以通过使用DevOps的正确解决方案实现的。在这项技术的帮助下,用户无需在基础设施花费任何费用,使您能够专注于开发过程本身。这种计算模式逐渐成为新兴行业领域的基础——服务即功能。
#7. 大数据
DevOps在软件开发过程中的应用产生了大量需要处理的数据。机器学习是处理这个过程最有效的方法。尽管这种数据分析方法会导致额外的开销,但它可以成为一种强大的工具,帮助您度量DevOps方法的优缺点。
#8. 使用先进技术
市场上充斥着各种DevOps工具和插件。而且,每天都有新的出现。如果你想在这个竞争激烈的市场上保持最新的状态,你必须分析所有这些解决方案,衡量其性能,并在需要的时候使用它们。
不知道从哪里开始?从下面你可以看到一些你应该关注的功能,以确保你的方法是正确的:
•软件开发阶段环境;
•协作编码支持;
•基础设施作为代码支持;
•持续集成;
•自动化测试与部署;
•问题跟踪功能。
利用DevOps做好准备
现在,你已经意识到了市场的最大趋势,这意味着是时候考虑采取进一步措施。 下面是你应该准备好的主要步骤。
基础设施即代码
如果你不明白上述短语的意思,花点时间想想,因为这是DevOps方法的关键。基础设施即代码是指,你应该像对待应用程序和其他代码那样对待你的操作环境。简单地说,别花时间在手动更改配置和调整上,也别花时间在管理代码开发上。
测试人员要会编码
在贵公司工作的每个质量保证(QA)工程师应该能够编写代码来执行自动测试,以及自动化部署,这也是DevOps方法的基础。这样,如果你的QA工程师只能手工测试,你应该考虑一些方法来提高他们的技能或者雇佣新的人才。
不再需要PaaS
这些过时的系统会减慢你的进程。您需要向具有容器结构的平台移动。通过这步,你将在进一步发展方面更加灵活。
如果您已经转移到使用容器,您可以进行试验,以便从使用中获益更多。考虑如何在生产中使用它们。
学会见微知著
把整个生态系统看作一个单一的有机体。请记住,有些问题在代码的帮助下是无法解决的。因此,您应该考虑所有的特性(例如数据库、硬件等)。
使用DevOps会失败的原因
毫无疑问,DevOps方法非常适合软件开发。然而,许多公司在实施这一计划时都失败了。让我们来看看几个常见的错误以及如何避免它们。
看重速度,欲速不达
DevOps软件工程实践可以最好地改变业务流程。我们知道这对公司和开发人员都有好处,所以您可能希望尽快实现它。但是,通过设定非常严格的期限,并告诉你的团队,从明天开始公司将遵循DevOps原则,这不会对你们有利。
你需要做一个计划。首先,评估您和您的团队在DevOps方法中的专业水平。然后,回答这些问题:
•您和您的团队准备使用DevOps工具吗?
•您和您的团队准备采用自动化测试?
如果你还没有准备好,那么雇佣一个远程或者内部的DevOps工程师也许是个好想法。
忽视质量问题
现在,大多数开发团队都非常关注他们所开发的产品的交付速度。毫无疑问,开发速度是非常重要的,但最终产品的质量也同样重要。DevOps方法的使用意味着快速的开发过程以及高质量的最终产品。如果您决定采用这种方法,您应该使用最好的技术和工具。这样,您就可以交付高质量的产品并快速开发它们。
以错误的方式运行测试
这个技巧可以帮助您缩短开发时间。一些DevOps专家认为测试应该异步运行,他们认为这是一种更有效的测试方式。这并不完全正确。运行测试的顺序只影响时间。因此,如果您自动运维且同步执行测试-那么您的方向就是正确的。
没有看到终极目标
没有明确的目标就很难找到正确的道路。DevOps与敏捷(Agile)有许多共同之处。例如,如果每个团队成员的主要目的不明确,项目可能会失败。你的主要目标是确保他们每个人都能清楚地看到设定的目标。
有时,转向DevOps方法需要在管理方面采用新技术。除此之外,你还应该不断地改进你的生产系统,并摆脱公司部门之间的障碍。
当然,执行DevOps可能是困难的,需要大量的资源,包括财政资源。然而,它会让你的公司更强大。如果您不确定如何重新构建公司的工作流程-聘请内部或远程DevOps工程师。这将为您节省大量时间并防止金钱浪费。
译者介绍:刘劲辉 优维科技高级解决方案架构师 曾就职于阿里巴巴移动事业群,具有多年的业务运维和运维研发经验。曾负责开发建设基于阿里游戏中心 JWS 框架的自动化运维平台,对 DevOps 实践落地有丰富经验。