什么是DevOps,以及如何使用Microsoft在组织中实施DevOps

介绍

DevOps是当今的热门话题。但是,对此有很多困惑。根据美国一家全球研究和咨询公司Gartner进行的研究,虽然90%的受访组织表示自己正忙于DevOps,但有44%的公开承认他们仍在努力寻找含义。在本文档中,我将向读者介绍DevOps的基本概念,并教给他们有关如何使用Microsoft 365 Suite和Microsoft Azure应用DevOps的指南。

什么是DevOps?

DevOps术语是开发和运营的结合,其根源是丰田生产系统的制造方法,敏捷软件方法和约翰·博伊德的OODA Loop。DevOps的关键概念建立在建立团队之间的协作文化基础上,这些团队过去一直在相对的孤岛中工作,开发人员在其中创建应用程序,而IT运营团队将它们部署到他们管理的基础架构中。筒仓之间的这种分离以及职责和程序会带来严重的延误和不准确,例如,通过采用票证之类的正式电子邮件与其他团队进行沟通。这种文化的实施通常涉及采用云计算。尽管如此,它还包括组织结构调整,软件架构变更,

“ DevOps是人员,流程和产品的结合,能够为最终用户持续交付价值。”

Donovan Brown,Microsoft DevOps PM。

丰田生产系统

1930年,丰田公司根据操作模型“丰田之路”引入了一种新的生产方法,称为精益生产。该模型基于14条原则,旨在为人们提供不断改进其工作的工具。这些原则中的两个是KaizenJidoka

改善

由于可以改进每个流程,因此该原则激励每个员工寻找改善公司各个级别的运营和人员的方法,以支持这一改进过程。这种参与产生了过程成功的责任,从而提高了士气和质量。为了成功,Kaizen要求设定明确的目标和指标。需要强调的是,Kaizen不仅基于仅由专家或管理层开发和实施的改进,而且还涉及所有人。我们可以将改善原则定义为持续改进

吉多卡

Jidoka原则强调质量高于一切,使操作员能够发现异常状况并立即停止工作。丰田通过创建安东帘线并强制其员工在生产出现问题时拉动帘线来实现这一原则。这条Tether不过是一根绳子,而被拉动后,它会立即停止组装线上的所有工作。一旦停止所有生产,团队负责人将立即调查拉绳的原因,然后与团队一起解决问题并重新开始生产。即使这听起来可能疯狂而无济于事,但丰田汽车公司意识到,如果不加注意,装配线上未解决的问题会带来巨大的复杂性,并导致大量金钱的浪费。

DevOps和OODA循环

早在1950年代,美国空军上校约翰·博伊德(John Boyd)开发了一个周期,以帮助人们在无法预测的混乱环境中成功开展工作。OODA Loop致力于使人们能够快速,果断地做出地面决策,它包括四个阶段:

·观察

·东方

·决定

·行为

尽管它是像许多其他发明(例如互联网)一样在军事环境中开发的,但它已在民用领域中得到了应用,如今,OODA Loop与敏捷的软件开发方法相关联。敏捷不是要让一种设计进入最终产品,而是要尽快制造出最低限度的可行产品,以便可以对其进行测试和快速重新设计,以更好地适应市场和竞争对手。

实施DevOps

既然我们知道了什么是DevOps,以及在我们公司中实施DevOps实践的好处是什么,那么让我们看一下实施过程实际上是如何工作的。在本节中,我将指导您如何使用以下技术堆栈将DevOps应用于您的组织:

·Microsoft Office 365

·Microsoft Azure

·Microsoft Azure板

·Microsoft Azure管道

·Microsoft Azure存储库

·Microsoft Azure测试计划

Microsoft Office 365

由于大多数开发人员已经熟悉Microsoft Suite,因此所有通信和文档都将从Google Suite移至Microsoft Office 365。

Microsoft Office 365的全球利益

·Office 365除了在Web浏览器中使用之外,还提供了广泛的桌面应用程序。另一方面,Google Suite仅基于网络。

·即使这两种方法都允许我们创建文档,电子表格和演示文稿,但与Microsoft相比,Google生态系统还是有局限性,尤其是对于工作表之间具有大量关联的复杂Excel文件。

·从管理控制台轻松管理用户和组权限以及软件许可证(图1)。

1wjdG9dYb0ya8jYqKhFH0tQ

图1:Office 365 Admin Central的示例

微软团队的好处

