分布式追踪:应对云原生应用可观测性挑战
1. 云原生应用与微服务架构
在过去十年里,现代互联网规模的应用构建方式发生了显著转变。云计算(基础设施即服务)和容器化技术(因 Docker 而普及)催生了一种新的分布式系统设计,即微服务(及其后续演变形式 FaaS)。像 Twitter 和 Netflix 这样的成功公司,借助微服务构建了高度可扩展、高效且可靠的系统,并能更快地为客户提供更多功能。
微服务架构虽没有官方定义,但业界已形成一定共识。Martin Fowler 认为微服务架构具有以下共同特征:
1. 通过(微)服务进行组件化 :复杂应用的功能组件化通过服务(即微服务)实现,这些微服务是通过网络通信的独立进程。它们提供细粒度接口,规模小,可自主开发和独立部署。
2. 智能端点和哑管道 :服务间通信采用与技术无关的协议,如 HTTP 和 REST,而非企业服务总线(ESB)等智能机制。
3. 围绕业务能力组织 :以业务功能(如“用户资料服务”或“订单履行服务”)而非技术来组织服务。开发过程将服务视为不断演进的产品,而非交付后即完成的项目。
4. 去中心化治理 :允许不同微服务使用不同的技术栈实现。
5. 去中心化数据管理 :服务之间在概念数据模型和数据存储技术的决策上相互独立。
6. 基础设施自动化 :利用自动化测试、持续集成和持续部署等自动化流程来构建、发布和部署服务。
7. 容错设计
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



