SnappHQ 评测





5.00/5 (2投票s)
我最近有机会试用了 Snapp,这是一个为 .NET 应用程序提供的弹性云平台即服务(PaaS)。它是第一个包含 .NET 应用程序可配置的预发布(staging)和生产(production)环境的 PaaS。
引言
我最近有机会试用了 Snapp,这是一个为 .NET 应用程序提供的弹性云平台即服务(PaaS)。它是第一个包含 .NET 应用程序可配置的预发布(staging)和生产(production)环境的 PaaS。
上手 Snapp 非常简单。我只需访问 www.snapphq.com,点击“注册”,填写三个表单字段(电子邮件、密码、确认密码),同意条款和条件,就可以开始使用了。
我做的第一件事就是点击“创建应用程序”按钮来创建一个应用程序
然后填写应用程序名称和应用程序描述。
我给我的应用程序命名为“SimpleApp”,几秒钟就准备好了。
接下来,我点击了“管理”按钮,进入了这个界面。
在这里,我可以访问预发布和生产环境、发布/回滚工具、用户管理和附加组件。目前唯一的附加组件是 MS SQL 数据库,但团队正在努力构建一个附加组件生态系统。
Snapp 提供了两种开发环境:预发布环境和生产环境。在开发周期中,你通常会先部署到预发布环境,运行测试并检查更新是否正常,然后再部署到生产环境。Snapp 让这一切变得非常容易。
在我创建应用程序后,立即为两个环境提供了主机名。预发布主机名为 staging-SimpleApp-1236.sn-app.com,生产主机名为 SimpleApp-1236.sn-app.com。DNS 生效大约需要五分钟。
现在我准备将应用程序发布到预发布环境进行测试。我进入了预发布区域
并启用了 Git 部署方法。
你还可以选择预发布环境将运行的 ASP.NET 版本,启用或禁用异常处理程序,设置 webapp 的工作进程数量(当前的 beta 版本在预发布环境限制为 1 个,在生产环境限制为 3 个),以及启用或禁用其他部署方法,如 FTP、Web Deploy 和 TFS。
我创建了一个非常简单的“Hello World”ASP.NET 应用程序,它只有一个 Default.aspx 文件。然后我点击了“管理 Git”。“管理 Git”页面提供了如何将你的应用程序推送到预发布环境的信息。如果你以前使用过 Git,这很简单。
由于我从一个全新的应用程序开始,我首先初始化了一个新的 Git 仓库。
c:\snapphq>git init
Initialized empty Git repository in c:/snapphq/.git/
接下来,我将 Default.aspx 文件添加到仓库。
c:\snapphq>git add Default.aspx
然后,我将更改提交到仓库。
c:\snapphq>git commit -m "first commit of simpleapp"
[master (root-commit) aacef3a] first commit of simpleapp
1 file changed, 14 insertions(+)
create mode 100644 Default.aspx
然后,我添加了预发布环境的远程 Git 地址。
c:\snapphq>git remote add snapp https://git.snapphq.com/staging-SimpleApp-1236.git
最后,我将我的 master 分支推送到预发布环境。
c:\snapphq>git push snapp master
Username for 'https://git.snapphq.com': peteris.krumins@gmail.com
Password for 'https://peteris.krumins@gmail.com@git.snapphq.com':
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 325 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://git.snapphq.com/staging-SimpleApp-1236.git
* [new branch] master -> master
正如你所见,Git 会提示我输入用户名和密码,这在你频繁推送时会非常烦人。解决方法是将用户名和密码包含在远程 Git 地址中,如下所示。
c:\snapphq>git remote add snapp
https://YOUR_SNAPPHQ_USER:YOUR_PASS@git.snapphq.com/staging-SimpleApp-1236.git
在我的例子中是这样的。
c:\snapphq>git remote add snapp https://peteris.krumins
%40gmail.com:MY_PASS@git.snapphq.com/staging-SimpleApp-1236.git
现在,当我对我的应用程序进行更多更改并推送到预发布环境时,就不会提示输入密码了。
在我将应用程序推送到预发布环境后,我导航到预发布 URL http://staging-simpleapp-1236.sn-app.com/,我的应用程序运行正常!
我刷新了预发布区域页面,很高兴看到实时统计页面显示了请求数量和带宽使用情况。
现在是时候推送到生产环境了!我进入了发布/回滚区域,点击了“发布”按钮。
然后我看到一个对话框,允许我输入备注。
输入完备注后,我点击了“发布”,片刻之后页面刷新,我看到了成功消息。
为了确保它确实成功了,我访问了生产环境的 URL http://simpleapp-1236.sn-app.com/,果然,我的应用程序正在运行!
请注意,推送到生产环境应该只通过发布/回滚工具进行。你可以通过 FTP 访问生产环境中的文件,但你不应该直接上传文件到生产环境,因为它会扰乱回滚。因此,建议为生产环境关闭 FTP。
Snapp 还支持生产站点的自定义主机名。如果你进入生产站点管理器
并点击“管理主机名”,你就可以为你的应用程序添加自己的主机名。
现在我决定对我的应用程序进行更改,所以我编辑了 Default.aspx,将更改提交到仓库,再次推送到预发布环境,验证了更改是否有效,然后将我的应用程序发布为 v1.1。
它成功了,现在发布/回滚页面显示了以下内容。
正如你所见,v1.1 是当前活动版本,并提供了回滚到 v1.0 的选项,以防出现错误。凭经验来说,事情确实会出错,能够快速回滚更改是非常棒的!
Snapp 还支持多开发者环境。我是在独自测试,但如果我有一个使用 Snapp 的多开发者团队,我会在用户管理器区域为他们每个人设置一个账户。
假设我的团队中有 John Doe。我会点击“创建用户”按钮,并通过 FTP、Web Deploy 和/或 Git 授予他对预发布环境的访问权限。
添加 John Doe 后,他可以将他的远程 Git URL 设置为 https://johndoe:pass@git.snapphq.com/staging-SimpleApp-1236.git,并能够推送到预发布环境。然而,推送到生产环境的权限仍然在我这里。如果他愿意,他也可以通过任何 FTP 客户端推送到预发布环境,或者直接从 Visual Studio 通过 Web Deploy 进行。
试用 Snapp 的体验非常好,你也可以在 http://www.snapphq.com 免费试用。开始之前,你也可以观看 YouTube 上的 "Snapp 入门教程",或者在 Snapp 的论坛上寻求帮助。
我最喜欢 Snapp 的一点是,开发者可以通过 Git 轻松地将代码推送到预发布环境,并在几秒钟内看到代码实时运行(这可能也因为我的公司也构建了一个类似的部署系统,让我们能够在几秒钟内将代码从 Git 推送到预发布环境),但总有改进的空间。
我希望 Snapp 在未来的版本中能够支持多个 Git 分支和多个预发布环境。当团队协作时,开发者通常会在不同的分支上处理不同的功能。将各个分支部署出来,在合并到 master 分支之前向团队展示更改,那将太棒了!
我希望 Snapp 支持的另一项功能是从 Snapp 的 Git 拉取。目前你只能推送到 Snapp。拉取将是一个很棒的功能,因为它能够让一个开发者快速地将一个 bug 修复推送到预发布环境,而另一个开发者则确认 bug 修复有效。然后该开发者就可以立即从 Snapp 的预发布环境中拉取修复到他自己的仓库。
关于我
Peteris Krumins 拥有多年的程序员、系统管理员、初创公司经理以及全能黑客的经验。他是 Browserling 和 Testling 的联合创始人,并经营着广受欢迎的编程博客 www.catonmat.net。