“每项业务都是软件业务”:20岁的沃茨·汉弗莱(Watts Humphrey)用“软件质量之父”的说法比以往任何时候都更真实。零售公司依靠电子商务来销售给客户,许多报纸都有网络优先出版物。而且,如今每个主要品牌都有自己的应用程序。耐克和星巴克均获得了领先软件公司的声誉,尽管它们各自的核心业务似乎与高科技世界相去甚远!
但是过程尚未结束。许多传统公司仍在努力过渡到数字时代,而即使是较老的科技公司也可能发现自己已被现代趋势和变化所抛在后面。
毕竟,事情发展很快。手机公司每周都会发布其应用程序的新版本,而大型在线平台可能一天会经历多次更改。在所有这些更改中失败的后果很高。如果一家主要零售商的网络应用程序出现故障,那么在线客户前往其他地方时,每分钟都会亏损。如果无法使用银行的登录名,那么数百万人将被拒之门外,从而损害了信任。
当然,并非每个错误或中断都可以预防,但是可以使用一些良好的准则和工具来使您的业务在数字时代保持正常运转。
1.测试,但准备好解决测试遗漏的问题。
如果您决心避免中断,则测试非常重要。无论您使用系统测试,单元测试还是全面的质量保证测试,更多的测试都会捕获更多的错误。但是,无论您进行了多少测试,您仍然会遇到一些漏洞,这些漏洞将使它成为现实。那是不可避免的。当您专注于营销和运输时,您不必总是等待进行每种类型的测试。
好消息是,公司可以通过多种方式查找其实时系统中错误的原因。这并不意味着用户,他们通常不擅长提供详细的错误报告(在网站或应用程序无法正常工作时,您花了多少时间编写详细的报告?)。因此,您需要做的第一件事就是检测问题。
在这里,Sentry之类的服务可以在出现问题时发送警报,而Prometheus,DataDog和New Relic之类的监视工具对于监视复杂的现代系统很有用。另一个有趣的新工具是Rookout,它使软件团队可以调试实时应用程序而不必停止或中断它们。该工具还可以帮助修复损坏的系统,同时将停机时间保持在最低限度,并且它可以发现在测试中可能不会出现的难以到达的错误。
2.“混沌工程”:测试破坏
只有一种方法可以知道发生问题的处理能力:您可以自己破坏它们。是的,这是一个严肃的声明。
“混沌工程”是一种通过有意破坏系统的各个部分以确保系统整体仍然可以正常工作来构建和测试弹性的方法。自2011年公司开发了“Chaos Monkey”应用程序以随机禁用其服务器以来,Netflix一直在使用混乱的工程技术。此应用程序已作为免费的开源工具发布。此外,一家名为Gremlin的初创公司提供混沌工程服务,即使员工缺乏专业知识,也可以使公司更容易上手。
3.自动化部署。
在某种程度上,创建软件代码有点像任何其他产品:一旦创建代码,就必须将其交付。在许多软件公司中,代码是由开发团队创建的。然后由集成和部署团队运送软件,并由运营团队进行维护。经过测试后,代码可能需要数周的时间才能进入您的网络应用。
自动化部署消除了其中的某些中间阶段,并使更快地发布新功能或错误修复成为可能。诸如Jenkins和 CircleCI之类的持续集成工具可以自动测试,构建和部署代码,以保持后端运行。Netifly是用于自动部署网站和Web应用程序的一种新的专业解决方案,它还与无数计算等新技术集成在一起。
4.保持对代码的控制。
自动化的集成和部署解决了许多问题,但同时也引入了新的问题。代码中的小错误可能导致密码或API密钥被意外地实时部署,或者使用了错误的配置文件并弄乱了所有内容。
在自动部署部署与持续控制代码之间取得平衡非常重要。一些流行的持续部署工具将在构建或部署阶段检查特别严重的错误。Datree是一种新工具,它可以让您定义策略,然后在合并拉取请求之前对其进行强制,从而在有害代码甚至还未进入公司代码存储库之前就将其停止。
遵循这些准则,是的,您的系统可能仍然存在错误和中断。但是您将拥有更少的人才,有足够的能力来处理它们,能够更快地修复它们,更有可能使您的公司正常运转并赚钱。
标签: