简单说来,微服务是一种架构风格。经过对特定业务领域的分析与建模,将复杂的应用分解成小而专注、耦合度低而且高度自治的一组服务。微服务中的每一个服务都是很小的应用,这些应用服务相互独立而且可部署。微服务经过对复杂应用的拆分,达到简化应用的目的,而这些耦合度较低的服务则经过 API 形式进行通讯,因此服务之间对外暴露的都是 API,无论是对资源的获取仍是修改。
微服务架构的这种理念,和先后端分离的理念不谋而合,前端应用控制本身全部的 UI 层面的逻辑,而数据层面则经过对微服务系统的 API 调用完成。以 JSP (Java Server Pages) 为表明的先后端交互方式也逐渐退出历史舞台。
先后端分离的迅速发展也得益于前端 Web 框架 (Angular, React 等) 的不断涌现,单页面应用 (Single Page Application) 迅速成为了一种前端开发标准范式。加之移动互联网的发展,无论是 Mobile Native 开发方式,仍是 React Native / PhoneGap 之流表明的 Hybrid 应用开发方式,先后端分离让 Web 和移动应用成为了客户端。客户端只须要经过 API 进行资源的查询以及修改便可。