在开发标记工具“子弹头列车”的过程中,我们实际上是在使用“子弹头列车”来开发“子弹头列车”,这样我们就可以在持续集成的同时进行持续集成。
我们开发Bullet Train的信念是,持续集成是所有开发团队都应追求的目标。功能标记和远程配置可以极大地帮助实现CI的目标,尤其是在生产环境中。因此,遵循这种信念并避免过于虚伪,我们将其对CI的好处用于开发工具本身。
Bullet Train是一个开源项目,可让您从代码中分离发布和配置功能。您可以在Web、移动和服务器端应用程序上跨多种语言管理功能标志和远程配置。
使用CI和Bullet Train并非全有或全无决定
开发人员经常考虑将持续集成作为一个全有或全无的决定,但这不是必须的。CI可以在项目中的任何位置使用功能标记使用,以逐个功能地投入生产。
证明这一点的一个很好的例子是我们如何开始在其自身上使用Bullet Train。我们在2018年6月推出了Beta版的初始版本。发布之后,我们立即开始使用忘记密码功能。
到目前为止,该项目是稳定的,我们使用Nightwatch进行了端到端测试,该测试在每次提交时都会运行,因此我们可以开始使用持续集成了。这些是我们为创建项目并将新的“忘记密码”功能与Bullet Train集成而采取的确切记录的步骤。
第1步:注册
我们在上创建了一个帐户 https://bullet-train.io。
步骤2:建立专案
步骤1自动创建了一个名为Bullet Train的组织,并将我添加为成员。下一步是创建一个项目。
步骤3:为“忘记密码”创建功能标记
Bullet Train为新创建的项目自动创建开发和生产环境。我们创建了一个名为forgot_password的功能标志。
步骤4:整合
至此,我们有了一个忘记密码功能,该功能在我们的开发和生产环境中均已禁用。下一步是使用JavaScript SDK显示/隐藏我们的忘记密码功能。
创建该功能后,便会提供一些代码片段,以供安装和集成到我们的代码中。
当然,如何集成它取决于您。在我们的例子中,我们有一个React应用程序和一个Flux商店,当功能标志改变时,它会广播。最后,根据子弹头列车返回的内容,我们的主页上将显示忘记密码的链接。您可以在这里查看此过程的提交
使用功能标志意味着我可以按原样将此功能发布到生产环境中,而无需进行其他开发。
步骤5:启用功能
在生产中使用新的忘记密码功能后,我要做的就是启用它,以便将其部署到世界各地。一旦启用了仪表板中的“忘记密码”功能,便可以在网站上看到它。
这对我们有什么帮助?
不习惯持续集成的人们可能会想知道:为什么我不像往常那样发布该功能?功能标记之所以如此好用的一些原因是:
- 它使我能够继续进行生产的集成。现在,每次推送到主节点的提交都会自动构建到生产环境。
- 它引入了在生产中测试代码的能力,并针对特定用户逐步/有针对性地推出了产品。
- 它使非技术团队成员能够管理功能发布。
- 它可以根据最新的代码库及早测试功能。CI表示我们正在以与生产中正在运行的产品非常接近的形式不断测试功能。
- 它允许您引入Beta程序以获得早期的用户反馈。
- 通过在紧急情况下远程关闭功能,它减少了回滚代码的需要。
发展愉快!