Visual Studio在线升级 – 2 月10号

[原文发表地址] Visual Studio Online Update – Feb 10

[原文发表时间] 2月10号 2014 9:00 am

       昨天,我们完成了60个最终部署,其中包括了两个新功能:将测试计划导出为HTML文档和控制创建新工作标签的权限。你可以在这里的服务发行说明中看到更多关于新功能的内容:https://www.visualstudio.com/news/2014-feb-10-vso.

       正如你所知,自从10月份以来,我们有一连串“失败”的部署,造成了不可接受的停工时间。基于此我们作出了一系列改变,其中一个就是把我们的部署时间移到周末,这样就可以减少受到突如其来影响的人数。这是第二个部署的周末,谢天谢地目前为止一切顺利。第59个最终部署尽管不是很顺利,但我们有很多人整个周末都在辛勤工作,使得服务回归正常。最终周末部署达到了预期效果 – 减少了对客户的影响,并且我们团队的付出得到了认可。

       实际上,我们把第60个部署移到了这周末(其实应该是在上周末),因为我们不想我们的团队错过超级碗(同时我补充一点,我们都是西雅图海鹰队的粉丝)。我们这周末加班人数很少,但幸运的是这次的部署很顺利。然而,很明显周末部署不能一直持续进行 – 在某种意义上让一群优秀的人保持一周工作七天确实很难。我们计划把下一个最终部署放到某个工作日的晚上。我也知道停机时间是整修的好时机,事实上在第59次周末部署出现问题的时候我收到了一些客户的邮件,但比起其他时候,负面的邮件要少很多。这里有一个服务活动图,起始时间是星期天早上。

image

       最后,最重要的是要明白每一个部署都是一个”小事件”(因为它是如此的顺理成章甚至没有人会注意到它)- 对我们的客户和工程师来说都是如此。时移部署不是一个修复,它只是一个缓解方式,并且是一个明智的预防举措,对团队的影响非常大,因此我们得小心谨慎的对待对它的依赖。

       鉴于这种情况,为了能够使得部署“重回巅峰”,过去几个月我们做了很多技术性工作。很明显,服务的规模已经超越了工程的进度和我们已经建立的弹性工程。是时候做更多的事情了,在其他方面我们能做的事情…

       · 加倍努力进行根本原因的分析以及部署后期的回顾

      · 将整个工程过程的学习(从部署回顾和其他方面)变成一个系统的待办事项,目的是具体地跟踪工程进度和工程优化。这样一来我们把工作具体到功能团队的待办事项里。

      · 对部署前测试和规模验证进行了重大改变,使得它“更像产品的生产”。但它永远不会像产品的生产,它只是用来帮助我们比以前捕获更多地问题。

      · 加快工作使得VS Online支持多个实例。实际上,你不知道它,但我们几周前就已经部署了第一个“附加实例”。最终,这将使得我们能够在独立集群上运行产品的一小 部分,这样就能单独升级我们的产品。这样我们就不会有所有的客户在同一时间升级了。我们几周前创建的实例,我们亲切的称它为“ring 0”或(单位0),它会在所有的部署之前发生。SU0在Azure圣安东尼奥数据中心,SU1实例(我们一直用了几年的)在Azure芝加哥数据中心。Ring 0将会是一个我们只有把帐户设置为“志愿者”来避免额外不稳定风险的实例 – 至少我会这样 。一旦ring 0验证了部署,他们将逐渐推出其他的实例。最终我们将赋予为您的帐户选择实例的能力,这将使您能在你的范围内定位到你的帐户。

      · 进一步分离服务使得更多的单独服务(TFS、编译、云下载、分析等)的独立部署可用有更多的工作在等着我们,并且我们已经取得了一些进展。

      · 实现一个新的“锁管理器”,以便更好的推行一些通用的服务或协议/最佳做法,这些都是我们经常见的而且在我们的根本原因分析中被验证的。我希望在未来的某些时候能写一整篇关于这个的文章,甚至共享代码。

      · 还有更多…

       我想这个周末的顺利部署反映了我们一直在做的工作的成功,但我想在我更加坚信之前看到连续3或4个成功的部署。我们将继续努力工作,我不指望一直呆在一个稳定服务的“高峰”并且接下来的几个月都很顺利,但我们肯定会一直在进步。

       非常感谢您能在我们一直以来生产这个世界上最好的开发者服务产品上给予耐心和理解,与往常一样,如果你觉得我们哪里能作的更好,请联系我们

Brian