带你读《企业级云原生白皮书项目实战》——6.2.1 缘起(下)

简介: 带你读《企业级云原生白皮书项目实战》——6.2.1 缘起(下)

《企业级云原生白皮书项目实战》——第六章 云原生最佳实践——6.2 全面容器化之后,来电科技如何实现微服务治——6.2.1 缘起(上): /article/1227887?groupCode=supportservice


6.2.1.2 稳定发布三板斧的诉求

日常发布中,我们常常会有如下一些错误的想法:

?这次改动的内容比较小,而且上线要求比较急,就不需要测试直接发布上线好了。

?发布不需要走灰度流程,快速发布上线即可。

?灰度发布没有什么用,就是一个流程而已,发布完就直接发布线上,不用等待观察。

?虽然灰度发布很重要,但是灰度环境很难搭建,耗时耗力优先级并不高。

这些想法都可能让我们进行一次错误的发布。

阿里巴巴内部有安全生产三板斧概念: 可灰度、可观测、可回滚。所有研发同学必须要掌握发布系统的灰度、观测和回滚功能如何使用。

互联网频繁发布是常态,对于来电科技来说也是如此,系统具备灰度、观测、回滚的能力是微服务系统必须具备的能力,灰度可以说是发布之前的必备流程,也是提升线上稳定性的关键因素。当服务有新版本要发布上线时,通过引流一小部分流量到新版本,可以及时发现程序问题,有效阻止大面积故障的发生。业界上已经有比较成熟的服务发布策略,比如蓝绿发布、A/B 测试以及金丝雀发布,这些发布策略主要专注于如何对单个服务进行发布。

来电科技的微服务数目众多,服务之间的依赖关系错综复杂,如果采用多套环境的硬隔离,会使得成本大幅升高,发布方式变得复杂。有时某个功能发版依赖多个服务同时升级上线。希望可以对这些服务的新版本同时进行小流量灰度验证,通过构建从Ingress网关到整个后端服务的环境隔离来对多个不同版本的服务进行灰度验证,这就是微服务治理中的全链路灰度的能力。


6.2.1.2 自研的挑战

来电科技有考虑过自研微服务治理,来电科技架构师汤长征同学也参与过 Dubbo的开源社区,微服务治理研发对于来电科技来说并不是非常困难的事情,但是自研微服务治理组件还是存在以下必不可少的成本问题:

?接入成本高。

?维护成本高。

?功能单一,不灵活,可扩展性低可定位性变差。

考虑到对生产应用进行微服务治理,微服务框架通常会引入服务治理的逻辑,而这些逻辑通常会以SDK的方式被业务代码所依赖,而这些逻辑的变更和升级,都需要每一个微服务业务通过修改代码的方式来实现,这样的变更造成了非常大的接入与升级成本。同时需要对开源的服务框架做治理功能的研发,就意味着需要出人力对微服务治理的组件进行管理与运维,同时自建会使得功能非常贴近业务,也意味着功能将会做得比较薄比较单一,未来的可扩展性就显得比较弱。同时全链路灰度的实现技术细节也是非常之多,动态路由,节点打标,流量打标,分布式链路追踪,技术的实现成本高。由于 Dubbo、Spring Cloud 等服务框架本身的复杂性,同时随着微服务数量逐步增多,链路越来越长,相关的微服务治理问题的定位与解决也成了让人头疼的问题,如果有 Spring Cloud Alibaba、Dubbo 等专业的团队支持,微服务化深入也会变得更加从容。

