[关闭]
@abelsu7 2019-09-25T22:00:44.000000Z 字数 7504 阅读 1619

微服务相关资料

微服务 Docker Kubernetes ServiceMesh 容器


微服务相关资料

最后更新时间:2019-9-25

目录

1. 精选文章

2. Kubernetes

kubernetes-diagram-902x416.png

Kubernetes 是什么? - Linux 中国 | 知乎

2.1 K8s 各组件之间的网络通信协议

2.2 K8s 架构图

参考 Kubernetes 设计架构 | kubernetes 中文社区

3. 微服务

3.1 微服务简介

3.2 微服务架构

参考资料:

大部分公司在使用的微服务技术架构体系示意图:

一、核心模块

微服务基础架构的核心模块包括:

二、技术体系

其中粉红色标注的模块是和微服务关系最密切的模块

三、服务框架选型
四、运行时支撑服务选型

待更新...

3.3 参考文章

4. Service Mesh

参见 深入解读 Service Mesh 背后的技术细节 - 刘超 | ServiceMesher

4.1 微服务 vs K8s

微服务设计 Kubernetes 功能
API 网关 Ingress
无状态化,区分有状态化和无状态的应用 无状态对应 Deployment,有状态对应 StatefulSet
数据库的横向扩展 headless service 指向 PaaS 服务,或者 StatefulSet 部署
缓存 headless service 指向 PaaS 服务,或者 StatefulSet 部署
服务拆分和服务发现 Service
服务编排与弹性伸缩 Deployment 的 Replicas
统一配置中心 ConfigMap
统一日志中心 DaemonSet 部署日志 Agent
熔断、限流、降级 Service Mesh
全方位的监控(智能管控?) Cadvisor, DaemonSet 部署监控 Agent

在我们微服务设计的十个要点中,我们会发现Kubernetes都能够有相应的组件和概念,提供相应的支持。

其中最后的一块拼图就是服务发现,与熔断限流降级

众所周知,Kubernetes 的服务发现是通过Service来实现的,服务之间的转发是通过kube-proxy下发 iptables 规则来实现的,这个只能实现最基本的服务发现和转发能力,不能满足高并发应用下的高级的服务特性,比较 SpringCloud 和 Dubbo 有一定的差距,于是 Service Mesh 诞生了,他期望将熔断,限流,降级等特性,从应用层,下沉到基础设施层去实现,从而使得 Kubernetes 和容器全面接管微服务。

待更新...

4.2 Service Mesh 简介

参见 微服务架构之「 下一代微服务 Service Mesh 」| 不止思考

一、什么是 Service Mesh

Service Mesh中文名称为服务网格,因为它的部署图看起来就像一个网格:

图中的绿色小块可以理解为微服务应用,蓝色小块可以理解为 Service Mesh 的轻量级网络代理

简单来说:Service Mesh就是一个基础设施层,它是用于处理微服务中服务与服务之间通信的一种技术。

有了 Service Mesh 之后,在微服务框架中,服务与服务之间的通信就是靠这些网络代理模块来保障。

二、为什么需要 Service Mesh

在传统的微服务架构中,随着业务越来越复杂,拆分的服务实例也越来越多,那么各个服务之间的依赖就变成了非常复杂的网络拓扑结构,类似下图:

在如此复杂的分布式部署架构下,微服务中服务依赖调用数据传输所面临的问题也成倍增加,极大的提高了服务治理的难度

同时,由于容器化技术的成熟和规模化,微服务都会采用容器化,并朝着云原生应用的方向发展。而传统的微服务架构中,虽然也有服务治理的组件,但是这些组件大多需要在应用代码里进行集成,并不符合云原生的思想。因此,急需一个标准化、能高效部署和运维的微服务体系方案

因此,Service Mesh 就应运而生了——其目的就是用来解决微服务架构中服务间可靠调用、服务治理等问题

三、Service Mesh 的原理与应用

Service Mesh 由两个核心模块组成,SideCarControl Plane

1. Sidecar:

Sidecar即上面提到的与服务部署在一起的轻量级网络代理,它的作用就是实现服务框架的各项功能,这样就可以让服务 (Service A 或 B) 回归业务本质

