微服务和普通应用有什么不同?
微服务是一种架构模式,其核心是将一个单体应用分成多个部分进行开发。所以微服务架构的应用程序,其本质上是一个分布式应用。
基于微服务架构构建的应用程序,可以让业务变化更快,整体系统可靠性更高。
类型 |
微服务 |
普通应用 |
---|---|---|
开发 |
每个微服务的体量相对较小,业界的two pizza团队和“2周即可全部重写全部代码”等都可以作为微服务划分的参考。在开发时期,需注意服务接口的定义以与周边微服务进行配合,“基于契约”的开发方式是非常推荐的。 微服务开发,请参考开发微服务应用。 |
普通应用逻辑复杂、模块耦合、代码臃肿、修改难度大、版本迭代效率低下。 |
部署 |
微服务组成的应用系统通常比较复杂,在一次性部署的时候,需要进行编排部署。 微服务应用部署,请参考创建并部署组件。 |
普通应用可能会比较大,构建和部署时间也相应地比较长,不利于频繁部署,阻碍持续交付。在移动应用开发中,这个问题会显得尤为严重。 |
运维 |
在原来的指标监控、日志收集之外还非常强调治理。其核心理念是在运行时期通过对线上系统的各种调整以达到系统整体健康度要求的效果。 应用运维,请参考组件运维。 |
普通应用线上问题修复周期长,任何一个线上问题修复都需要对整个应用系统进行全面升级。 |