相关文章
|
1天前
|
运维 Kubernetes Cloud Native
构建高效云原生运维体系:Kubernetes最佳实践
【5月更文挑战第9天】 在动态和快速演变的云计算环境中,高效的运维是确保应用稳定性与性能的关键。本文将深入探讨在Kubernetes环境下,如何通过一系列最佳实践来构建一个高效且响应灵敏的云原生运维体系。文章不仅涵盖了容器化技术的选择与优化、自动化部署、持续集成/持续交付(CI/CD)流程的整合,还讨论了监控、日志管理以及灾难恢复策略的重要性。这些实践旨在帮助运维团队有效应对微服务架构下的复杂性,确保系统可靠性及业务的连续性。
|
1天前
|
监控 持续交付 Docker
使用Docker进行微服务架构的最佳实践
【5月更文挑战第10天】本文探讨了使用Docker实施微服务架构的最佳实践。首先,理解微服务架构是拆分小型独立服务的模式,借助Docker实现快速部署、高可移植性和环境一致性。Docker的优势在于服务扩展、容器编排、自动化构建与部署。最佳实践包括:定义清晰服务边界,使用Dockerfile和Docker Compose自动化构建,利用Docker Swarm或Kubernetes编排,实施服务发现和负载均衡,监控与日志记录,以及持续集成和持续部署。Docker虽重要,但需与其他技术结合以确保系统整体稳定性。
|
1天前
|
消息中间件 数据管理 持续交付
构建高效微服务架构的最佳实践
【5月更文挑战第6天】在动态和快速演变的现代软件开发领域,微服务架构已经成为促进敏捷开发和部署的关键模式。本文将深入探讨构建和维护高效微服务架构的策略,包括服务划分准则、通信机制、数据管理及持续集成与持续交付(CI/CD)的实施。通过分析不同业务场景下的应用案例,本文旨在为开发者提供一套行之有效的指导原则和实践方法,以支持他们构建可扩展、灵活且高效的微服务系统。
97 2
|
1天前
|
消息中间件 数据库 开发者
构建高效微服务架构:后端开发的最佳实践
【4月更文挑战第30天】在现代软件开发中,微服务架构已成为一种流行且有效的方法,它能够提高系统的可扩展性、弹性和维护性。本文将探讨后端开发中构建微服务架构的关键要素,包括服务划分、通信机制、数据一致性和容错处理。通过深入分析这些要素,我们将提供一系列最佳实践,帮助开发者构建一个高性能、可维护的微服务系统。
|
1天前
|
消息中间件 监控 微服务
【专栏】随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能
【4月更文挑战第27天】本文探讨了构建高效微服务架构的后端开发最佳实践。微服务以服务独立、去中心化、自治和轻量级通信为核心原则,带来可扩展性、独立性、技术灵活性和团队协作优势。实践中,要注意服务拆分粒度、选择合适的通信协议(如RESTful、RPC、消息队列)、处理数据一致性与分布式事务、实施服务治理和监控,以及确保安全性与权限控制。随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能。
|
1天前
|
监控 测试技术 持续交付
探索现代微服务架构的最佳实践
【4月更文挑战第25天】 随着软件开发领域不断演进,微服务架构已成为设计灵活、可扩展且高度可维护系统的首选方案。本文将深入探讨构建和部署微服务时的关键最佳实践,涵盖从服务划分原则到持续集成/持续部署(CI/CD)的流程,再到监控与日志记录的策略。我们的目标是为开发者提供一套实用的指南,帮助他们在构建未来的应用程序时做出明智的架构选择,并确保这些系统能够快速响应市场和技术的变化。
|
1天前
|
Kubernetes API 持续交付
构建高效微服务架构:后端开发的最佳实践
【4月更文挑战第25天】 在当今快速演变的技术景观中,微服务架构已成为组织追求敏捷性、可扩展性和技术灵活性的重要策略。本文深入探讨了构建高效微服务架构的关键步骤和最佳实践,涵盖了服务划分原则、容器化部署、API网关设计以及持续集成与交付等方面。通过综合分析,旨在为后端开发人员提供一套实用的指南,帮助他们在面对复杂系统时能够做出明智的决策,并实现高性能、低耦合的服务架构。
|
1天前
|
Kubernetes Cloud Native 持续交付
构建高效云原生应用:容器化与微服务架构的融合
【4月更文挑战第24天】 随着云计算的不断演进,云原生技术已成为企业数字化转型的核心动力。本文深入探讨了如何通过容器化技术和微服务架构的融合,构建高效、可扩展且易于管理的云原生应用。我们分析了容器化带来的隔离性和可移植性优势,以及微服务架构在提升系统灵活性和促进团队协作方面的重要作用。文章还提供了实施策略,包括选择合适的容器平台、确保服务间通信的安全性以及持续集成/持续部署(CI/CD)的实践,以帮助企业实现敏捷开发和快速迭代。
|
1天前
|
存储 设计模式 持续交付
构建高效微服务架构的最佳实践
【4月更文挑战第23天】 在当今快速演进的软件开发领域,微服务架构已成为实现敏捷、可扩展和灵活应用的关键方式。本文将深入探讨如何构建一个高效的微服务系统,从选择合适的技术栈到设计模式的应用,再到持续集成与部署的实践。我们将通过具体案例分析和性能优化技巧,为开发者提供一系列可靠的最佳实践指南,帮助团队克服常见的挑战,打造高性能、易于维护的微服务应用。
48 0
|
1天前
|
监控 负载均衡 API
构建高性能微服务架构:后端开发的最佳实践
【4月更文挑战第14天】 在当今快速发展的软件开发领域,微服务架构已成为构建可扩展、灵活且容错的系统的首选方法。本文深入探讨了后端开发人员在设计和维护高性能微服务时需要遵循的一系列最佳实践。我们将从服务划分原则、容器化部署、API网关使用、负载均衡、服务监控与故障恢复等方面展开讨论,并结合实际案例分析如何优化微服务性能及可靠性。通过本文的阅读,读者将获得实施高效微服务架构的实用知识与策略。

热门文章

最新文章

http://www.vxiaotou.com