传统的微服务架构中,各种服务框架的功能 (例如服务发现、负载均衡、限流熔断等) 的代码逻辑或多或少都需要耦合到服务实例的代码中,给服务实例增加了很多业务无关的代码,也提升了复杂度

有了Sidecar之后,服务节点只做业务逻辑自身的功能,服务之间的调用交给了Sidecar,由Sidecar注册服务、去做服务发现、去做请求路由、去实现熔断限流、去做日志统计

在这种新的微服务架构中,所有的Sidecar组合在一起,就是一个服务网格了。不过,这个大型的服务网格并不是完全自治的,它还需要一个统一的控制节点,也就是Control Plane

2. Control Plane:

Control Plane是用来从全局的角度控制Sidecar的。例如它负责所有Sidecar的注册,并存储一个统一的路由表,帮助各个Sidecar进行负载均衡请求调度

此外,Control Plane还会收集所有Sidecar监控信息日志数据相当于Service Mesh架构的大脑Control Plane控制着Sidecar来实现服务治理的各项功能。

4.3 参考文章

5. 编排调度

5.1 Apache Mesos

Mesos 基于 master/slave 架构,框架决定如何利用资源,master 负责管理机器,slave 会定期的将机器情况报告给 master,master再将信息给框架。

5.2 K8s

可参考 Kubernetes 设计架构 | kubernetes 中文社区

5.3 服务雪崩、降级与熔断

6. 企业分享

7. 企业案例

7.1 网易云轻舟微服务

官网地址:轻舟微服务 | 网易云

一、产品介绍

轻舟微服务是围绕应用和微服务打造的一站式 PaaS 平台,帮助用户快速实现易接入、易运维微服务解决方案。为致力于数字化转型的企业提供中台服务治理,帮助企业实现建立生态统一标准,优化管理能力及自动化能力。

二、产品全景

三、产品优势

基于开源、兼容开源:

低成本、易接入:

智能运维&立体化监控:

四、产品功能

微服务治理框架:

智能 API 网关:

分布式事务:

容器应用管理服务:

DevOps:

AIOps:

7.2 腾讯云微服务平台 TSF

官网地址:腾讯微服务平台 TSF | 腾讯云

一、产品介绍

腾讯微服务平台(Tencent Service Framework,TSF)是一个围绕应用和微服务的 PaaS 平台,提供一站式应用全生命周期管理能力数据化运营支持,提供多维度应用和服务的监控数据,助力服务性能优化。提供基于 Spring CloudService Mesh 两种微服务架构的商业化支持。

二、产品特性

拥抱开源社区:

应用全生命周期管理:

细粒度服务治理:

分布式事务:

灵活运维:

三、应用场景

构建分布式系统:

金融业务往往有严格合规性要求,用户能够将业务部署在专用宿主机的云服务器上,在资源共享的同时保证与其他用户的子机物理隔离,满足敏感业务数据保护、磁盘消磁需求

应用发布和管理:

相对于传统的应用发布需要运维人员登录到每一台服务器进行发布和部署,TSF 针对分布式系统的应用发布和管理,提供了简单易用的可视化控制台。用户通过控制台可以发布应用,包括创建、部署、启动应用,也支持查看应用的部署状态。除此之外,用户可以通过控制台管理应用,包括回滚应用、扩容、缩容和删除应用

服务治理:

支持服务级别API 级别的服务治理能力,包括服务路由、服务限流、服务鉴权功能。服务路由功能支持将请求按权重路由到不同版本的服务上

7.3 华为云微服务引擎 CSE

官网地址:微服务引擎 CSE | 华为云

一、产品介绍

微服务引擎(Cloud Service Engine)提供高性能微服务框架和一站式服务注册、服务治理、动态配置分布式事务管理控制台,帮助用户实现微服务应用的快速开发高可用运维;支持 ServiceCombSpring CloudService Mesh 运行环境。

二、功能描述

微服务开发框架:

微服务治理中心:

微服务安全管控:

微服务灰度发布:

分布式事务管理:

非侵入式接入:

统一配置中心:

微服务仪表盘:

三、应用场景

微服务应用高可用运维:

多语言微服务解决方案:

开源框架微服务应用接入与管理:

8. 相关论文

9. 其他参考资料

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注