云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

专属服务器_腾讯云和阿里云哪个好_稳定性好

小七 141 0

持续讨论的主要收获(c9d9)第49集:高级部署模式

在本期《c9d9视频播客》中,我们的专家小组成员包括:JohnHarris,LeftShiftIT的DevOps负责人和解决方案架构师;Viktor Farcic,Everis软件架构师;Flynn,在数据线.io我们自己的安德斯·沃格伦和萨姆倒下了。在那一集里,我们讨论了部署和发布之间的区别,以及高级部署模式和策略,如滚动、蓝/绿、金丝雀、大爆炸、功能标志和暗启动。»部署与发布 如果你想按c9d9上的flynn直播,无需一次发布全部内容pic.twitter.com/b4ocd3vvvf-CloudBees(@electricloud)2016年9月6日"如果你做得对,你可能会做更多的部署而不是发布"@anders_wallgrenŧc9d9pic.twitter.com/ixcxsisnk-CloudBees(@electricloud)2016年9月6日根据@johnharris85 on#c9d9上的@johnharris85,Pipeline是查看部署在生产中执行情况的王。pic.twitter.com/0Cr9HuDgDJ-CloudBees(@electricloud)2016年9月6日Flynn给出了他对发布和部署的定义,并描述了发布在持续交付中的不同之处:"我倾向于认为一个发布版是一个你认为已经准备就绪的软件块,而部署则是你实际实现它的方式……我觉得在每个人都在大张旗鼓的日子里,我们倾向于使用发布作为整理所有有效依赖关系的方法。一个给定的发行版是沙堆里的一条线,每个人都必须遵守一套共同的协议和一套通用的交互模式。在不断变化的世界里,你更需要安排好互动模式,这意味着如果每个人都坚持相同的交互模式,那么你可以在需要的时候随时部署东西,但这也意味着,您不能像将所有人从协议版本1切换到协议版本2这样做。"对于Harris来说,发布和部署之间的区别是哲学上的:"对我来说,这是一种哲学上的分裂,而不是物理上的分裂,我认为it的发布部分更多的是在业务上,这是一种脱节——企业应该能够选择何时向客户发布新特性和新部件,而且应该就这样。部署一直在进行。如果它认为这是一个值得发布的候选版本,而这与部署不同,"一旦进入发布阶段,你所能做的就是做最坏的打算,并期待最好的结果,"Farcic说:"一旦你到达发布或部署的阶段,你的状态就已经很糟糕了,因为你不知道你要把什么投入生产。在那一点上,你唯一能做的就是把头盔戴在头上,希望不会有东西掉到你头上。"Wallgren建议总是在部署到生产环境之前进行部署:"希望您在部署到生产环境之前进行部署。雪花环境和雪花部署脚本总是让我们陷入麻烦。更专注于使用相同的流程,即使您要进入不同的环境,那么在部署到生产或发布时,我们会更加自信地认为它会起作用。"»滚动部署 @anders_wallgren c9d9说,你越能按按钮滚动部署,效果越好pic.twitter.com/7iqffwcsb-2016年9月6日Per@samueldfell-尽早排练部署模式,这样您就不会试图只为prod创建脚本。c9d9-CloudBees(@electricloud)2016年9月6日Wallgren谈到滚动部署的好处和注意事项:"滚动部署的一点是您可以获得零停机时间,这非常棒。你要做的是你必须以这样一种方式来设计产品,这样你就能做到这一点。你必须能够有多个版本的大多数东西启动和运行。当同时运行多个版本时,数据库最终会成为问题。"如果您正在进行滚动部署,请确保预先排练部署,fall说:"在周期中尽可能早地排练部署模式,这样您就不会花费数小时的时间为生产创建一些花哨的脚本,也不会为预生产使用一种或两种sy类型的部署脚本不会测试您的流程。"Farcic提供了他对滚动部署的简单定义:"滚动部署是指运行某个事物的多个实例,然后更新这些实例的一部分。在任何给定的点上,至少有一些实例始终在运行。在一段时间内,您更可能在生产中出现混合版本。"»蓝色/绿色部署 蓝色/绿色部署通常发生在johnharris85的筒仓中pic.twitter.com/xUSGFK36B1-2016年9月6日在c9d9软件发布部署中,@vfarcic认为,一个巨大的整体不适合蓝色/绿色部署pic.twitter.com/YulG55Xg1m-CloudBees(@electricloud)2016年9月6日@u flynn c9d9说,蓝色/绿色的部署在时间上可能很昂贵pic.twitter.com/iVMGKdZT9d-CloudBees(@electricloud)2016年9月6日Harris给出了蓝/绿部署的定义:"蓝/绿是指有两个基本相同的环境,将所有客户路由到一个环境,然后将所有内容部署到第二个环境,我们称之为绿色。然后,您可以使用负载平衡器翻转每个人,例如,DNS指向绿色,然后蓝色变为备用,如果出现任何问题,您可以很容易地将其翻转回去,您可以将DNS翻转回蓝色,并修复任何与绿色相关的可怕问题。"对云中蓝/绿部署的思考,per Flynn说:"即使在云中,有了蓝/绿,你也需要完全部署新事物。尽管在资金方面不必非常昂贵,但它绝对可以安排它,以便部署本身在时间上相当昂贵。如果您要部署整个第二个环境,那么理想情况下,您可以通过某种方式使自己感到舒适,但在将所有生产流量切换到第二个环境之前,第二个部署工作正常。"Farcic:"我非常喜欢蓝色/绿色部署,因为测试。这是唯一一个真正赋予我测试能力的部署。如果我进行第二次发布,它会起作用,然后我会更改代理服务器—这就很容易了。"»金丝雀部署 Per@johnharris85:Canary部署是指您将一个版本部署到一小部分用户,以获得度量并根据需要进行重构#c9d9#IT-CloudBees(@electricloud)2016年9月6日"金丝雀式的部署在巨石中很难做到,"弗林说:"我知道Netflix在拥有基础设施来改变路由方式方面做了很多工作,这一切都是为了能够让一组人来做这件事,他们会导致失败,并确保系统在这种情况下是有弹性的。感觉这类事情在巨石阵中很难做到。""金丝雀部署中有很多移动部件,因此拥有支持它们的基础设施是至关重要的,"Wallgren说:"在应用程序级别上对架构的控制越多,就越容易。你必须有一个支持它的IT基础设施,因为你必须有一种方法来控制流量-不管是让负载平衡器来做,还是让你的DNS来做-你必须用某种方式说我只需要1个流量或者只需要康涅狄格州的人。然后您需要能够运行该独立应用程序。"»大爆炸部署 使用CD的人可能更倾向于按照@vfarcic的c9d9进行大爆炸部署pic.twitter.com/bf6csudkt-CloudBees(@electricloud)2016年9月6日如果你想快速制造出高质量的产品,你必须从战略角度考虑部署模式-@anders_wallgren#c9d9-CloudBees(@electricloud)2016年9月6日哈里斯解释了大爆炸部署:"在大爆炸部署中,一旦它消失了,你就部署好了,你完成了,它就在那里,之后你就不能修复任何东西或担心事情。如果有人对某个特定主题感兴趣,加里·格鲁弗(Gary Gruver)有一次精彩的演讲,他曾是惠普IT部门的负责人,他谈到了他们是如何实现固件的连续交付的,他说,如果我们可以对固件进行连续交付,那么你们就可以做对了。"Farcic说,如果您使用连续交付,那么您可以使用任何类型的部署模式,但Big Bang是最有可能的选择:"在CD中运行的可以是Big Bang,也可以是Canary,也可以是滚动部署。使用CD的人可能是非常传统的,可能更有可能做大爆炸,但不是因为它是CD。"Wallgren将如何对待安装程序与如何对待部署以及为什么需要改变这一点联系起来:"我们经常做的是指派最低级、最讨厌的人来运行安装程序。这是愚蠢的,因为运行安装程序非常困难而且非常重要。问题是,任何想成为安装程序的人都不应该被允许,我觉得在某种程度上,这与某些人的部署模式是一样的——"这是问题所在,让他们去做吧"——但你需要考虑得比这更好。如果你真的想快速、高质量地完成这些工作,那么你就需要为这些事情担心。我们不必担心它。"度量在任何部署模式中都扮演着重要的角色,费尔说:"我们还可以从产品内部查看遥测,它提供了关于性能的信息,以及web人员在执行任务时一直使用的所有其他信息