微服务架构与实践知识图谱

微服务架构与实践知识图谱

微服务架构与实践

开发实践

开发模板

JAVA栈

SpringBoot

SpringCloud

DropWizard

自研模板

代码结构

测试结构

配置文件模板

WEB服务器配置

日志格式

监控文件配置

告警文件配置

部署脚本模板

Shell

Chef

Puppet

Ansible

持续集成模板

Jenkins

Bamboo

服务说明文件

服务描述

责任人

请求/响应描述

开发环境搭建

运行环境

测试策略

部署方式

监控告警

服务结构

模型表示层

业务模型

业务逻辑

模型存储

集成网关

测试实践

单元测试

基于Mock/Stub

基于真实依赖

集成测试

服务间集成

数据库集成

与第三方接口集成

组件测试

进程内

进程外

契约测试

PACT

PACTO

E2E测试

Selenium

WebDriver

性能测试

Gatling

部署实践

部署环境

数据中心/VM

公有云/私有云

容器化

应用部署

包部署(Tar、RPM、War)

映像部署(AMI)

容器部署(Docker)

基础设施部署工具

Chef

Puppet

Ansible

CloudFormation

部署策略

蓝绿部署

金丝雀发布

自动化策略

依赖持续部署流水线

基础设施自动化

应用部署自动化

伸缩策略

Scaling Cube

X轴水平克隆

Y轴功能性按需伸缩

Z轴数据分离

运维实践

监控

系统监控

CPU

内存

磁盘

应用监控

健康性

响应时间

关联ID(Correlation ID)

业务相关

工具

SAAS

NewRelic

OneAPM

Hosted

Nagios

Zabbix

告警

告警方式

电话

短信

邮件

即时通信工具

告警级别

OnCall

Backup

Owner

Leader

工具

Splunk

Nagois

PagerDuty

日志聚合

聚合每个服务实例的日志

关联相关日志

工具

Splunk

ELK(ElasticSearch/LogStash/Kabana)

通信机制

同步通信

RPC/RMI

Thrift

Protocol Buffer

REST

HAL

异步通信

消息队列

ActiveMQ

MSMQ

RabbitMQ

后台任务

Sidekiq

Resque

安全策略

单点登录

点对点验证

安全网关

OAuth Protected Service

数据相关

数据库

RDBMS

NoSQL

数据伸缩

读

写

缓存

业务数据隔离

基于服务

组织结构

全功能团队

去中心化

康威定律

常用模式

部署模式

单机多实例

单机单实例

容器多实例

容器单实例

服务发现

客户端发现

服务器端发现

常用库/工具

Consul

Eureka

SmartStack

API网关

请求转发

响应合成

协议转换

安全认证

服务注册

自注册

第三方注册

常用库/工具

Consul

Eureka

SmartStack

Edge Server

配置服务(Config Server)

理论基础

概念

多微合适

非代码行数

非重写时间

适合团队

业务独立

团队自主

进程隔离

服务运行在独立进程中

轻量级通信

协议跨平台

格式语言无关

独立性

能独立部署

本质

服务作为组件

围绕业务组织团队

产品驱动而非项目驱动

技术多样性

业务数据独立

基础设施自动化

演进式架构

优点

按需伸缩

独立部署

业务独立

技术多样性

缺点

分布式系统固有复杂度

可用性

一致性

容错性

运维成本高

环境配置(Provisioning)

部署

监控

测试成本高

自动化测试

契约测试

依赖管理成本高

版本管理

服务依赖

服务治理

和SOA相比

实现方式

服务粒度

集成方式

部署方式

注:拜读各路大神书籍、专栏等资料,做自己的理解和总结,本博客所有内容来源于网络、书籍、和各类手册。内容均为非盈利,旨为方便查询、总结备份、开源分享。部分转载内容均有注明出处,如有侵权请告知,马上删除。

你可能感兴趣的:(技能图谱)