00:01
哈,我们的活动现在正式开始。好,今天非常欢迎大家呢来到了我们原生开发挑战赛的直播现场啊,我是本次直播活动的主持人小梁,那我们此次活动呢,是微软点20周年的特别活动,那我们都知道啊,微软点呢在。20年前呢已经发布了framework1.0 20年来呢,呃点呢已经开源了,平台了呢,也于原生了,变成了一个更好的一个开发生态,我们此次举办这次活动呢,也是为了让大家共聚一堂,共同学习,来繁荣我们点的生态。本次大赛的主办方呢是由微软以及51ASX共同举办的,微软呢大家都很熟知了,这里呢给大家介主要介绍一下微软那呢是由微软为开发者构建的一个社区,致力于呢帮助开发者和初创企业了解最新的技术,学习最新的知识,以及结识业界同行和扩展职场人脉,那51P51APX是业内呢。
01:25
最领先的点net学习和源码分享平台,致力于源码商业化和开发者赋能,希望呢,所有的开发者呢,都可以利用无EPX的平台实现技术呃变现以及价值的最大化。那么另外呢,我也想给大家隆重的介绍一下本次大赛的呃战略合作方。集湖同时呢它也是我们本次大赛的唯一源码托管服务商,那集湖GILA是提供开箱即用的开放式一体化安全develops平台,同时呢从设计到投,从设计到投产覆盖了diss全流程,集活GILA帮助团队更快更安全的支交付,更好的软件提升运效效能,实现develop价值最大化。所以呢大家可以去注册体验一下这三个平台,那么接下来呢,我给大家简单介绍一下本次直播课的一些信息。
02:36
首先呢,我们这次首轮直播课呢,我们邀请了业界的四位大咖。呃,进行五场实战直播,大家可以关注公众号51SP叉去了解我们最新的一个直播直播信息,同时呢,可以扫描一下呃,我们屏幕上面的二维码,加入我们的直播群,我们会在直播的过程当中呢,会在直播群当中进行抽奖,同时呢,在直播的过程当中,大家如果对直播的内容有什么疑问的话,可以在我们的社群当中进行提问,会在课后的时候会收集两到三个问题,让我们的讲师呢现场呢进行一个答解,那我们本次的直播课呢,会在CSDN私否哔哩哔哩以及腾讯会议,同时在微软的以及我们的51X的视频号上同步直播。
03:38
好,下面呢,给大家隆重介绍一下今天我们的。主讲老师梁同明老师,梁同明老师呢是微软最有价值的专家,同时呢他也是华为云音的MVP,并且呢他畅销书深入浅出ASP点,那么下面呢,我们就以热烈的掌声欢迎梁老师出场。
04:04
哈,梁老师。呃,哈喽,你好。好,我把屏幕交给你了。啊,行好的。杨老师,你那边开声音。啊,你好,我这边还是提示说大人正在共享,我共享不了。你稍等一下。现在可以吗?
05:09
OK的,这边已经看到共享了。杨老师,你没开声音?哦,这边共享了,然后PPT能看见对吧。我现在看见的是你的。VS。后面一。OK,应该这样可以了,可以了。啊行好的,然后呃,这边呢,我就正式开始了,然后刚自我介绍的话,然后主持人介绍过了,然后我就跳过这个环节吧。
06:01
然后同时因为我今天准备的内容可能会稍微流水线要长一点,因为今天其实我是想更多的说给大家分享一个比较呃小型的一个云原生的一套流程,呃,所以说内容的话就是比较比较多一点,然后呃核心的重点呢,其实还是在这个S和blender这样的一个呃顺利型的一个DEMO,但其实你是可以改一下的话,你其实是能改成呃你们公司想用的一套比较比较中小型的一个解决方案的一条流水线,然后大概讲一下今天的几个流程吧,第一个的话是我会做了一个的一个项目案例,然后整个的案例的话,我会放在getthub上面,然后会使用github里面的流水线的形式,然后做一套比较完善的。一套自动化,自动化的一个触发的一个啊,自动化发布整套流程,包括编译,然后包括发布,然后中间所有的环节都会使用这个多块来进行完成啊,包括中间的负载均衡的一个案例也会涉及的,然后最后的话就是说我发布到我们自己的Linux的一个虚机之中,然后这里看到有个标红的地方,是在于我本来之前没有把这块完全做完啊,刚刚刚刚,呃,开奖前半个小时才把这一步全部做完。
07:17
然后整个技术链条的话,其实是蛮多的,会使用到这个Le,然后点ne库和这个多卡,然后还会使用到呃,容器镜像仓库,还有这个get up的这个流水线的一个工具。然后呃,在正式开始之前的话,我们先来介绍一下整个点内平台的一个引进,然后从目前来看的话,我们目前今天给的DEMO,我今天做的DEMO也是基于点所做的一个DEMO案例。然后点内六的案例的话,我们从它的发行版本版本上来进行回顾的话,从我们来看一下,第一个版本的话,是一六年的六月份,从点内的扩1.0,那个时候大家更多拿点内扩做一点简单的中间介,然后做一些简单的呃内容,然后完了之后不会把它做到比较深入的一些服务中来,然后在点内特括一点一开始的话,我印象中是有一本国内的一本书开始正式在我们大家视野中能看到,这是这这是我印象中比较深刻的一个印象。然后2.0的话,应该就是大家开始比较规模化的在开始使用点内的扩的版本,也就是一七年那个时候其实也是,呃,微软这边也是正式在社区或者说在国内比较大规模的开始推广点内的开源这个事项。
08:44
然后点内或2.1的话,应该就是大家已经开始频繁的接触,如果说你对我了解多一点的话,可能涉及到APP这个框架的时候,我们也是从一八年开始的时候,在国内开始就大家开始非常广泛的进行使用,很多成熟的案例也是在一八年左右涌现出来。
09:02
然后2.2的话,其实也是我目前在B站上播放量好像快达到25万的一个啊,一个视频合集也是用点内库2.2做的,然后当时是一九年录录制的,然后在一九年的话是基于点内扩3.0,那目前大部分来说,大家的版本都会停留在3.0和3.1上,然后到一九年的时候,也就是在3.1,包括我的那本书也是在一九年之后发布的。整个内容其实来看,从现在的时间轴来看,3.1距离二点呃,点内六的时间轴都不长,但基本上来说,从三点一开始到点内容六中间基本上来说没有太多的破坏式的升级,而且对于大多大多数项目而言的话,点内或3.1到点内六之间基本上来叫无缝切换,只需要升级一下,对应的C下的语法堂和点内特,呃六中间一些基础的一些变换语法,那包括今天我提供的这个点内那个案例的话,基本上来说。
10:02
我基本上是无缝升级,基本上只改过短短的七八行这边的一个底层的或者基础的这个中间件和配置结构文件,其他我基本上都没有做它的一个调整,也是能够兼容3.1的一个写法,所以从兼容性上来讲是没问题的。然后就讲到点内五这个版本,点内五这个版本是比较好玩的一个版本,嗯,因为大家在点内五呢,它的时间生命周期比较短,然后到目前为止,我们能看到在今年之后点就会停止更新,它的版本呢就更多,就像是一个方面,大家能够快速过渡到点,就有点类似于说大家先用着,然后到点0.6这个更稳定的版本来进行使用。然后在点内五的时候呢,微软正式的提出了统一的一个点内发展方向,但如果其实你有印象的话,或者是比较老的开发工程师的话,你可以去回顾一下一七年啊,微软已经提出了一个点内测统一,呃,持续进化的一个平台,那其实我们看下来,他花了接近四年到五年的时间统一到了这个点内五上来。点五主要统一于两个层面,一个是点内的firework和一个点内扩,它将整个点内firework4.x的版本到点内或3.x的版本之中,呃,用户使用量基数最多,然后基于开源生态以及社区投票数最多的一些功能点,包括以现在服务于大多数市场上最新的一些内容,都合并到了点内这个版本。
11:33
然后就是我们提到的今年所发布的点NE6这个版本,也就是在我们啊,应该是准确来说去年2021年11月份的时候,点ne6.0这个版本正式发布,那发布完了之后呢,其实呃,社区里面的小伙伴就踊跃程度很高,尤其从国外6K的下载量上来看,点那个六版本发布之后,大家升级的热情是非常非常踊跃的。然后从性能层面上的话,点内6.0的一个发布,对于EF的性能整体提升是最优越的,它提升了接近92%,也就是说之前大部分开发工程师说要考虑到性能,或者考虑到一些呃,特点性,然后考虑到一些自己的原有的一些,就不迁移的角度上来讲,在吐槽EF性能不差不好的这个层面上来说,基本上已经没有这种引用了,更多来说,可能就是说EF对于国产数据库的支持不是算特别的好,比如说我们的这个泰迪B,或者说这个呃。
12:29
呃,国内的这个这个这个呃,国产的一些数据库呃,不是很好,可能就没有对应的SDK,这个就需要我们国内的社区进行一个完善,那另外就是C下10.0语法的一个支持,然后如果大家去看一些比较基础性的一个点六的DEMO的话,基本上我们能看到它已经脱离掉了一些方法和一些类文件的一些存在,它这是使用C,呃,C点零的一些顶级语法所做的一些支撑。然后同时的话是呃点开那个C加入了热重载,当然其实前段时间因为热重载这个功能大家也吐槽的比较久,然后同时的话就是加入了这个云监测增强,那这个的话其实就对于说不使用呃多块这个容器化技术的时候做了一个增强,比如说你使用了多块容器化的话,关于这一块的知识其实呃呃有用,但并没有那么使用,那接下来就是这个布,那布其实是在这两年来说微软投入的精力最多的一个项目吧,在我我印象中本基本上是从点内的3.1 5.0到现在6.0,做了很多大量的一些比较大功能的一些调整啊,同时也是让前沿在保组件及开发工程师里面的话,他们其实也是采成采的最多的一最多的一些工程师。
13:45
然后就是我们的反编译A2反编译的代码它更变得比较强大,然后同时的话就是我们点六这个版本是一个非常长期的版本,也就是说它能够支持到2025年,但其实因为哦,因为我是MVP嘛,所以说看了一下点内特的road map上面来讲,基本上从点内特六开始不会有特别大的一些破坏式升级了,所以说到后面来说,大家使用点的版本跟升级更多,可能就像微信一样,你稍微点一下更新,它就更新完成了。
14:16
然后这也是我刚今天也给大家所带了一个案例上面的,我当时从点那个3.1直接到点6.0,改了一下项目文件中的版本号,基本上就做完了。然后差异的变化的话,其实是呃,今天比较想大家分享的一些细节了,首先是整个点net framework上面所包含的内容,我们在原来点那firework的时候,会把它拆成点那的firework,然后用大家用的最多的是MVC和web forms,然后同时会在点那五之后推出的we ipi,用于前后端分离的一个场景,然后后面是为了做实时的话,提出了C个那在点那扩之下的话,这些其实已经发生了一些。较大的一些变化,首先是他提出了点扩,重新设计的一个。
15:04
机制和一个重新设置,一个调整,然后也就是我们能看到目前来说,包括今天提供的案例,然后以及将点那Co和MVC进行了一个合并,呃,原来的话其实更多是web ipi和MVC是两个不同的API,然后在点那个扩,点扩之后他将它合成了那三格拉做了一个呃保留,然后完了之后,呃,准确来说如果不出现,大家更可能理解web form是page是的一个升级,那因为本的一个出现之后,导致reason page,它的生命周期非常的短,然后很多人,尤其是现在在非VN技术以外,又view或者安拉react的这些技术选型上而言,所以说react page几乎在社区之中与实际使用的项目不算多。然后还有就是GRPC这个新的一个通讯形式,但RPC现在其实在用的比较多,它的场景呢,更多是希望替代掉原有WCF这样的一个场景,然后从这里能看到这边它所对应到的一个场景的一个隐示线,那在点内的5.0~6.0的变化的话,嗯,说实话变化不算多,因为所有的内容基本上就是按部就班在做。
16:17
然后这样的话,就是说从更,就是说很多人都觉得说从点内扩升级到点六,这个变化不算多,或者升级比较平滑,也是在于说最开始在从点内的扩,2.0~3.0之间做了一些比较多的破坏式升级,其他的几乎没有什么变化。因为底层已经固化下来了,这里大家可以看一下一次所对应的一些点。然后我们今天就是聊了一下这个DEMO嘛,因为今天在讲,其实我们就更多在探讨的是一个说,呃,大家如何开发一个web的一个应用程序,然后web应用程序的话,我们在市场上和社区选择的语言会非常的多,我们的Java,然后甚至和Python或者说PHP这些都是有的,然后完了之后所对应到的技术框架其实也会有很多,前端有三大对吧,然后后端的话有考虑到不同场景下网站,大网站,微服务的选型,技术选型下不同的内容之下,然后有很多很多的这种技术框架。
17:19
然后这些呢,其实都是一些。每个公司或者每个人基于自己的成长历程,然后技术选型或者方向发展之下所对应到的一个选择点,然后无非到最后的时候就是说看自己所运营的怎么样,比如说像我自己做的APP的官网和用book的官网,前端还是使用的是认证配置,然后后端使用的是这样的一个形式,然后点版本,也因为这个项目不算大,所以说还是保留在点版本之上,也没有点。然后在做开发选型的时候,我们基本上会考虑服务端跟前端所做的一个调整,然后其实大家能看到,当选择很多的时候,大部分公司因为因为技术实力,或者说技术选型像来说,包括如果从入手程度或者说技术推广程度上而言,大部分选择项的话,基本上就是类似于像乐高积木一样拼凑而成,对吧,C下普连某一个C下安拉C下。
18:17
React或view或者Java对应到不同的内容,但其实你真从一个纯语言开始发的情况也比较少,你核心大部分考虑的场景还是说通过各种各样的框架,比如说你在下之中自己搭的框架,或者说网上找的框架,Java的话可能是spring cloud PHP PHP或者的话,因为这个我涉及不多,但的话我看到也有一些框架出。这样的一个做调,做这样的一个内容,但其实一个点就是在于说,呃比较呃年纪比较长的吧,因为其实我我因为我卖书嘛,然后加上出的一些视频课程,我能够看到我的购买我的书籍的人群和看我视频人群,大部分年纪都在40岁往上的,所以说他们其实很多时候的一个诉求就是说不要给我那么选择,能不能用一种开发语言或者框架就可以满足我在服务端和客户端的一个开发,包括我们这两年一直在做有关的项目,然后很多时候我们的开发人员其实他不懂和安react,甚至压根就懂HM和CS,所以对他们而言其实是很痛苦的。所以说他们更多场景的一个想法是说,你不要我那么多选择,你就包含在一个解决方案生态里面。
19:31
所以这也是为什么我们在包括我在内也会说,觉得说的一个出现是比较好的,所以说。但其实你不选择本,就像包括我们提到的MVC和对应配置是可以的。所以但是今天我们要聊的一个点就是在于说,当一种语言满足所有的开发需求的一个点,就是在于微软它做了一个非常强大的一个事情,就是所有的环节,它只使用了C下这门语言,在服务端和客户端进行所有的一个执行和一个内容,然后同时在做复杂的效果和动画层面上的话,它不用再去学习javascript的语言或者框架,然后以及各种各样的一些呃,组件中间键,然后完了之后子组件之间通信,甚至像比U里面会提出状态机,然后在安格拉里面,然后它也会引入各种各样大大型的这种,嗯,后端的大框架的设计理念进来,然后让整个学习的生涯变得很陡峭,对吧?但其实重点就在于说,大家会提出的是览器,它只能理解这个javascript,他只能理解动这样的一个操作,它不能够去理解C下这样带有编译性质的一些语言,对吧,它更多说浏览器只能执行脚本性的文件,你C下这种需要编译后才能执行语言,浏览器是无法进行执行。
20:44
所以这个时候。核心就是让浏览器在C,呃,核心让浏览器执行C下语言,那在这里面的话,就是涉及到它核心做的一个非常好的一个点,就是他把em做到了里面来,所以他牛就在他把em。
21:03
集成到了呃,这个本来的框架里面来,而C下只是使用这个框架去执行这个业务和驱动的一个作用点,We可能大家不是很了解,然后他呢,其实是非常好玩的一个点,我可以给大家开一下这个浏览器,比如我们搜一下B。网速比我想象中要慢一点。
22:05
呃。对,大家可以看到这个页面的话,Web类它有一个非常好的一个内容,就是它能将整个web g交,包括像这个所有的大分的元素渲染到我们的这个浏览器上,然后这里面是web官网所提供的一个坦克大战的一个案例,然后在这里面大家能看到他基本上是把一个Unity已经跑在了页面上了。呃,可能我现在看的看的内容有点多,他可以去看那官网,你可以在他的官网上面,你玩一个坦克大战,而且是双人对决的一个坦克大战的一个案例。呃,但现在现在因为我内容已经爆了,因为今天开了直播软件,大家可以自己去搜一下,玩一下它是可以的。
23:05
那它的一个特点呢,其实是比较多的核心的一个点,就是在于说他所提供的性能是非常非常强的,然后在这里面的话,能够看到它提供的这种,它的下载速度更快,大家能够虽然说虽然说能够看到我的这个浏览器虽然是爆掉,但是你们应该能够明白。我看一下。看一下进他的这个网站能不能进。就是因为我浏览器员我就不做演示,大家可以了解,然后二的话,它其实就是解决了这个最大的一个点就在于呃,它能够将我们所有的客户端的业务,所有的场景都放到我们的浏览器上进行执行,那的话,它为了解决到一个安全性的一个问题,他提出的一个基于2EM这样的一个箱形式,这样的一个内容,那这样的话就是说我们所有的呃语言都使用c help进行编译,然后编写,然后编写完了的业库全部运行在浏览器之中,然后通过浏览器来运行这个S这边语言。
24:14
然后在这里面的话,它和这个怎么来说呢?它的它的在浏览器下层的时候是web symbol这样的一套沙箱,沙箱之上,然后在执行这个W这样的一个开发出来的一个应用啊,这个就是属于是。的一个特点,当然呃,除了呃C下这边以外,包括我看到C加加和这个,他们最近也有we森一些解决方案出来,但可能离实际能拿来做应用上面来说还是比较远的,但也不叫远,可能就是说它的开发周期会比较长,它不能够做一些应用场景或者应用开发,开发起来比较痛苦,比较慢,像各语言一样,你要来做业务系统开发,因为一些框架或者一些基础的一些应用层级解决的方案比较少,是比较痛苦的一个过程。
25:02
那blender的话,它会有两种托管形式,那第一种就是提出的这个w symbol这样的一个托管形式,那这个形式呢,其实就和安和view和比较像,这也是使用我们经常提供的w asm这样的一个模式,然后这个模式的话就更多是s span就更多就是说你提前下载之前,你要把所有的项目的HTMCSS和JS文件呃都下载到你的浏览器之中,同时一般来说下载一次的话,大概时间周期会是看你项目大小,如果项目大的话,会达到几十兆都有这种可能,所以说一般来说的话,如果你没有这种强离线的一个需求的话,一般来说不会用这种情况的一个出现,那这样的一个好处就在于说,我不用去和我的后端做交付,也就是说我如果说只是涉及到一些比较物联网这样的一个场景,使用这个模式是非常非常合适的,那另外一种其实就是banana service的一个模式,那这个模式的话就是非常好的一个模式,它内部的通信通过S来进行这种实时的通信。
26:02
而且的话,他会提前将所有的数据在服务器端渲染好,他就是说和我们目前使用的MVC和认证配置一样,他照顾了SEO这样的一个特点,所采用这种形式来做,包括在LT渲染上也会比这个形式好,因为你做这个的话,其实和我们基本上不会去下载太多的页面和这个元素到我们的浏览器之中,加载速度和响应速度也会比较快,待会可以给大家看一下,我们今天提供的DEMO也是使用的是server这种模式所加载的。然后周边的生态的话,其实是蛮多的,包括我们国内其实有两个我是非常看好的,一个是design这个lender的一个插件,另外就是啊广播所做的Bo drop of blander,虽然我都没有去实际的用到一些真实的项目中,那平时做一些DEMO,包括我去看他们的API,包括我去看他们折腾一些细节上的话,其实两个都比较多,但两个他们两个项目的一个发展形式不一样,一个是呃,本来我从我的角度上讲不是这个版本呢,就是更多就是说适配于级层级项目,然后安呢,可能就是顾到大家有一些原来使用或者安或者联网场景的项目要多一些,所大家可以选择,那另外的话就国外也做了一些啊场景,但除此以外的话,会有一个仓库叫的,大家可以去搜一下这个仓库,里面也有蛮多好玩的一些项目。
27:29
然后呃,今天提到我所说的这个比较,呃。一个点就是我们的这个云原生,那云岩生的话其实就是说呃,更多从今天角度上来讲,你说今天提供的DEMO是把云岩生所有的呃内容涵盖进去呢,不不太现实,但我今天做了一个点,就是说可以带大家玩一下。那虽然云延生他其实核心的点就是在于说,呃,他想要快速的部署和快速的收缩,然后完了之后呢,能借助很多自动化的工具,成千上百台的容器和节点进行这个维护,因为靠人去维护,呃,两三台四五台这个项目和这个节点就是尤其在集群化的话是有可能的,但是如果说当你的一个节点达到了这种几千上万甚至上几十万的时候,是不太可能的,你要想到比如说像这个。
28:20
嗯,我们提到比如说像特来电这家公司,他们虽然说做充电桩的,但是实际上来说,他们用的技术点,然后也是点内测,但是他们实际实际上在所有的节点集群,然后包括这些API的管理上来说,你说如果说不采用这种快速部署的形式的话,基本上是没得玩的,然后靠人肉去部署和维护,很痛苦,而且很容易出错,所以说这个时候就是随着现在的发展来说,到了云生,但是云生从我的角度上来讲呢,他更多是一个各大云厂商的一个阳谋啊,就是说当你觉得用的越少用的越好,后来你发现迁移的成本和实施太大的时候,你就固化在我这个平台上了,那云延生的话,其实呃,最大的一个要素呢,就是四个要素,其实它就涵盖了说微服务容器化和develop和持续交互,那微服务呢,我为不完全算是云原生里面的要素,但服务化和这个呃,API嘛,因为其实大多数项目做到后面都是前后端分离,就是管理各个API和服务。其实这个场景下的。
29:21
话也其实因为它的极致是微服务容器化的,其实我认为是云原生里面最重要的一个环节,因为你要真的要实现快速的部署和快速的收缩,没有容器化这个方案其实是很痛苦的,然后带develops,其实这是一个非常好的一个我非常非常喜欢的一个解决方案,尤其是各种工具的套卷,包括刚刚看到那个主持人说这次活动基本上是那个get所提供的一套服务的话,其实啊,我个人其实用的呃,工具用的最多还是也是get label,然直P交付呢,其实这个更多是一个理念的一个。一个一个变化了,它其实是依托于S,然后完了之后配合敏捷开发,或者说通过一些管理实施管理方法论。然后包括像。
30:05
我我我印象中记得这样HS,他提出的一些用户估值地图的一方法论,从而实现整套的持续交付的一套理论,理论值。那develops这个就是我最感兴趣的,所以今天包括今天提供DEMODEMO也是develops的,所以说给大家稍微讲一下,那develops的话应该是从最早它就是将开发和运维进行合并,大家能够在大点的公司的话,程序员是无法接触生态环境的,它会一定会通过,要么是通过人肉去隔离,要么通过管理制的制手段,或者说通过配置化中心进行一个整体的隔离,那在呃,最早的时候提出的这种呃develop理念的时候,说很多其实你管理或者说做部署的时候,你很多环节其实就是可以通过机械来进行解决的,然后完了之后,最最合适的一个点就在于说能让这些。反复操作,无意义,甚至是枯燥的,都过机器来进行解决,所以说或者通过呃工具来解决,然后所以说提出了这样的一个内容,他到了后面,到了中后期,他更多我能够认识到的所有人都讲的都是理念,包括我现在来看,呃,我在带团队这么多年来看,其实也是说也是理念工具已经无所谓了。
31:23
待会我们可以聊一下,然后在里面有两个点,一个是CI,比如说我们今天就是相当于会做一个CI的例子,这个CI例子是什么呢?就是说我不的发布。我的编译后的项目和内容发布到我的docker的仓库或者这种镜像环境仓库里面进行保存,甚至说我每一次的代码的提交变更,然后我都能够更新到我对应到的仓库之中。然后CD就好了,CD的话其实涉及到。集成部署这个环节,当你所有的项目已经集成到一个点的时候,尤其到生产环境,你生产环境不能说,哎,我今天改了一个字段,然后我就发布到我的生产环境,这是令人崩溃的,对吧?这是随时有可能说引发一些安全生产事故的,而且你一旦发布一个项目的生产过程中,那就不是说前端改革页面加一个字段,减个字段,你还会涉及到中间的API是否有变化,你的数据库是有变化,运维人员是否变化,你是否还有一些种子数据和一些内容的一些数据啊要进行集成和一些调整和处理,所以这也是CCD上面所做做的一个持续交付的过程。
32:26
当然如果你的公司把管理手段或者是管理制度所做好了之后,就会衍生出来另外一条就叫持续部署,当然持续部署做的好了之后的话,就是当持续集成和持续交付做好了之后,才能做到真正的持续部署这个过程,但这个的话就是,呃,今天的DEMO里面是包含了这套流程,如果说真要做的话,我可以分享一下我目前VIBP,我们自己内部所开发的一套持续交持续部署的一套完整流程,前提是时间要够。然后完了之天我提到了,我拿了docker来做案例,那docker的一个特点就是在于说,首先它核心解决的问题是在解决环境一致性的一个问题,我认为这是他最重要的一个点,因为我们平时开发过程中永远会遇到的问题就是,哎,明明在我的环境上,明明我的开发过程中是没有问题的,为什么到了你那又不行了,对吧?当我的开发环境迁移到另外台服务器,所有的东西都是一样,数据库是一样的,对吧?然后生产的环境配置信息都是一样的,都是点内的4.6的版本,或者都是点内的括3.1的版本,为什么在你的机器上就是不行,对吧?那多克尔我认为它是最好啊,这个问题给解决掉了啊,当然现在如果说你对多克了解的话,能看到cooper,它也提出了一个自己的容器化标准,目的就是要摆脱掉这个多ER,但其实本质上来说,他们都是使用了容器化这个技术,当到这个维度上来讲,你就无所谓是使用的是doer,还是使用的是的contain container这样的一个工具了。
33:55
然后CK所带来一个优点呢,就是我们可以看到的,它能够快速的让你能够去掌握一套流水线的一套呃示例,然后同时如果你配合好了你属于自己的解决方案,你能在做自己CCD,包括在自己做快速的做集群和建集群的过程中是最快的。然后呃,我在自己因为慕的网站上面其实有一套多ER的一套局情化的一套教学视频的,就感兴趣你们可以去看一下,然后呃,扯了扯了很多,然后这张图其实是大家去网上搜一下微服务。
34:29
然后你基本都能看到的,然后基上来说是目前来说大家都非常赞同的一图的一个效果啊,才一个X的这样的一个效果,然后这样的一张老图的点就是在于说他做了一个区分,他将云延生告诉他云延生跟八是一个概念,它是一个将四个非常深单独一项都非常深的一个微服务,这条线就是很深了,S这条线也非常深,持续交互这条线更深,然后完了之后容器化它也是一个非常好的一个也非常深的,包括我们去看的话,其实目前来说容器化解决方案的话,已经有对应到容器化解决方案的工程师已经出现了,所以这条线也非常包括你的容器镜像你分几层,每层是怎么做的,如果再遇到一些比较大中型的项目上都会去做的,所以说当这个时候你一个公司要解决掉这些私有化的解决方案不太现实,要么你技术非常好,要么你整个开发团队就是非常的有技术天团,对吧,然后完了之后的话,否则你怎么弄。
35:29
想用这些服务对吧,又没有对应的技术实力,也没有对应到了容灾的背景,也没有对应到了运维能力,这个时候你要么就考虑各大云厂商对吧,国内的三大云,国外的几大云基本上就是这样的行,所以说云原生的厂商来说,他们都不怕,而且你基本上选择了其家,其中一家云,云原生厂商你也很难摆脱的掉啊,当然,呃。呃,对于我而言的话,我们目我们目前公司内部的话,我们买家原厂商都没有选择,当然我们为了解决一些场景,也是选择了一些比较能够快速离走,而快速离走其实在各大云厂商之间的话,你可以选择自建,但其实每一条线都比较难折腾,比如说我们公司的话,我会使用get level配合get,然后做一套,然后容器化解决方案的话,因为默认使用多,当然如果我不用get label,我会使用S,对吧,所以这个时候的话。
36:23
你也可以玩,然后至于说微服务,那是公司的一个情况,如果是互联网公司,你基本上来说,你天生就会被农云云生厂商所绑定,那无非就是你跟各大云厂商怎么谈,那其实如果你使用容器化解决方案的话,在考虑到CDN一些各大节点建立的过程中的话,你其实是还是有机会说摆脱一些云验证云厂商的一些内容点的。然后我们聊一下今天我们要的一个内容吧,就是一个项目的一个迭代的一个过程,然后从一个项目迭代的一个过程之中的话,我们这个的话应该是对大家而言都比较熟悉需求去开发,然后完了之后测试,然后到发布的一个过程。
37:02
然后。这四项完成了之后的话,我们把这四项如果说能够高质量的运转起来的话,也就是说比较广义上来理解的一个过程,就是持续的集成,持续的发布,这样的做的话,就是更高效率质量的一个提供,大家所交付的一个快速度。呃,然后我接下来讲一下这边的一个代码,提供代码之前的话给大家说一下我目前的一个项目的案例的一个结构,这个结构的话其实是比较简单的,就是一个非常单纯的一个,甚至连三层架构都不算不上,我就是将核心的一些公共类提了一个出来,然后建了几个项目点在这儿,然后完了之后做了一个调整就是。整个的,呃,迁移文件和这个EF的一些连接池,我放到后端去,然后完了之后启动类,然后在整个后端做了一个学生的一个管理端的一个内容点,然后大家在看到的话,在这里面是能够看到我建了一个串,然后建了一个产量在这放着,然后在开发环境下也做了一个区分,然后在web层面的话,是不用让它去连数据库的,因为它本质上来说,从我的维度上来讲,它更多是一个什么呢?它更多是一个客户端,它就是类似于像我们前后端分离项目的时候,它是一个前端项目和一个后端项目的一个客户端。
38:20
然后这边让一下这个项目。呃,因为这个涉及到同时要启动两个呃端,一个后端,一个我们的门户端,所以说我这边就直接让一个就可以了。直接就同时让两个项目,嗯。哎,我忘了看我今天数据库没有打开了。问题不大。那OK,这个是能够看到说这是属于是我后端API的一个效果,然后所有的后端的数据库都在这边,然后门户的话其实就是。
39:07
哦,挂掉了看。然后门户的话,其实就是在这里面能看到我这边留了一个ID为一的,我可以直接快速的将它删除掉,然后在这里面的话I就能看到,就是说,所以说我这边大家能看到整个界面来说,其实更多的就是一个门户的一个内容,然后这个门户的内容我也做了一些调整,比如说我现在在本地运行的,大家能看到我直接本地的点ne的版本所运行的内容,我服务器的名字就是我这台电脑名字,当然我现在的一些配置信息都能读出来,但我也做了一个判断,是否为容器化,但前期是不是,然后完了就是会容器ID,这也是作为今天一个DEMO做一个演示,然后整个代码的话是放在了get up上面,然后大家可以去。
40:03
呃,去下载,然后在这里面能看到,如果你记不住这个名字比较长啊,你可以进进记住这个get的扣缀,就是因为然后放过来就可以了啊,包括然后整个流水线的信息也是做了一些长链接,能够看到话,我一个小时之前才把所有环节配好,因为呃,上一次get action已经是差不多半年前的事,他这一次API有些调整,所以做了一些整合进来。然后这一次的话,呃,做完之后的话,做了一些负载均衡,然后还做了web和监控一些信息,待会我们发布到我们的流水线上,然后给大家看一下,然后大家能够看到说在这个项目里面也提供了一些。啊,一些验证,比如说它的性,它会比我们原有的认证配置高很多,大家能够看到说在这里面呃,做了一些效果,包括它的一些双向绑定的一些机制和一些内容,包括在这里面我也做了,要么是离开,然后要么就是实时的,然后同时它会有一些啊单向数据流的,就是你只能改变单个框的这些DEMO其实都是有的,包括还做了一个简单的聊天的一个功能。
41:13
然后这样来做,然后。啊,比如说我在这里面写一个。一般来讲的话,在这里面做了一个,然后完了之后这边DEMO就是这样的一个技术,技术点,它因为它下层都是用的是,所以你在做很多天生做这种双向绑定机制的时候,你会发现用lender去做是非常好的,但是它的一个特点就在于说,比如说我至今没有见到比较好的这个什么东西来呢?叫工作的一个组件,那这个的话其实就涉及到需要投前端人员去做这边调整和开发,包括表单的一些和内容的验,我其实都在这里面做了一个,所以整个内容来说基础性的,如果说你的项目里面没有涉及到工作流。其实我认为会比大多数你看到的和都会比较优秀一些点,尤其我刚才提到其实国有一些比较多的组件和插件,也欢迎大家去了解。
42:10
然后完了之后,我这边做了一个内容吧,然后我们改一下这个代码,改代码的话其实就到了,呃,一个点就是在于我们要演示一下我的整个完整性,那这完整性的话就是涉及到有几个内容,我们首先来讲一下这个docker。首先多块的话,我这边没有用集群,因为今天时间也比较短,所以说我今天使用了一个单机编排的都是,然后用这个的话,就是说你其实你可以拿到这个项目,你直接在你本地所运行一下。啊,如果你会多。都如果你会docker的话,你直接在本地运行一下这个。呃,运行下这个do,它就会自动去下载对应到的容器镜像,然后完了就在你本地启动一个起来,然后了对应到我也放了我自己做的这个S这个库和这个load balance这个库,然后大家都可以用它进行完整一套,所以其实前置工作类其实是比较漫长的,也是链条比较长的,所以你还要将前后端所有的库全部要打通,对吧,全部要做好,所以说这个环节是比较呃纠葛的,但其实你包括我的。
43:22
呃,Fair文件是怎么怎么构建的一个过程,然后在这里面都有一些比较清晰的写,然后都升级到对应到点成6.0,然后在这个环节的话,其实你可以把这套东西拿去,呃,简单学一下一些多有关的一些基础的,就觉得你就能够上手,包括我这边也加了一个的一个检测。啊,我认为是没那么难的一个内容,然后剩下接下来就是做它的develop,然后develop的话,我这边啊,好玩的一个点就在于develop其实用的工具是蛮多的一个,就是今天所用的工具是get getu的action,那giu action其实本质上来说和action都是一家啊,因我我们我看他与法非常非常接近啊,我甚至怀疑整个get up action的团队已经并到了bos,或者说两个事业部,然后的话是大家比较老牌的,但这些工具,呃,杰S的话,呃,以前不好用,现在听说好用,但我已经很久没有用了,然后虽然就是专,呃,专,然后专我用的不多啊,然后我用的最多的还是get的一个action。
44:26
然后比较完善的流水线解决方案,其实也是在用的是这一套。比如说你我们用好的不同的版本的流水线,你编译的前端,然后甚至UI端,然后甚至会有一些迁移文件等等一些目录发布,然后你发布的过程中,你发布到正式环境的,发布到开发环境的,然后发布完成之后,你对应到不同的出发的一些六个的包和点,它都会需要做一些调整和一些实施的一些措施点,那这些其实都是一些非常需要通过管理手段去进行的,因为工具呃大家都会用,用了之后怎么做成一个符合自己项目和调整的,其实是另外一个。
45:07
呃,需要团队之间进行相互沟通的一个环节,所以说在很多公司的时候,包括很多培训机构,然后我认识到一些企业解决方案的时候,他们在聊到打Bo的时候,跟你聊一种文化,就就是这样来聊的。然后在这里面的话就是说,呃,从自建的角度上来讲啊,我今天玩了一下跟他,我跟ner自建的角度上来讲,还是它的整个成本是最最低的,当然真正正最低的就是啊,但其实看你情况,如果你不做集群的话,最低的还是集,因为我会考虑到我会有集群的需求,因为稍微大一点的公司都会集群需求,所以说还是会使用get label runner是比较相等。好,我们来看一下,就是整个代码已经放到了在这里面,然后在这里面的话,我这边所做的一个脚本的话,它反正get呃的一个。调整的话都会统一放到了在这里面,这里面我做了两个流水,两个脚本的一个工作流吧,然后其实从他的角度上讲,应该从真实的角度上来讲,应该类似于做成像我这样的一个工作流,那今天为了方便大家快速理解,所以说我做了两个工作流的一个出发,但为了让脚本触发起来更简单,所以说我今天呃提供的内容也更少,就直接是在慢方法上面做了一个调整。
46:24
然后在这里面话,就是有一些名称是可以随便调整,我们先看一下do net,比如在这里面的话,它是有一个do ne build一个名字,这个是用于flow,然后对应到的一个触发性质的话,就是大家能看到getup上面它的分支是慢分,然后它。然后在万分之上面有合并请求触发和这个push推送触发,然后接下来就是你使用到的要用它编译到的服务器,默认的话现在都是to了。然后中间的话,你会用一些action的一些操作台,然后你是否需要安装使用到对应到的ne的一个SDK包,然后对应到后面的版本号,那在这里面我只大家能看到,我只做几个事儿,第一。
47:05
还原包一二,编译包第三,我运行一下对应到的测试啊,当然我因为没有写单元测试,所以说只是模拟一下这个命令,然后就是发布它到对应到release的,呃模式下面对应到DST文件夹之下,就只做了这么一个事。然后呃,我可以在。嗯。然后在这里面的话,待会儿我们可以运行一下,我尝试一下。嗯,好久。嗯。理论上来说,我不应该干这种线上改脚本的事。然后我们可以运行一下,待会看一下运行下来的一个结果,理论上来说会增加这个DT的文件夹,然后我这边做一个第一步的一个尝试,比如说DT文件夹。调整。然后当这个编译推送上去的时候,他会去执行一个一个动作。然后我们可以在。
48:02
在这个action里面也是它的之中,然后能够看到。然后在这里面的时候,能看到我刚取名叫点build的一个动作的一个,呃,动作已经做了,然后在这里面的时候能够看到说它已经正常的开始在进行编译了,因为只有一个build的一个内容节点,就是在这个jobs,它只有一个job,但你其实如果愿意猜,你可以猜的很细,你可以无数个step出来,但是我们在下一个内容是放了一个,然在这里面我只放了一个,然后在这里面的话,又将每一个step又拆的比较细,然后能够看到在这。然后输入一个L这样的一个。嗯。命令出来,然后再给他,呃安上面其实他有个好的点是在于他做完所有的环节之后,他会给你做一个内容度的一个清理,它会给你清理到这个内容点,所以说它其实会会让你的这个项目更安全,不会说把你的一些虚拟的一些缓存信息,尤其我知道很多人他会把一些自己生产环境的一些信息放到自己的仓库里面去,所以这个其实在于说get啊,上面是做的还非常好非常好的一个点。
49:15
然后接下来就是我们提到的这个docker,那这个场景就稍微要复杂一点点了,然在这里的话,我做了一个点就其实就是取名叫多克了,然后在这里面他做的事儿就蛮多的,首先就是说我只允许在push的时候进行出发,但push我就监控了整个man的一个触发,所以我只在慢这个。分支下面的负起事件发生的时候才会去触发上游的这些动作,那这些动作就是说迁移我对应到的这些仓库的代码,然后完了之后我开始编译镜像,那编译镜像的话就是说按照这边所提供的这种环境变量,然后编译成我指定到的一个定向名称,然后会因为这个涉及到前后端分离,其实就涉及到我同学编译两个镜像,一个后端镜像,一个门户带的一个镜像,编译完成之后,我要把它推送到我的镜像仓库之中,那我这里面的话也是使用默认使用的,呃,Get。
50:10
APP它所提供了这个pack包,在这里提供了这个镜像包,所以在这里是直接推送到了它这里面来,然后在这里面的话需要登录,登录的话我为了呃方便,然后就偷了一下栏,直接将那个密钥保存在这儿了,那你不用担心,在get up上面它不会给你明文打打印出来,它所有的script这些变量它都会给你默认给你进行处理,然后同时的过程中,我为了说照顾一些镜像内容点,我在这里做一些环境变量一些替换,然后比如说我在这里默认,其实我是慢方法推送上来,我更多希望说将我的慢方法里面,包括一些tag里面加V等等的一些情况,我把它干掉,然后在这里面我做了一些呃。条件的一些替换,所以说你其实可以拿着它去拿到你项目公实际项目里面去做一些调整,然后做了一些环境边的一些重命名,待会我们可以运营起来的时候,可以看一下,当所有的东西做完了之后,我将它推送到我的镜像仓库里面来,就告诉到我所有仓库全部给你推送完成,推送完成之后我进行部署,部署我肯定要部署到我的云虚拟机里面去,然后云虚拟机里面的时的话,就需要我们进行自建一台一个节点,然后这个的话就是,呃,待会给大家讲一下,然后当整个节点部署完了之后,我使用我的都comp的一个命令,然后将所有的节点全部给行完成。
51:27
然后整个的代码其实量不多,尤其当我写完了之后,你照着这个流程看一下,当然过程中你可能会一些,也不叫太坑,就是你多调试调试,你就会好很多。首先我们来看一下,就是我刚刚做了一个。一个调整,第一个就是整个的build的一个名称。也就是在这个节点之下所做的一个调整,然后我们可以验证一下,比如说我现在是在分支,我切一个D这个分支出来。
52:01
切一个D分支出来,我做一个调整。里面吧,我删一个。代码三。是否?四发。啊,镜像编译。那我对我脚本所写下来的话是。然后这个时候的话,我会创建一个新的分支,那这个新的分支的话,它只会去触发。看一下他什么都不会触发,因为我这边监控的是慢。然后我们可以看到整个action里面。呃,稍等。呃,现在能看清了吗?
53:05
哦,然后就是这个还比较小是吧,脚本命令比较小是吧。应该是我看一下啊好。应该这个就蛮大的了吧。好,然后当整个的。我们跑哪去了啊对,然后能够看到说我的项目里面我们一下。在整个项目里面,我刚提推了一个DV的分支上来,然后整个分支推上来了之后,大家能够看到说。我在人命里面删了一个内容,然后,但是我的action是不会触发的,这是通过一个比较简单的一个一个一个脚本的一个控制,一个手段,做了一个调,做了一个出发,然后这样的话就是以此,呃,就是也不要证明,就告诉大家你在不同场景之下,然后同时这样做了之后呢,就是说我们的。本是OK的,然后如果说我要合一下,我刚触发了一个点,是在说,比如说我把它合并过来。
54:02
从低位分支合到分支。然后在这个环节之中,他会去检查,呃,是否有一些节点是否完成了,比如他会告诉你说啊,你自己所对应到的这些节点,你是否都完成,你是否完成了之后就合并,那完了之后你可以选择是多个合并还是单次合并,那这里面其实对我来说意义不大,如我们合并完成之后就放过来,合并完成了之后过来的话,它都会触发到慢这个分支所进行的一个触发形式。然后完了之后他会丢掉在这里看到能够看到我这边所提供的脚本是当发生这个。呃,慢分支和这个。我看一下。啊,对慢分支所进行触发的时候,呃和这个request啊,这里面没有加request的,如果说触发的话,它其实会丢掉这个多ER这个编译镜像,它会丢掉一个镜像的,但这里面的话不用去care它,但其实也会进行一一些调整,从实际过程中,我们生产过程中来进行处理的话,这个这个地方的规则的话,我更多建议大家是通过request触发,然后编译,然后在慢分制上面,原则上来说不建议大家在慢分制,但这更多是个管理规范上的一些调整。
55:19
然后当编译完成了之后的话,他会去做逐步的,那这个是的一个的一个过程,这个都不用去。去太过于在意它,它的编译会很快。然后这个是我们刚刚所提供到的一个内容点,在这里的话,大家能够看到。在这里面的话,大家能够看到说他在整个会去拉所有的镜像仓库中的代码,然后能够看到说我刚刚所想想打印出来的一些环境变量的信息,他都能够打印出来,然后包括我关注的一些实际上的一些编译的点,包括其实这也是给大家说你平时平时中你是怎么去调的它的变量的一个拼法,一些内容点都会在里面打印,然后同时编译和推送镜像,所有的过程它都会在这里面进行完成是否成功,然后完了之后所打印到的啊定向的T号,然后最后你将它推送到你所自己所到的这些内容点里面来,都会在这里面,然后刚刚也提到的说,我说把密码其实保存在了这,然后你看大家能看到他打印的时候,它默认给你加薪,然后同时说说我在这边是登录成功了。
56:29
然后完了之后,当所有的仓库登录成功,就开始推送镜像到所对应到的这个镜像节点之中,然后大家能看到说这个镜像节点其实就是我们刚刚所提到的package里面。再给大家讲一下这个节点,最后所有的镜像推送节点完成了之后,它会进入第二个步骤,就是deep。进入play的一个过程呢,其实他做的步骤呢,还是第一个是要检查整个仓库是否下载下来,第二个步骤,第二个步骤啊,这里我是做了环境变量检测,第二个步骤就是你要去更新你对应到的呃镜像,因为你每次发布,其实你一定是代码要要有变化的,否则你不会去触发,你要去更新这个镜像,镜像更新完成之后,你再去运行你所对应的镜像,因为在这里大家能看到我这边提示的是呃是重启,而不是说这个。
57:26
因为我已经刚已经发布过了,这个已经不重,这个不算重要,然后在这里其实我最后加了一段命令是在。就在这儿,我是希望他能够把这个这个主编排文件之下的这个容器镜像全部给我显示出来,所以在这里面能够看到所对应到的一个显示的内容,点后,在这里你能看到说你的容器镜像是否会正常,然后接下来就是运行完成,然后整个过程的流程就是这个样子的,嗯,然后我因为已经提前部署好了。嗯,我提前将它部署到了我的这台服务器上,不是。
58:03
一台啊,这台服务器上幺三台服务器。幺三这台服务器的话就是啊,在这儿大家能够看到说。在这台服务器上,我这边是留了这个信息,这个信息的时候能看到说环境信息刚发生变化了,然后在这里面能看到服务器的名称的时候,啊,这个应该是容器ID的名称,就是在这我能够给大家看一下。呃,然后。放大一下。呃,我们找一下这个叫3D开头的,一定会有,就在这儿对吧,然后对应到的也是整个web的一个界面,然后。呃,在这里的话,因为我做了一个调整,是无法去访问到我的。我在我comp里面做了一个调整,是无法访问到我的web的,就是你访问我大家能看到我3001虽然都打开了。
59:00
包括我在我的这里面能看到我301打开的,但是你要来访问我的这个。3001。这个机构是访问不了的,然后3002这个访问也是访问不了啊,能访问的了,这个是我映射出来的,这个原因映射的点是在于说我在中间做了一个什么事呢?我是做了一个网络隔离,也就是我做了一个门户网和后端网,然后默默认暴露给外网,用户所使用的就是我们的客户所使用的网,其实就是这个,呃,Front就是前端那个网,然后在整个前端网暴露出去,你才能给我们外面的人用,那否则的话,你默认暴露我的这个backlog back的这个网也是暴露数据是没有用的,因为我的默认back的这跟数据库绑定在一起的,我所有的这些映射数据的信息内容,我暴露到外网,其实某种影义上是不安全的,然后尤其是官网环境下访问是更不安全,所以说更多希望说这个环境啊,更多就是网络安全方面的一个一一些节点考虑了。
60:00
然后在整个流水线,然后完了之后,我们做一个测试吧,我们把我在这里加了个202,然后。呃,我加一段话吧,就虽然说刚刚已经给大家演示过,我们其实是肯定没问题了。然后就是。呃,祝大家,呃。身体健康啊。学习。工作顺利啊。然后我们再加一个时间。然后。这样一下,然后我们做了一个调整,然后首先把分支切一下。也可以不切切一下。然后我们提交一下这个代码,然后提交代码上去的时候,会和我们刚刚修改的request会进行一个合并,会生成两条,在那里看的话,能整成一个两个的。com的一个记录。
61:02
然后这个时候他就会进入一些默认的一个流水线的一个流程。然后在这里能看到说。啊对,默认会生成一个这样的一个合并的一个分支流。然后会进入这个。进入这个调整。然后在这里能看到我提交的这个commit,然后整个commit完了之后的话,呃,你可以在他提供了一些就是一些项目有关的状态栏的一个选位,也好玩的。然后。在这里的话,它会有一个就创建一个,比如说呃,通过了一个效果,然后完了就被点击的一个效果,因为它有很多状态栏在这里面,所触发了之后,包括你要去监控某一个分支的,比如说我们目前有多少个分支,你要监控哪个分支的一个状态呢?你都可以在这面进行一个呃处理,然后在这里的话,我在me里面是绑定了一个cker,就是发布部署成功的一个呃脚本在这里面,那其实这里面有个问题,因为现在是单机的一个编排,如果涉及到多机,尤其是集群化的时候,你会涉及到你要管理多个后端的web和前端的web的一些节内容,其实这个场景下,其实也需要需要大家去,需要你去花一些时间解决的。
62:29
啊,当然因为这个一个多小时,我不可能能把这些所有的环节全部准备完,那另外就是刚刚提到的我们所有的这个runner一个节点啊,Get他的get up action里面它有几种形式,就我今天提供的这台机器呢,更多是我自己的一台,呃,虚拟机,所以更多时候需要我们手动注册到我们这边来进行一个本地host。然后在这个环节注册之后的话,我才能够将它快速的发布过来,当然有另外一种情况,比如说你的阿里云的,你直接把你的S进行这个账号密密码,然后登录远程登录,然后填进去,然后进行远程的一个执行,但我认为这是不安全的啊,但很多人都选择这种形式进行解决嘛。
63:11
然后完了之后,这也是一个方案,然后刚刚提到的一个tag,我们打一个tag给大家看一下,就是比如说我今天打的这个tag号叫。啊,V1.2.3这个版本啊。就发布了,啥也没发布啊,就这样吧,然后发布了之后大家能够看到。然后发布完之后之后的话,会生成一个新的一个镜像脚本,然后这个镜像。啊。先打太子。然后。
64:07
这块。对啊,为什么呢?什么情况?我。我老了吗?
65:06
啊。不管他了,嗯,不重要,然后我看一下我们应该发布完了。这边已经发布完了,所以我们能看到在这里面我已经持续更新下来了,所以不需要有任何手动发布的过程,然后同时能看到整个容器其实变化了,那其实这样不好,因为好的一个形式应该是我应该在前端生成两个容器节点,这样的话我在重启我容器的过程中,我能保证大家其实是继续高可用的,这样才能够说保证,比如说我有三个节点在这儿,我哪怕我后端的节点在变化,然后我数据库只要是不宕机的,然后我前面大家能够是无感到的,哪怕这个容器ID变化了,但是实际上是不大家是感觉不出来的,这个的话是做DEMO,所以说这边给大家讲一遍,所以其实今天核心的点,其实虽然说在给大家讲云生,但其实本质上来讲更多说云生更多是一个从我的角度上来讲就是。
66:19
呃,中大型公司它必走的一条路,但对于中型公司而言,尤其中小型公司而言,你其实可以基于自己的项目去往这个方向,靠容器话叫divs是最好的一个方案。然后整个今天的代码的内容其实都是放到了这儿,大家可以拍照或者截图,或者怎么样把这张图片保存下来,自己去下载na的源代码,然后从今天的角度上来讲呢,就是说给大家做一个小结,就是说你这边可以拿着它去做一个比较完整的前后端分离的一个基于条件下的一个案例,然后有一个完整的docker和do comp,给他完整的一个可用的运维条件。然后包括我公司一些小型项目也是这样弄,大型项目肯定是用集群了,那可用的get up action,包含镜像仓库和自动化的运维的一套工具的一个内容集都会在上面。
67:08
然后给大家做一个比较完整的一个分享,然后如果你有不太清楚的或者本了解的,你可以关注我的公众号,然后完了之后或者给我留言,然后我们再聊一聊,然后最后就是非常非常感谢啊,这次V要X呃,给我这边一个机会啊,然我有机会给大家,这是一年多没有在社区上露面了啊。好,谢谢谢谢谢谢主持人。
68:23
梁老师的公众号或者。下一节呢,是。预告是在四月。4月9号晚上。半到八点半。呢是点ne。最低落地实战。同样的,大家可以进入我们的社群啊。就是我们的。然后关于我们整个。
69:00
微软点NET20周年的。大家看一下,我们活动报名的时间是3月15号到6月15号。赛事的流程呢?我已经书写在这个PPT上。如果大家要看详细的内容,可以关注右下角的微信二维码。企业微信二。扫一下企业微信二维码,进行详细的了解。大赛的赛事奖励呢,有?以下。以下。一等奖。二等奖。特等奖一名。那么大家呢,如果对我们本次赛事呢,比较感兴趣的呢,直接扫码了。最后呢,我们今天非常感谢我们梁同明老师。
70:00
我们辛苦的讲了一个多小时的课程。同时呢,也希望大家呢,可以关注我们的呃二维码,进入到我们的微信群去了解我们大赛的内容,那么今天的内容呢,就到这里了,我们。4月9号呢,在相会,谢谢。谢谢梁老师。
我来说两句