本系列文章包括微服务介绍、微服务架构、DevOps、APM等方面,尽量抓重点、不罗嗦,讲解微服务整个生态圈的技术性知识。期望各位同仁能快速的对微服务架构有个了解,加入到微服务最佳实践中来。

一、架构的演进

1.1 四种服务架构

  1. 单体架构
  2. 垂直架构,典型的比如SSH框架,帮大家考虑了模块化、MVC等,但并没有考虑服务化。
  3. 分布式架构,以SOA为代表的这类技术已经热了很多年,现在也是企业架构的主体支撑部分。
  4. 微服务架构,以微服务架构为支撑的技术虽然在一些先进企业或互联网公司已经运用,但从生态上来看,还有很长一段时间要走。

1.2 单体架构的优势

  • 易于开发

         方便开发人员开发、运行、调试

  • 易于测试

         所有的功能运行在一个进程,一旦进程启动,就可以开始系统测试和功能测试

  • 易于部署

         所有的功能都打成一个包,复制该软件包到服务器相应位置即可

  • 易于水平扩展

         只需新建服务器环境节点,复制软件包到相应的位置,运行该程序

1.3 单块架构面临的挑战

  • 维护成本高

           随着功能越多,团队越大,增加了沟通成本、管理成本、人员协调成本

  • 交付周期长

          随着功能越多、代码越来越复杂,代码编译、单元测试、代码检查、构建和部署、验证时间大大增加。

  • 可扩展性差

          业务和数据增加,垂直扩展越来越吃力,成本越来越高,所有代码运行在同一进程,很难根据实际情况(CPU密集、计算密集)进行水平扩展

  • 协调沟通难

          以技能为单位划分团队,任何功能的改变,都需要跨团队沟通和协调

二、微服务是什么

2.1 什么是微服务架构

2.2 微服务的诞生背景

  • 诞生原因

         敏捷、精益、持续交付等价值观和方法论的提出以及实践,让很多组织意识到应对市场变化、提高响应力的重要性。

  • 精益、敏捷和持续交付

         精益创业通过迭代持续改进,帮组组织分析并简历最小可实行产品;敏捷方法帮助组织消除浪费,通过反馈不断找到正确的方向;持续交付帮助组织构建更快、更可靠、可频繁发布的交付机制;云、虚拟化和基础设施自动化的使用则极大简化了基础设施的创建、配置和系统的安装和部署;DevOps文化的推行更是打破了传统开发和运维之间的壁垒,帮助组织形成全功能化的高效团队。

三、微服务架构

3.1 微服务基础架构

本图给出了微服务架构的整体技术栈,同时也提供了微服务架构的技术路线。如何掌握微服务架构:

   首先,技术开发,掌握spring cloud spring boot

   其次,安全认证相关的技术,jwt、spring security、oauth、shiro等

   第三,前后端分离相关的技术

   最后,持续交付流水线的部署和发布

后面章节会逐步介绍各块的相关功能,譬如:微服务的灰度部署和蓝绿部署。

3.2 微服务架构总体技术体系

微服务技术体系主要包括:

  • 开发框架 spring cloud或者dubbo
  • 微服务持续交付流水线
  • 微服务部署
  • 微服务运维

四、微服务架构剖析

4.1 微服务的本质

​​​​​​​

 

  • 服务即组件

  • ​​​​​​​围绕业务组织团队

  • ​​​​​​​技术多样性

  • ​​​​​​​业务数据独立

  • ​​​​​​​交付过程独立

4.2 微服务的好处

4.3 微服务的技术关注点

4.4 微服务和SOA的区别

4.5 微服务的误区

4.6 微服务的挑战

本章初步介绍微服务是什么?下章《微服务架构从入门到精通(二)微服务生态体系​​​​​​​》会详细介绍微服务架构的生态体系。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