00:00
好,接下来呢,我先给大家演示一个项目上一通,这个项目呢,将是我们采用davids整个自动化流水线技术来部署上云的,区别于我们以前部署了一个若伊cloud,这是一个后台管理系统,我们从手工部署的。而这个上一通项目呢,是来模拟我们网上来进行医院进行挂号的,比如这是我们上一通项目的前台,这也就是用户端,用户端呢可以通过我们这个网页,当然这个手机APP呢,我们就不部署了,这个网页里边呢,可以我们来选择一个医院,比如我来选一个协和医院。我在这呢也可以搜,我来选择北京协和医院,搜到医院以后呢,医院这些所有的科室我们都可以看到,那这些科室呢,都是对接医院系统把这些数据呢同步过来的,所以这个数据呢也是存到我们数据支撑层,我们可以来看一下项目的架构,这个项目架构呢,数据层会有my circlel、芒、DBRAMQ等一堆,而我们这些医院的数据都是存在Mo DB里边的,所以我们在这呢会看到所有挂号的科室,比如我想挂哪一个科了,随便点一下,既然你可以用你的手机号来进行登录,获取验证码等等,登录进去以后呢,就进入到了我们的整个挂号平台,当然我们所有的这个科室,你想要进行预约挂号,提前是不是得有我们医院有排排班,所以我们医院呢,可能排9月13号,9月13号呢,几点到几点是哪个医生值班,几点到几点值班,那么医院呢,整个呢,挂号的后台系统是我们的这个系统。
01:33
我可以来登录进来,登录进来以后呢,大家会看到这里边会有非常多的东西,比如数据管理,这有我们的普通的数据字典,数据字典里边存了一些公共的数据,还有医院设置,这个医院设置呢,在这试试来设置,我们如何同步我们医院数据的这一块呢?我们暂时不用管,在医院列表里边,大家会看到我后台会有非常多的医院,比如我举一个例子,还是以协和为例,我来搜索协和医院,协和医院呢自己可以排班,比如我点一个排班系统,这个排班系统呢,我们能看到。
02:05
再比如我们这个10月28号,周四周四的时候呢,总共有100个号,已经预约挂了38个号,但整个排班的数据,比如我们上午呢,有哪个医师是不是在这儿排班,我们这个排班这是这个医生,这这个医生他的这个排班时间,包括呢,他的这个号还剩多少个,但这些数据呢,也都是我们自动在医院设置里边同步的医院里面的数据,我们这儿只有一个测试数据,比如我们是通过这个路径自己来同步协和医院的所有排班数据。然后呢,最终上到我们整整个挂号平台里边,我们在这儿呢,就可以来进行挂号,这是这么一个网上的医疗挂号系统,而这个挂号系统呢,其实它会拆分出我们很多的微服务模块,比起我们这个洛基可cloud,它呢只是一个简单的后台管理系统,而我们这个类似于一个正式项目上云的话呢,就得考虑很多。比如举一个例子,我们先来看一下我们这个上一通项目的整个技术架构图,这个架构图里边呢,所有请求来了以后,经过我们的负载均衡,请求的所有数据应该先打到我们的网关,所以我们会看到在我们的这个项目里边呢,会有一个叫server getway我们的网关项目。
03:17
而这个网关呢,处理来请求以后,接下来网关根据请求路径的不同,包括域名访问的不同,将请求分发给各个微服务,所以我们的整个上一通项目呢,划分出了非常多的微服务。但这些微服务呢,有一个最大的特点,都是用Java写的到不牵扯到多语言,而我们的微服务有哪些?比如第一个叫医院数据服务service hospital,我们来看所有的微服务呢,都在这儿,这是我们医院数据的服务。然后呢,还有我们的一些公共服务,CMNCMN,这是公共服务,还有我们的这个会员服务,相当于用户的一些登录注册,都是我们这个微服务来进行处理的,然后呢,还有我们的这个预约下单服务,所有跟订单有关的功能都是属于我们这个order这个服务来处理的。
04:05
包括我们的短信服务,所有跟短信有关的功能都是CMSMS,都是他来进行处理的,以及我们的这个统计服务,医院的一些数据统计,我们今天挂了多少个号等等,这些统计信息都是由这个来进行处理的,Static,然后呢,还有一个叫短信服务,好短信服务呢,我们之前在这已经说了啊,在这短信服务。CMS服务呢,其实是我们的整个医院的后台管理系统,医院的后台管理系统呢,是我们这个叫hospital。然后呢,接下来还有一个叫我们的图片服务,那所有跟图片有关的功能都是由我们的这个对象存储oss来负责的,还有我们的定时服务,因为我们经常的要同步医院的定时,同步医院数据,所以定时服务都是在这儿,所以我们几乎呢,我们的挂号平台牵扯到的每一个功能啊,一些重要的功能我们都拆分成了微服务模块,而且模块跟模块之间是使用spring cloud open phone来进行远程互调,如果你是Java程序员的话,在这一块呢就比较懂。
05:13
所以我们接下来呢,希望把这个项目上云,那这个项目上云的话呢,我们其实要解决这些问题,比如第一个我们微服务的整个部署,微服务包含我们的网关及我们划分的各个微服务,微服务的部署,还有它周边设施的部署,比如我们的这个服务,它呢引入了链路追踪功能,那就得把链路追踪的这些中间件部署上,然后呢,还有引入了流量保护功能,以及引入了我们的NASNAS呢是我们的注册中心,配置中心功能,所以我们接下来呢,整个部署相部署号它微服务的整个周边的治理设施,这中间件,以及我们每一个微服务呢,可能都要操作数据支撑层,比如MYSL,我们有些数据呢,可能会从MYS来,有些数据呢存到mongo DB里边,有些存到red里边,我们服务跟服务之间有可能还会发消息,我们利用rabbit MQ这个消息中间件,所以接下来呢,我们在数据层又要部署一堆的中间件,所以我们整个的上一通项目,如果想要上云的话。
06:13
那我们其实分为两大步,第一大步把所有的中间线,包括周边治理设施部署完,第二大步我们用自动化的流水线,把它所有的微服务都来上,大家想现在呢,微服务众多,如果我还是以若一的那种方式,一个一个手动打包上云,那是不是一个挺麻烦的事情。包括呢,我们后来。我们经常要更新迭代,我们功能一改以后,我希望这个功能一改以后呢,它能自动给我们部署到生产环境。所以呢,通过这个项目,我们就希望打通大家的整个戴维奥斯自动化的这个流水线能力,我们希望呢,这个代码啊,一修改我们的需求一修改,我们整个流水线会启动自动化的将我们最新的代码部署到云上。
07:00
好,这是我们的整个这个项目以及项目的大概演示,包括呢,项目是我们区分这么几个地址,第一个如果我们接下来要上云的话呢,第一个是叫医院挂号的parent,就这个项目,这是我idea里边如我来加载的这项,这些项目呢关系比较复杂,可以给大家的大概。在这看一下,在这个项目里边呢,Common是我们所有抽取的公共类,而我们所有带端口的其实都是微服务要部署启动的,比如我们医院的后台管理系统。是我们的这个项目,那最终微服务要启动的,相当于以无状态的方式来进行应用部署的,还有我们的网关也要启动部署的,还有我们接下来service包下的所有微服务都是要启动部署的。Service包下的所有微服务都是要启动部署的,呃,这是我们上一通的整个相当于我们的微服务集群,我们写的这些业务代码。而我们整个的这些微服务集群部署好了以后,将来会牵扯到两个前端,一个呢是用户端,一个是我们后台管理端,那这个用户端和后台管理端呢,又是这两个项目。
08:08
这个parent我们总共的这些代码在我们这个项目地址里边这有啊,然后呢,用户端与后台管理端,首先这个医院挂号的命,这是我们的后台管理端项目,它是用5U写的,所以我们这个项目呢,现在也要自动化流水线部署。然后呢,还有一个叫医院挂号的set,这是我们的用户端,用户端呢相当于是我们的整个挂号端这一个系统,这个系统呢也是用5U写的,然后呢,它的做法就是我们5U呢,接下来会发送请求给我们的后台。相当于呢,所有的前端,这两个前端我们未来也要部署,部署完了以后呢,所有的请求都会发给我们的后台网关,网关把请求路由到各个微服务,这是我们整个的这个项目架构,以及一个简单演示,那下一节课呢,我接下来就把这所有的东西。来进行上云部署,那部署之前,那下节课应该把我们整个这个项目牵扯到的一些中间件,以及周边治理设施,我们先部署好。
我来说两句