This commit is contained in:
by931
2022-09-06 22:30:37 +08:00
parent 66970f3e38
commit 3d6528675a
796 changed files with 3382 additions and 3382 deletions

View File

@@ -180,7 +180,7 @@ function hide_canvas() {
<div><h1>10 自动化 CI&amp;CD 与灰度发布</h1>
<h3>环境管理和自动化部署</h3>
<p>当我们从传统开发迁移到 Serverless 下,对于环境和部署的管理思路也会有所不同。当用户转到 Serverless ,可以轻松地提供更多的环境,而这个好处常被忽略。</p>
<p><img src="assets/2020-09-14-095756.jpg" alt="1.jpg" /></p>
<p><img src="assets/2020-09-14-095756.jpg" alt="png" /></p>
<p>当我们开发项目时,通常需要一个生产环境,然后需要预发环境,还有一些测试环境。但通常每个环境都需要消耗资源和成本,以保持服务在线。而大多数时候非生产环境上的访问量非常少,为此付出大量的成本很不划算。</p>
<p>但是,在 Serverless 架构中,我们可以为每位开发人员提供一个准生产环境。做 CI/CD 的时候,可以为每个功能分支创建独立的演示环境。</p>
<p>当团队成员在开发功能或者修复 bug 时,想要预览新功能,就可以立即部署,而不需要在自己机器上模拟或者找其他同事协调测试环境的使用时间。</p>
@@ -189,7 +189,7 @@ function hide_canvas() {
<p>后面的课程我们会了解到,借助于函数计算平台提供的 Funcraft 工具,开发人员可以用从前做不到的方式在准生产环境中轻松部署和测试代码。</p>
<h3>灰度发布</h3>
<p>由于 Serverless 提供的弹性机制,没有访问量的时候能自动缩容到零,极大地节约了部署的多环境的成本。然而在同一套环境内的多个不同的版本也可以受益于这套机制。</p>
<p><img src="assets/2020-09-14-095757.jpg" alt="2.jpg" /></p>
<p><img src="assets/2020-09-14-095757.jpg" alt="png" /></p>
<p>传统应用虽然也支持在一个环境中并存多个版本,但相比于 Serverless 更加困难。首先每个版本都需要相对独立的运行环境,会消耗更多的资源。其次需要解决多个版本之间流量的分配问题。</p>
<p>在 FaaS 上这些问题已经被版本和别名机制完美的解决。由于没有流量就不消耗计算资源,所以发布一个版本的成本极低,每次发布都可以形成一个版本。然后通过别名进行版本的切换和流量分配。</p>
<p>基于 FaaS 的这套抽象,让灰度发布和 A/B 测试变得非常的简单。不再需要像 K8s 那样复杂的基础设置,开发者也能轻松地享受到平滑升级和快速验证的高级特性。</p>