Heroku 正在尝试将源代码转变成可运行的应用变得更容易。Heroku 按钮是一段简单的 HTML 或者 Markdown 代码片段,它能够触发将公共 GitHub 代码仓库内的源代码发布到 Heroku 公共云平台的过程。这一功能使得 Heroku 成为具有快速预览,寄宿并且能够扩展开源 web 应用的具有吸引力的一个平台。
在上周发布的blog 中, 官方宣称Heroku 按钮的设计是为了“使代码部署,运行以及升级的整个流程变得更加简单和方便”。如何实现这种简便性呢?以往开发者需要从代码仓库中复制出代码,创建一个应用容器,添加辅助的服务,并且运行安装脚本之后才能体验一个应用,这种方式将会被替换掉,取而代之的是Heroku 提供的仅通过一键单击就能够完成编码应用配置并且从公共GitHub 代码仓库中发布源代码。
Heroku 通过一篇更加深入的文章解释了该按钮背后实现原理的一些关键点。按钮本身是比较简单的,它在页面上只是展现为一张图片引用,通过超链接连接到 https://heroku.com/deploy 。 如果该连接是存在于 GitHub 仓库内的 README 文件里面的话,Heroku 将通过读取请求中的“referer”头信息,来获取需要从哪个仓库内获取代码的信息。这是一种值得推荐的方式并且“是方便的方式,因为这样能够避免将具体代码仓库的 URL 硬编码在按钮中,容许仓库的挂钩和分支能够在不改变按钮 href 的情况下正常工作”。尽管如此,也有另外一种使用方式,那就是使用“template”这个查询字符串参数指向具体的仓库或者 Git 分支。Heroku 采用 app.json 清单文件来描述 web 应用。开发者使用这个清单文件来设置应用名称,仓库,部署代码脚本,部署过程中的配置参数,以及在部署时需要调用哪些 Heroku 的附加插件。底下这个按钮是由 InfoQ 编辑创建的,该按钮指向包含 Node.js 应用的公共 GitHub 仓库。
点击那个按钮后,开发者将会被导向到 Heroku,在这里开发者将会被一个单页配置工作流的页面引导来填写配置信息。用户需要填写应用的名称,目标区域,以及环境变量等。那么 Heroku 认为谁会是这项新服务最大的受益者呢?
这个按钮对于插件提供者和开源项目的维护者是最为理想的,他们可以将自己维护的源代码通过快速简便的方式为客户部署成一个 Heroku 应用。
而且, Heroku 宣布已经有一些早期的插件合作伙伴已经开始使用这个按钮了。
我们已经跟多个插件提供者一起协作来使用按钮所带来的便利,让用户能够更方便地在 Heroku 上使用他们的服务。用户可以看一看 CloudAMQP 和 MemCachier 开发中心的文章,并且注意下用不同语言开发的示例应用是如何仅仅通过简单的点击就完成测试和部署的。
我们在 Twilio 的好朋友为他们的快速应答元件添加了一个部署按钮,快速应答元件是一个通讯工具套件,应用场合包括从应急应答到社区组织。当按钮链接写在 README 文件中后,任何感兴趣的开发者都能够立刻将快速应答元件部署到 Heroku 中,并且在此之上按照他们的需求来使用。
Heroku 还指出,一些开源项目现在也有了配置好的 Heroku 按钮。第一个此类项目,被称为city-72 ,这是一个灾难应急准备的应用,任何城市都可以通过尝试使用Heroku 按钮来满足本地化的需求。这个应用演示了如何使用依赖于其他Heroku 插件比如PostgreSQL, SendGrid, 和New Relic 的代码。第二个应用来源于Heroku,它被称为 Starboard ,这是一个使用 Trello 来跟踪职员入职和离职任务的应用。
查看英文原文: Try Before You Buy: Heroku Supports Preview of GitHub Applications
感谢邵思华对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论