设置登台和生产环境,最大限度地减少简单托管的停机时间

时间:2011-02-17 17:45:10

标签: asp.net-mvc deployment azure production-environment staging

我有一个ASP.NET MVC 3应用程序WouldBeBetter.com,目前托管在Windows Azure上。我有一个免费推出几个月的入门特价订阅套餐,但对于它已经证明它有多贵(平均每天150欧元!)已经开始支付它了。对于一个不会很快赚钱的网站而言,这只是方式太多钱所以我决定转移到常规托管服务提供商(DiscountASP.Net)。

我真正想念的其中一件事是Azure提供的分离的临时和生产环境,以及零停机环境交换。

我的问题是,如何在传统提供商托管时“模拟”暂存环境?我最大限度地减少新部署的停机时间是什么?

感谢。

更新:我选择了我没有选择的答案,因为我认为这是最好的方法,但因为这是对我来说最有意义的。

3 个答案:

答案 0 :(得分:4)

在放弃Windows Azure之前,您可以采取一些降低成本的方法来降低每月帐单。例如:

  • 如果您同时拥有Web角色和辅助角色,请合并这两者。进行后台处理,队列处理等,并在Web角色中运行它们(在OnStart()中执行耗时的启动,然后只需添加Run()覆盖来调用队列处理等。
  • 考虑新的Extra Small实例,其成本仅为Small实例的一半
  • 在您确信生产代码运行正常后,删除您的暂存部署。保持cspkg在blob存储中很方便,这样你就可以随时重新部署它。

答案 1 :(得分:3)

我自己使用DiscountASP。这是非常基本的托管,有点落后于时代。但我发现只是创建一个子目录并发布我的beta / test /任何版本都运行得很好。这不是花哨或漂亮,但确实完成了工作。

为了做到这一点,你需要先创建子目录,然后进入控制面板并告诉DASP该目录是一个应用程序。然后你还必须考虑该目录的web.config将是它自己和父目录的组合。你还必须考虑robots.txt这个子目录,并保护它一般来自爱管闲事的人。

您也可以使用子域名来解决此问题,具体取决于您的域名设置方式。

另一个选择:appharbor?他们有免费的计划。如果你可以保持在他们的免费计划的范围内,它可能会运作良好(我从来没有使用它们,目前有兴趣尝试它们)

答案 2 :(得分:0)

1)获取自动部署工具。有大量免费/开源的公司,其中有数百万亿美元的公司实际用于他们的生产环境。

2)获得与第一个相同的第二个托管包。使用它作为您的暂存,然后在暂存传递时重新部署到生产。