惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News
G
Google Developers Blog
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
月光博客
月光博客
Jina AI
Jina AI
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net
V
V2EX
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
B
Blog
博客园 - 叶小钗
小众软件
小众软件
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
A
About on SuperTechFans
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19)
微服务架构
微信公众号 · 2016-12-25 · via 陈少文的网站

Please enable Javascript to view the contents

微服务架构

1. SOA

面向服务架构(SOA),阐述了对于复杂的企业IT系统,应按照不同的、可重用的粒度划分,将功能相关的一组功能提供者组织在一起为消费者提供服务,其目的是为了解决企业内部不同IT资源之间无法互联而导致的信息孤岛问题。

SOA的基本设计思想是:对外只需要提供一个简单的接口,封装底层的复杂性,不关心技术实现方案。

由于,SOA本身的广义性以及抽象性,人们对SOA存在着不同的认知和理解。基于SOA设计思想,出现了ESB、REST、SOAP、RPC、RMI、DCOM等实现方案,而微服务架构也可以看作是对SOA的一种衍生或解读。

2. 微服务架构

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

具有如下特点:

  • 模块化。单个服务的开发、理解和维护都可以单独进行,对外只需要提供服务的接口。
  • 独立部署。每个服务可以独立进行部署和维护,它只是作为整个系统的服务之一,并不会影响全部服务。
  • 独立扩展。可以根据服务的规模,自行进行硬件资源、分布架构的扩展,而不影响其他的服务。
  • 独立运行。单个服务独立运行,提供单一可靠的服务。

这些特点在SOA思想指导下的其他技术方案中,早就有所涉及,近年提得较多的微服务是随着持续交付概念推广以及Docker容器普及迅速得到认可的。微服务将这两种理念和技术结合起来,形成新的微服务+API + 平台的开发模式,提出了容器化微服务的持续交付概念

3. 容器化微服务的持续交付

容器化微服务的持续交付能力,对于敏捷开发非常的重要。传统的开发、测试、部署,涉及复杂的内部流程,而微服务缩小了测试的范围,容器化为测试提供了测试上下文环境。


微信公众号