简单的Micro Service 1 =>基本概念

如何构建一个简单的Micro Service? 

简单的Micro Service 1 =>基本概念_第1张图片
Key Feature of Cloud Services


Micro Services 


谈微服务之前,首先要看微服务圣经《The Twelve Factors》

SRP:Single Responsibility Principle 单一职责原则。每个服务都要小而美,快速开发迭代。

不局限于开发语言和工具,对于不同的服务请使用最合适的技术和工具。特别是对于新技术的尝试,将影响降到最低年

不限开发团队,不同的服务可以由不同的团队完成。

快速部署/回滚,敏捷度提高,A/B test,轻松替换服务。

对于微服务的应用,可以容易的针对系统瓶颈做自动扩容,同时通过服务治理来降低服务依赖(服务治理是最头疼的)

然而存在一些涉及悖论:

对于DRY(Don't Repeat Yourself),很难实现代码共享和使用相同的技术栈。因此同样的代码/错误可能存在不同的服务中

不能轻松的使用同一个DB。

CAP 原则:一个分布式系统中, Consistency(一致性,同意时刻数据的一致性)、 Availability(可用性,部分节点挂掉后提供客户响应)、Partition tolerance(分区容错性,当数据不一致的时候对对C还是A的选择),三者不可得兼。AP VS CP =>一致性优先VS可用性优先

避免二段提交2PC。


关键技术点


1.IaaS/Paas/CaaS, 不同的选择,对于整体架构的影响是很大的。例如选择了CaaS服务,供应商已经完成的大部分服务编排,容器编排任务

2.Service Management(Service Discovery, Service Registry,Service Monitor),这东西解决方案太多。Consul,Netflix,docker,rancher等很多软件已经提供了不同的解决方案。

3.Correlation IDs, 由于服务分散到里不同的instance, 提供统一的机制来处理ID至关重要,对于问题回溯和压力分流都能起到不小的帮助。

4.Log Monitoring,服务小而多,甚至每台移动应用(手机里的app)都可能是一个服务,将日志集中处理,且能定位日志来源至关重要。

5.API Gateway,对外提供统一的入口,流量控制,访问控制,访问日志,协议转换。

6.API Management,随之服务的增多,文档和接口不一致,借口变化都换带来其他服务的问题,需要同意的API管理机制。

7.Container Management,容器近年来越来越牛,好的容器编排工具,大大降低团队对于容器的管理成本,让开发团队话更多的时间在业务上,而不是环境上。

8.Configuration Management,不同环境,不同服务之间的配置需要一个统一的管理机制。


一些技术栈堆叠


简单的Micro Service 1 =>基本概念_第2张图片
一坨坨

你可能感兴趣的:(简单的Micro Service 1 =>基本概念)