在云端了解开发人员的新工作环境

发布于:2021-02-21 00:00:58

0

612

0

云端 开发人员 DevOps SAAS

本地软件为什么会遭受云竞争?

本地软件遭受云竞争的主要原因之一是,通常仅在有新版本时才对本地软件进行修补。因此,每当我购买该软件的版本时,无论何时发行新版本,我都必须付费才能升级许可证。或者,我至少必须等到该新版本修复该软件中出现的错误或潜在问题。

另一个原因是该软件的开发人员和用户可能被阻止。也许计费软件(或他们使用的任何软件)正在阻止他们有效地开展工作。他们希望事情在实际进行中时能顺利进行。因此,人们解决此问题的方法之一是通过解锁自己并切换到在线某个地方的SaaS。输入他们的电子邮件,选择一个密码,然后开始使用适合他们需求的更好版本的软件。

SaaS的另一个优点是经常提到较短的反馈循环……

因此,从供应商的角度来看,如果您每两年发布一次内部部署软件,则与客户的反馈周期更长–为什么?因为您只能每两年发布一次,所以您不会立即获得所做更改的反馈。因此,也许有些客户要求您提供该软件的新功能。但是每两年只能向大量客户发送一次,因为那是您的发布周期。例如,理想情况下,您希望能够发布新的更改或功能,并让人们在将其发布到SaaS之后立即使用它。然后,您可以获取有关此反馈是否良好的反馈,是否可以在其他情况下使用,等等。因此,从供应商的角度来看,或者是由自己构建的SaaS的公司,这是一件非常重要的事情。同样,与本地软件相反。

另一件事是,作为开发人员(或开发人员),您希望拥有较短的反馈循环。因此,如果您是开发人员并且需要数据库环境,通常在大型组织中,您可以去IT部门索要数据库服务器,如果幸运的话,您可以在一天到一周的时间内获得它。如果您不是那么幸运(我曾在这些公司工作过),则需要一个月甚至半年的时间才能获得该数据库服务器。它阻塞了您的工作,使您无法立即获得有关该数据库服务器存在的事实的反馈,并且您的代码实际上可以针对该数据库服务器运行。因此,即使要花费一天的时间,对于最佳的开发流程来说,这仍然是一个非常长的反馈周期。

另一个示例是,如果您需要针对软件运行测试。理想情况下,您希望这些测试立即运行。您不想等到其他团队为您运行测试,然后向您发送一封电子邮件,其中包含在这些测试中发现的所有内容的摘要。您只想提交您的代码,确保它在几秒钟或几分钟内构建好,您想获得响应并查看您的更改是否有好有坏。

自动化的过程听起来很诱人-但是有什么风险?

自动化流程基本上可以帮助您缩短开发人员想要的反馈循环。因此,我仅给出了单元测试的示例。但是也许您正在构建SaaS,您可能会提供多种服务。也许您想自动化该事物的部署,以便能够在该事物上运行功能测试或集成测试。您可以这样做,我认为您必须这样做以减少反馈回路。现在,重要的是,由于开发人员有时希望将其自动化太多,因为……我们是开发人员,我们希望事物美观且结构化。

但是,部署事物的自动化只是一个工具,可以为您提供有关实际构建的事物的更快反馈。因此,我认为,即使是一种快速而肮脏的方法,也是一件好事,因为它可以减少反馈循环所需的时间,而您仍然不需要花费太多时间来使事物自动化。但最后,我认为您确实应该自动化。

云为DevOps带来什么好处?在内部部署情况下面临哪些挑战?

云为DevOps带来了很多好处。其中之一是,您基本上可以使用许多可用的API来自动化整个环境。因此,在Amazon上,您可以托管Docker实例。在Azure上有一个API,您可以在其中基本描述表面的外观,所需的服务器类型,应具有的RAM数量,应有的IP地址,是否应建立与网络的VPN连接以及以此类推。因此,通过使用云服务来做到这一点,您基本上可以只编写整个环境的脚本并使其运行。

现在,有人会说您也可以在本地进行此操作。没错。主要区别在于您想多次连续进行。因此,想象一下您正在构建软件并且正在使用一种称为功能分支的概念,其中每个功能都是在源代码的不同分支中开发的–也许您想为源代码的每个分支提供一个环境。但是,也许您的下一个发行版是50个分支,在这种情况下,这意味着您需要整个环境50次-才能测试和托管环境。

在云中,您可以非常快速地执行此操作–您可以为此付费并可以开始使用它。如果要在内部进行此操作,则必须具有能够托管50个环境的功能。再说一次,您可能可以这样做,但是那50个环境(或能够运行该环境的能力)将始终存在,并且您需要为此环境付费。而在云中,即使该功能分支的寿命很短(例如一周),您也可以租用该容量一周,然后再将其退还给云,因此您不再需要为此付费。

在最近的会话中,您谈到了人为约束如何减慢了开发过程。您能告诉我们这是怎么发生的吗?

当开发人员在“区域”中或有自己的流程时,他们的工作效率最高。可能作为开发人员,您已经经历了这一过程。您来到办公室,为自己喝咖啡,开始工作,突然之间是午餐时间,您的咖啡还在那儿……很明显很冷。但是您没有意识到已经过去了这么长时间。那是在“区域”中。这是非常重要的事情,因为您不必停下来思考问题和打扰等等。因此,通过减少通常在每个组织中出现的人为约束,您可以使开发人员更多地处于区域内。

例如,一个人为的约束可能是您需要使用特定的工具来完成某些任务。为什么有那个规则?在许多公司中,如果您开始问这个问题,那么没人会回答您。或答案将是“因为那个家伙说我们必须这样做。” 如果您与该人交谈,他会像“您必须使用该工具”。没有正当的理由,而仅仅是因为他是一名经理-那里就有约束。可能是一个工具,一个过程,等等。

但是问题是,如果您使用令人沮丧的工具来执行此操作,则有时您必须解决该问题或等待一个小时才能使用该工具并完成操作,从而中断了您的思维训练(或您位于“区域”中) 。因此,您已经出局了,必须从中断中恢复过来。人为的约束通常会给开发人员的思维带来更多干扰。

企业IT团队在转向云方法之前需要考虑什么?

我认为显然让人们熟悉云平台是最重要的事情之一。首先从技术上讲:因此知道该平台支持什么,我该如何做,有何警告...也许如果我将这种工作负载从我的数据中心传输到云中将无法正常工作,那么您必须熟悉这些事情。

然后是计费级别。由于您是按使用付费:在您自己的环境中,您可以通过计算功耗,服务器价格,连接性等等来扣除环境成本。在云方案中,存在与您使用的服务类型相关的各种定价模型。因此,例如,关于虚拟机的方式,您可能需要为存储支付费用,可能需要为带宽支付费用,可能需要为使用该产品的时间支付费用,依此类推。所有这些事情都会有效影响您在月底支付的价格。因此,您需要熟悉一下,以避免月度账单上令人讨厌的意外。

还有一件事你需要研究,那就是依从性。也许你的公司不希望特定的数据超出公司的范围。也许你的政府说你的数据不能离开这个国家,或者应该留在你自己的地下室里,或者应该放在一个数据中心,距离另一个数据中心只有这么多公里。因此,你也需要检查这些事情,以确保你符合你所做的一切,而不是搬起石头砸自己的脚(无论是技术上,账单上还是合规方面)。