Web applications 您如何实现web应用程序(SaaS)的发布管理?

Web applications 您如何实现web应用程序(SaaS)的发布管理?,web-applications,release,release-management,Web Applications,Release,Release Management,发布托管web应用程序新版本的最佳方法是什么?通常多久发布一次?您是否选择任意日期(例如每周、每月等)来推出累积的修复集(可能使用类似的方法)?等待的时间比这长得多,这似乎挫败了托管应用程序的部分主要优势。另一方面,您不希望不断推出可能会让用户感到困惑的新功能(例如,如果用户每次登录时都有不同的内容) 直到最近,我的经验主要是安装基于服务器或桌面的应用程序。我很想知道人们在托管应用程序中使用哪种类型的发布管理。提前发布和经常发布是我的工作,我们在工作的地方也会这样做。无论何时更新,我们都会在博客

发布托管web应用程序新版本的最佳方法是什么?通常多久发布一次?您是否选择任意日期(例如每周、每月等)来推出累积的修复集(可能使用类似的方法)?等待的时间比这长得多,这似乎挫败了托管应用程序的部分主要优势。另一方面,您不希望不断推出可能会让用户感到困惑的新功能(例如,如果用户每次登录时都有不同的内容)


直到最近,我的经验主要是安装基于服务器或桌面的应用程序。我很想知道人们在托管应用程序中使用哪种类型的发布管理。

提前发布和经常发布是我的工作,我们在工作的地方也会这样做。无论何时更新,我们都会在博客上发布。如果您一次将所有更新滚动到一个更新中(对于QA,必须回滚等),可能会更容易。从用户的角度来看,我认为大量更新不会有任何问题。只要它们不是坏的更新。我认为如果你等了整整一年或六个月,然后把所有的更新都放到一个大版本中,那就有问题了。这就扼杀了我曾经从事的一个项目(一个你可能听说过的流行feedreader)。人们认为我们已经死了,感知变成了现实。我们被遗弃了。所以我完全支持firehose的发布时间表。

每两周应该足够了,但这在很大程度上取决于您的市场。

谷歌的方法可能是最适合最终用户的方法,但它以复杂性为代价

他们持续不断地推出新版本(有时只是个别的更改)(视项目而定,每天都有)。但关键是:只有一小部分用户获得了新版本

谷歌的大型产品拥有大量用户,因此引入“5%的用户应该看到此功能”这样的规则是切实可行的


然后,他们可以分析结果并规划下一个版本,可能还有15%的用户。

尽管工程师们想要定义一个日常生活,但它实际上是由系统背后的业务需求驱动的。这也取决于更新的性质等等

内容和HTML更新应该不是什么大不了的事。应用程序的更改应该是一件大事,并且在进行实时推送之前,要在预览站点上完成已建立的测试例程

可以肯定的是,您需要一种非常“干净”的方式来部署(和取消部署)更改。您还需要一种“简单”的方式来在变更生效之前审查和审核变更

混合使用“git”和“rsync”可以让我们完全控制流程。我们项目的所有变更都是在“生产”分支的分支中开发的。在任何更改生效之前,“生产”分支必须完全合并到中。上线的行为只是将适当的分支合并到“生产”中,并将其重新同步到在线服务器。Git让这变得非常简单

这可以确保正在进行的更改不可能与正在进行的其他更改冲突

自采用该系统以来,我们的部署程序在效率和清晰度方面都有了显著提高。顺便说一句,我们的部署范围从每天多次到几个月一次。这要看情况而定。我更喜欢在活动项目上每周发布1-2次。

在Planbox(基于web的敏捷项目管理SaaS),我们每天都会发布。我们可以做到这一点,因为我们的大多数应用程序逻辑和所有表示逻辑都在前端(Javascript)。甚至HTML也是使用模板引擎通过Javascript生成的。但是后端(PHP)及其RESTAPI很少改变。这使我们能够在不破坏兼容性的情况下随时推送客户机的新版本


如果您可以采用这样的体系结构,您将节省大量时间并获得更高的效率。

我在这里提出了一个问题-他们如何确保其更改只对一小部分用户可用?您知道团队可以使用哪些工具来部署(和取消部署)吗而不是仅仅使用git和rsync?