一张图秒懂微服务网络架构

  最近参与了 公有云微服务项目,已经有一段时间未公开发表。经过此次改造公有云微服务项目的实践过程,分享一下公有云微服务网络架构,及服务部署方案。
每一个平台的网络架构图都相似,但细节根据自有服务有组件又各不同,别人的架构拿过来不一致适合你的架构,那么首先要了解每层架构及每一个服务的职责,以及服务与服务之间的交互逻辑。咱们根据私有云的架构迁移过来,保持了部分架构,补充了原来在私有云部署中公共组件部分。迁移到公有云后,一些公共组件由咱们本身搭建并运维。整理总览图请看下图:web

网络架构总览图

file

1、互联网层

  外网层也是网络架构中最上一层,是指服务报露在互联网中使用的,经过IP或域名的方式访问服务。访问的域名经过解析服务器,解析到指定的互联网机器。
互联网机器通常是使用云服务的方式构建。sql

2、云服务平台层

云计算按照服务类型大体能够分为三类:数据库

  • 将基础设施做为服务Iaas
  • 将平台做为服务PaaS
  • 将软件做为服务SaaS

按照云计算服务的部署方式和服务对象的范围能够将云计算分为三类,即公共云、私有云和混合云。缓存

  • 公共云:是由云服务提供商运营,为最终用户提供从应用程序、软件运行环境,到物理基础设施等各类各样的IT资源。在该方式下,云服务提供商须要保证所提供资源的安全性和可能性等非功能性需求,而最终用户不关心具体资源由谁提供、如何实现等问题。
  • 私有云:是由企业自建自用的云计算中心,相对于公共云,私有云能够支持动态灵活的基础设施,下降IT架构的复杂度,使各类IT资源得以整合、标准化,更加容易知足企业业务发展须要,同时私有云用户彻底拥有整个云计算中心的设施(如中间件、服务器、网络及存储设备等)。
  • 混合云:是把“公共云”和“私有云”结合在一块儿的方式。用户能够经过一种可控的方式部分拥有,部分与他人共享。

什么是云服务?

  云服务是基于互联网的相关服务的增长和使用,一般涉及互联网动态易扩展且常常是虚拟化的资源。云是网络、互联网的一种比喻说法。
  云服务指经过网络以按需、易扩展的方式得到所需服务。这种服务能够是IT和软件、互联网相关,也但是其余服务。它意味着计算能力也可做为一种商品经过互联网进行流通。
file安全

这一层咱们使用云服务提供的WAF防火墙,用来于外网与租户区之间作了安全防御。WAF防火墙中增长一个vip来管理租户区的应用服务。服务器

3、租户区

  租户区是经过云服务购买的ECS服务器云数据库RDS Mysql版云数据库Redis版对象存储OSS云通讯-短信服务弹性公网IP等资源。微信

根据以上资源根据咱们的服务划分两类:网络

  • 应用服务
  • 基础组件服务
    file
    上图中作了作分隔:左侧为应用服务,提供业务服务。右侧为基础组件服务,提供应用服务的服务

应用服务

应用服务的入口是Nginx,应用服务又分三层:统一网关层Web应用服务层原子化服务层架构

一、统一网关层

  由防火墙的VIP打到应用服务的Nginx上面,Nginx代理到应用网关,全部网络流量都通过网关,由网关统一服务转发。转发只能转发到Web应用服务,不能转发到中台服务。Web应用服务与中台服务或中台服务之间访问采用RPC远程调用
应用服务须要调用基础组件时根据可扩展方案,访问须要通过VIP。应用服务访问的基础组件都不是真实的机器 ,而是VIP(Virtual IP Address)。运维

二、Web应用服务

是根据业务需求,实现业务逻辑。组合中台服务,达到实现业务需求的目地。

在图中根据本身的业务划分本身的服务,这里只是简单罗列了一下几个服务做为表明。但不局限于这几个服务

三、原子化服务(中台服务)

互联网电商行业,根据业务需求不断变动,服务要求不断稳定。不一业务需求变动,而形成服务的不稳定性。那么根据职责模块划分为多个原子化服务,并根据职责划分到各个系统中。从而达到中台服务负责基础数据及稳定业务服务,多变或可定制化服务由Web应用服务提供。

在图中根据本身的业务划分本身的服务,这里只是简单罗列了一下几个服务做为表明。但不局限于这几个服务

在高可用方案中,为了保证最低高可用每一个系统均分配两台ECS,保证高可用。

基础组件服务

基础组件的入口是LVS,在应用服务中提到LVS中须要分配VIP。

为何要使用VIP?

  VIP(虚拟IP)是比较常见的一个用例就是在系统高可用性(High Availability HA)方面的应用,一般一个系划外的状况而发统会由于平常维护或者非计生宕机,为了提升系统对外服务的高可用性,就会采用主备模式进行高可用性的配置。当提供服务的主机M宕机后,服务会切换到备用主机S继续对外提供服务。而这一切用户是感受不到的,在这种状况下系统对客户端提供服务的IP地址就会是一个虚拟IP,当主机M宕机后,虚拟IP便会漂浮到备机上,继续提供服务。

  在这种状况下,虚拟IP就不是与特定计算主机或者特定某个物理网卡对应的了,而是一种虚拟或者是说逻辑的概念,它是能够自由移动自由漂浮的,这样一来既对外屏蔽了系统内部的细节,又为系统内部的可维护性和扩展性提供了方便。

LVS属于四层代理, 在组件中采用TCP协议的由:

  • 消息服务 RabbitMQ
  • 缓存服务 Redis
    因为组件中还有HTTP协议的,那么须要使用Nginx在作一层代理,采用HTTP协议的组件由:
  • 注册中心 Eureka
  • 认证中心 Passport
  • 调度平台 XXL-JOB
  • 图片服务 FastDFS

除此以外,基础组件中,还包括:配置中心 zookeeper搜索服务 Solr 这两个服务不通过LVS代理,直接由应用服务访问。

因每一个组件的实现原理不同,使用的机器数量也不同。他们每一个服务的高可用后台单独为每一个组件详细描述。
最后,根据以上描述画出总体网络架构图:
file

致此,讲解了咱们在这些公有云微服务项目的实践及部署方案,总体网络架构图以下:

以上是根据我的在这个项目中的实践和理解,若你有更好的方案或想法可关注 微信公众号"猿码",发表你的见解。或在文章底部留言,建议咱们对技术的热爱~~~~

你的关注会继续发表相关话题,及相关技术。

再次感谢您已看彻底文,欢迎关注微信公众号猿码 ,您的关注我会持续更新文章!

相关文章
相关标签/搜索