船舶越快,风险越来越少。获得优化的推出,为开发人员提供免费功能标志。 建立免费账户



欢迎来到第二个安装 询问实验者, 我们采访专家了解他们如何在其公司建立实验文化的新系列。我们今天的采访与Joy Scharmen,Optimizely的Devops主任。

告诉我们一些关于你自己的事。

我很高兴,这是一个在这里优化的工程总监。我们的团队负责管理优化工程师用于构建产品的基础架构和工具。

你能解释什么基础架构是什么?

在其最基本的基本情况下,当我们发布软件时,我们需要访问网络以允许我们与之交谈,并为其生活服务器。基础架构提供此连接并充当基层,在其上,我们可以构建所有应用程序。它可以采取不同的形式,如基础架构作为服务(IAAS),如亚马逊Web服务,Google云或Microsoft Azure等服务。它可以是一个更具托管的平台,如Heroku或Google App Engine等服务(PAAS)。它可以在您自己的数据中心运行,在您自己的服务器上。

如何在基础设施进行实验?

很长一段时间,实验基础设施是挑战,因为它是您必须亲自修改的所有物理硬件。 然而,与制作交换机拥有自己的服务器以迁移到基于云的公司,现在可以将基础设施视为代码的基础架构。每次我们需要一个主机以运行我们的软件时,我们都不再需要物理插入,机架和堆栈服务器。我们可以通过API启动虚拟化服务器(也称为实例)和容器。我们还可以编写为我们执行此操作的代码,并将其检查到我们的软件版本控制系统(如Git)中。这为我们提供了可审计性,可重复性,自动化,以及所有运行实验的能力,因为我们可以轻松地添加条件逻辑以测试不同的配置。

您可以在基础架构上运行哪种类型的实验以及如何与典型的A / B测试不同?

通常,当人们考虑实验时,他们考虑产品和营销:A / B测试,观众建议等等。这些都是有影响力的,但重要的是要考虑实验一直到堆栈的基础。在Devops World中,我们可以运行实验来回答问题:如何为我们的应用程序配置文件进行新实例类型的工作?如果我们将I / O层从短暂磁盘更改为持久EBS卷,那么呢?我们可以衡量我们的应用程序性能基线,然后使用实验从那里迭代,低风险。这些变化可能对质量和成本产生重大影响。

实验如何适应构建和部署过程?

建筑涉及采取代码并将其转换为可抵押的软件。部署意味着拍摄可运行的软件工件并安装它(在服务器,实例,容器或甚至作为函数上),因此您的客户可以使用它。

在构建和部署过程周围有两个实验推动因素,常见于构建和部署过程:持续集成和连续部署(也称为CI / CD)。这个想法是我们一直进行小的变化,然后添加了我们重建我们的软件(连续集成),可以部署该软件(连续部署)。这允许快速迭代思想。当我们进行小的更改时,我们可以轻松验证它们:通过自动化测试,甚至在生产中进行分期。当存在问题时,我们更容易回滚,因为它更容易推动滚动的影响或几个较小的变化的影响比大量的互锁变化。

在推出新功能时,团队如何限制风险?

当您推出一个新功能时,有两种类型的指标:您的系统性能指标和您的业务指标,如果您伤害前者,则经常会影响后者。  金丝雀部署 是降低系统性能风险的常见方法。这个名字来自穷人“煤矿金丝雀”的想法。您将更改为某些小百分比服务器,并了解更改如何影响CPU使用率,延迟,错误率和更多的内容。这类似于一个功能卷展栏,我们自己的完整堆栈产品提供,用于向小型受众推出功能,以衡量对业务指标的影响。

对于基础结构的变化,我们可以通过容器或容器通过服务器或容器进行段。我们可以使用像新遗物这样的工具监控系统性能,并查看我们如何执行与我们的基线。改进的系统性能意味着您在应用中更好的用户体验,以及减少的基础设施花费。

特征标志怎么样?这些如何适应Devops实验?

功能标志基本上切换,允许您轻松关闭或在某些代码上,而无需进行部署或回滚。这意味着我们不必等待部署过程来完成回滚功能,我们可以以隐藏的方式释放代码,从您的功能启动中解耦释放Cadence。

功能标志通常很短,但在完全部署功能后,它们也可以使用,因为它们也可以作为长期操作切换!例如:如果您击中异常高负载,则可以像推荐面板一样切除非生命和计算昂贵的功能。将其视为手动断路器。

什么是蓝色/绿色部署以及与A / B测试不同的人如何?

蓝色/绿色部署 允许您试验到服务器层。这是通过站在旧的新版本(蓝色 - >绿色)然后切换过来。这也适用于金丝雀部署(从一个到另一个的流量逐渐转移)。蓝色/绿色部署和A / B测试之间的区别在于您正在拆分服务器之间的流量而不是用户。

使用Blue / Green Deployments,通过更改服务器类型(或实例类型或容器),可以轻松实验,并查看软件的行为方式。您可以升级您的操作系统或核心库。您可以升级您的语言版本!所有这些,如果出现问题,您可以轻松切换回下一个工作版本。

最后,在您的服务器层中实验的最大优势是什么?

更快,更安全的改进!您可以在击中客户之前遵守问题,在出现问题时快速滚动,每次级别都有实验:应用,操作系统和硬件。

这使每次失败都有机会学习,并降低了跨工程的压力。我们创建更快乐的工程师,一个更快乐的产品团队,希望是一个更快乐的底线 - 这就是我们所有人所想要的。

                      

与伊丽莎白和格雷格从Devops团队一起欢乐将于2018年10月25日给一个网络研讨会谈论在Devops World的实验– 在这里注册!

优化X.