切换到Office 365的一个显着优势是引入了Microsoft Teams,这是一个协作中心,它将用户,对话,在线会议,内容和工具集成在一个独特的应用程序中。除了Microsoft广泛使用的应用程序之外,该软件还提供了广泛的第三者扩展,可以集成到Teams中。例如,开发团队可以使用Visual Studio Team System(VSTS)选项卡直接在Microsoft Teams上具有特定的仪表板甚至看板。该工具将允许团队成员实时更新其项目状态,而无需在网站之间导航(图2)。

172EloZ5nGEwxTfFp0egrNw

图2:Microsoft Teams与Microsoft VSTS之间集成的示例

将每个协作应用程序都放在一个界面中,以及OneDrive和SharePoint提供的文档的可访问性,可提高性能并减少浪费的时间。例如,如果将新团队成员分配给现有项目,则足以将他/她从Office 365管理中心添加到与那些项目相关的Office 365组中。这样,他/他就可以立即访问该项目的每个存储库,SharePoint或OneDrive上的文档以及Microsoft Teams中的团队。这样可以节省大量时间,并且可以提高流程的效率和安全性。使用Microsoft Teams的另一个重要优势是透明度。对于许多组织而言,最大的挑战是使每个人都了解最新情况。

蔚蓝

即使云和DevOps彼此独立,但云在基础架构和可伸缩性方面提供的敏捷性对于希望采用DevOps文化的公司而言也至关重要。由于其中心化的特性,像Azure这样的云计算环境通过提供用于测试,部署和生产以及持续集成和持续开发工具的独特平台,可以降低复杂性。结果,IT部门将工作重心从配置硬件或修补操作系统等任务转移到了增加业务特定价值上。我建议增加云的使用量,并增加董事会,管道,回购协议和测试计划之类的服务的日常使用量(图3)。

1WT8PAxsZxSr2O_5qSU1cYg

图3:Azure DevOps云服务

我选择Microsoft Azure而不是其他供应商(例如AWS或Google Cloud),因为:

·微软开发了Azure DevOps,以帮助企业通过董事会,回购协议,管道,测试计划和工件等特定服务轻松迁移到DevOps文化。

·Microsoft Azure与其他应用程序(如SharePoint,Dynamics 365和Office 365)高度集成。

·它在全球范围内为数据中心提供高可用性和冗余,从而使其可以提供99.95%的SLA(服务水平协议)。

·Microsoft Azure提供了基于DADSC(检测,评估,诊断,稳定和关闭)方法的安全控制系统,该方法可提供可靠的保护以防止数据丢失,并被Gartner认可为Cloud IaaS(基础设施即服务)的行业领导者)。

·尽管其竞争对手在线提供的文档很少且令人困惑,但Azure提供了数千个在线演练以及非常丰富的文档,可帮助新手快速学习平台。

利用云计算服务而非本地环境带来的其他好处是可伸缩性,成本效益,安全性和灵活性。Azure开发槽代表了灵活性的示例。这些特定的插槽使开发团队可以在与生产插槽不同的插槽上部署新版本,通过更改定向到每个插槽的用户的百分比来对其进行测试,然后只需单击一下即可替换插槽,从而快速释放产品(图) 4)。此过程极大地减少了错误余量,并减少了完成发布过程所需的时间。

1Q7ZZmIZS2iXgIMohBGBdYQ

图4:在Azure开发插槽之间交易所的示例

还必须提及的是,由于使用了Azure Active Directory,如果将新成员分配到了特定的Office 365组,则该成员还将获得Azure特权,使他/她可以访问特定资源,创建新服务以及进行更多操作。更多。此功能使新员工的入职速度更快。Azure还提供了许多工具来为Linux环境以及Docker等容器开发应用程序。

Azure板

Azure Boards是一项Web服务,通​​过将整个开发分为几个用户案例(或积压项目),每个团队都由小任务和相关问题组成,它使团队更易于管理工作负载。该应用程序具有看板,可视化工具(图4)和积压的积压订单,可帮助团队轻松查看和共享进度。同样,这些工具借助其自定义的仪表板和集成的报告,可以帮助项目经理跟踪项目的状态和趋势。根据相关的软件开发框架(基本,敏捷,Scrum和CMMI),此服务还提供了彼此不同的不同模板。但是,随着业务的增长,所有这些都易于扩展。

Azure开发板和DevOps

如前几章所述,DevOps与精益生产和即时制造技术紧密相连。因此,由于看板具有通过增量发布和少量新功能或漏洞修复来促进产品开发的能力,因此看板非常适合DevOps。由于看板周期的时间是以小时或一天为单位来衡量的,因此大型复杂的开发项目被分解为小型且易于理解的任务(通常由卡代表),这些任务按列排列在板上,每个代表不同的状态。看板的重点是完成任务,限制进行中的工作并交付即时价值。

1do_TZefB4LJ5HX5OL43nnQ

图4:Azure开发板示例

Azure存储库

另一个重大改进是引入了Azure Repos。由于这项服务,可以轻松地在分配给项目的每个工程师之间访问和共享代码。由于Azure Repos同时支持GIT(分布式版本控制)和Team基金版本控制(中心化版本),因此每个项目都可以使用最适合其需求的版本控制系统(VCS)。使用VCS的好处很多,以下是一些示例:

· 协作:团队中的每个人都可以随时自由地处理任何文件。VCS允许您将所有更改合并到标准版本中,从而消除了任何有关最新版本的问题。

· 存储版本:VCS会将所有过去的版本和变体打包在一起。在需要时,您可以随时请求任何版本,甚至只需单击一下即可恢复以前的版本。

· 不可能丢失:由于代码在线,因此即使计算机损坏也无法丢失。

该服务还与Visual Studio完全集成在一起,从而使每个开发人员都可以直接从Visual Studio执行先前的操作(图5)。

1dAtu1MpMCCQ6PdW8oYe6-Q

图5:从Visual Studio 2019上传到TFVC存储库中的代码示例

Azure管道

在每次功能开发之后,传统的代码提交和与分支合并的方法可能变得非常复杂,甚至可能导致错误。Azure管道通过结合持续集成和持续交付(CI和CD)来解决此问题。使用此Web服务可以通过在多个目标(例如注册表,虚拟机,Azure服务等)上自动构建,测试和部署项目代码来确保代码的一致性和质量。可以通过自动构建和自动测试来验证与共享存储库的每个集成,从而使过程更快,更安全(图6)。

Azure管道和DevOps

借助持续交付(CD),可以自动准备代码更改以发布到生产环境。然后,可以通过将在构建阶段准备的修改(由连续交付执行)自动部署到测试环境或生产环境中,从而在持续集成时扩展连续交付。这样,开发人员将具有通过标准化测试过程传递的可部署的构建工件。持续集成的主要目标是通过减少查找和解决错误的时间,减少验证和发布新软件更新的时间来提高软件质量。

12kwhg3j4x4gLhvTmvs_MPA

图6:使用Azure Pipeline开发的管道示例

Azure测试计划

万一特定项目需要手动测试,Azure测试计划服务提供计划手动测试,用户验收测试所需的所有功能,并且由于它与Azure板的集成,因此可以快速收集利益相关者的反馈。此Web服务的主要目的和优点是拥有一个跟踪执行的每个测试,仍需要执行的每个测试以及每个测试中的步骤的工具(图7)。

16lNc9Sz3cF4_GsJ3gC10Jg

图7:测试用例列表示例

投资回报

简而言之,DevOps旨在帮助您更快地交付更高质量的产品,这意味着您将获得更高的客户满意度,并且需要更少的工程师来分配每个项目。例如,在其业务中实施DevOps文化后,Fidelity Worldwide Investments报告称部署时间从3天减少到2小时,从而在2014年为他们节省了200万美元。采用诸如Scrum,Agile和CMMI之类的软件开发框架将提高生产率,提高产品质量并减少公司的工作量,这将间接地减轻工作压力。例如,在对开发流程进行重组后,位于美国俄亥俄州哥伦布的美国大型保险和金融服务公司集团Nationwide Insurance的质量提高了50%,

结论

采用上述服务将使目标公司逐渐接受DevOps文化,这意味着将浪费更少的时间,改善沟通,并组织和简化任务管理。该代码将更加可靠并且不易出错,这将提高客户对产品的满意度,并降低团队稍后不得不再次修复项目的机会。如果存在任何类型的硬件故障,在基于云的环境上运行还将保留文件和版本,并且更有可能防止安全漏洞。多亏了Microsoft Office 365和Microsoft Teams,项目所有者与不同组以及与客户端之间的通信将变得更加容易。所有这些都能带来更高的客户满意度,更高质量的产品,

你可能还喜欢