通过jenkins交付微服务到kubernetes

随着Kubernetes的遍地开花,Kubernetes的优势可以说是深入人心,很多企业也是利用Kubernetes,来实现更高效的交付和更好地提高我们的资源使用率,推动标准化,适应云原生。

随着Kubernetes和云原生加速企业产品落地,现在总结以下几点

1)更快的应用开发与交付 2)天然适合微服务,是微服务和Devops的桥梁 3)可移植性,支持公有云,私有云,裸机,虚拟机 4)标准化的应用开发与发布:声明式API和Operator 5)自动化运维:弹性伸缩(HPA),故障自愈,负载均衡,配置管理等

另外就是交付spring cloud到k8s之前说一下微服务的概念

什么是微服务?

早在2011年的5月份在威尼斯的一个架构研讨会上微服务的概念就被人提起了,当时的参会者对它的描述只是一种通用的软件并没给出明确的定义是什么,之后随着技术的不断发展,在2014年詹姆斯里维斯以及它的伙伴马丁福勒在它的微博中发表了一篇有关于微服务特点的文章,对微服务进行了全面的阐述,之后微服务就走进了我们的视野
https://martinfowler.com/articles/microservices.html
这是关于网站的描述
在这个文章中并给出微服务一个明确的定义,微服务其实是一种软件的架构风格,是一种将单体架构
拆分为小的服务进行去开发,每个服务都运行在自己的进程中,采用的是轻量级的restful或者http进行通信,并且都是独立开发独立部署和测试的,可以使用多种语言进行开发

对于微服务有一个关键点叫化整为零,把一个大的应用却成一个小的不同的应用
比如嘀嘀打车,早期在一个互联网应用上基本上都是单体架构,不是分布式的
单体情况下把很多程序都写一个程序中,然后一台服务器对所有服务进行运行,但是随着并发的提高,这种单体架构显然承受不了了,这样的话就需要我们对我们软件的指责进行慢慢的划分,将其剥离出来,形成一个一个的微服务,也就是多个微服务的模块形成一个完整的应用,这些都是独立部署独立运行的,一个微服务也会运行在一个虚拟机里面。

spring cloud微服务体系的组成

服务发现 (Eureka,Cousul,zookeeper)
也就是注册中心最为微服务必不可少的中央管理者,服务发现的主要职责就是将其它的微服务模块进行登记与管理,这就相当于生活中来了一家公司,去工商局进行登记一样的道理,在服务发现中它主包含了三个子模块,分别是eureka,cousul,zookeeper,这些spring cloud底层都支持的注册中心,一般常用的是eureka和consul,那么微服务构建好了之后,那么微服务与微服务直接怎么进行服务直接的通信,或者微服务遇到了故障无法达到请求的话(hystrix/ribbon/openfeign)
另外就是路由与过滤主要是针对对外接口的暴露的,这里主要涉及zuul,spring cloud gateway,这两个组件主要为外部的调用者比如其他的系统和我们的微服务进行通信的时候,由外到内是怎么彼此进行访问的,那么这些就是由这两个组件进行完成的
配置中心就是存放我们应用程序配置的地方,可能我们有上百个应用程序,那么每个应用程序都是一个微服务,那么就会产生一个很严重的问题,就是这些配置文件放在什么地方比如每个服务下都放一个xml,或者yml,维护起来是非常不方便的,因为改一个参数,就要对所有的应用进行调整,为了解决这个问题配置中心就出现了,相当于又提供了一个微服务把我们应用中所有的配置文件,都放在了配置中心中,那么其他应用都是通过配置中心来获取到这些配置文件的而不是我们要这个这个配置文件放到每个程序中,这样的好处就是可以将我们的配置文件进行集中的管理,只需要改一个地方所有地方都能生效

spring cloud微服务组成

消息总线,spring cloud stream或者spring cloud bus就跟我们的消息mq差不多就是我们发布一个信息,到我们队列里面由其他的微服务或者其他的应用进行获取提供了系统与系统之间或者微服务与微服务之间的消息传递过程,这个中间增加了一个额外的东西叫做消息总线,具体的消息总线可以是mq或者是Redis,不同的厂商实现了不同的实现
安全控制是针对我们安全的管理,在我们传统网站开发的时候,应用的访问控制有授权的可以使用这个功能,没有授权的就无法进行访问,安全控制在spring cloud中也是存在的提供了AUTH2.0方案的支持,链路监控就是对我们消息传递的过程要进行统筹和监控,比如系统中有10个微服务,而这10个微服务是彼此依赖的,第一个微服务它是底层最基础的用户管理而第二个微服务是基于用户管理开发一个权限管理,在往上是应用管理,应用系统的扩展,每一个微服务之间彼此之间进行依赖在顶层我们进行调用的时候会安装微服务的调用顺序一级一级消息往下传递,这样做有一个问题来了,如果中间有个环节出现了问题,没有响应服务我们在使用的角度当前我们的请求失败了,但是具体的环节不知道是在那一块出现问题,那么链路监控就是让我们快递定位消息传递过程哪个阶段进行出错,有助于我们问题的排查
spring cloud cli命令行工具,来实现我们开发来实现的一些功能,spring cloud cluster是对我们集群管理的一个辅助工具

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/205c9d93803e5eb47c9e3dd7d0adc197.html