微服务笔记 | 青训营笔记

58 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天

定义

一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。

微服务的一些主要特征包括:

  • 微服务具有规模小、独立和松散耦合的特点。
  • 每个微服务具有一个单独的代码库,可由小型开发团队进行管理。
  • 微服务是独立部署的。 团队可以更新现有微服务,而无需重新生成和重新部署整个应用程序。
  • 微服务负责将其数据或外部状态保存到各自的数据库中。 与整体体系结构不同,微服务不共享数据库。
  • 微服务使用定义完善的 API 相互通信。 每个服务的内部实现细节均对其他服务隐藏。
  • 支持 polyglot 编程。 例如,微服务无需共享相同的技术堆栈、库或框架。

容器扮演什么角色?

容器化是软件开发的一种方法,通过该方法可将应用程序或服务、其依赖项及其配置(抽象化为部署清单文件)一起打包为容器映像。 可以将容器化应用程序作为一个单元进行测试,并将它们作为容器映像实例部署到主机操作系统 (OS)。

就像船只、火车或卡车运输集装箱而不论其内部的货物一样,软件容器充当软件部署的标准单元,其中可以包含不同的代码和依赖项。 通过这种方式容器化软件,开发人员和 IT 专业人员可以在几乎不进行修改的情况下完成跨环境部署。容器化的另一个优势在于可伸缩性。 通过为短期任务创建新容器,可以快速扩大。 从应用程序的角度来看,实例化映像(创建容器)类似于实例化 服务或 Web 应用等进程。

简而言之,容器能在整个应用程序生命周期工作流中提供隔离、可移植性、灵活性、可伸缩性以及控制方面的优势。

你在此模块中生成的微服务将在容器中运行,具体而言就是 Docker 容器。