融数微服务架构

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 本文分享融数微服务技术选型、架构设计以及核心概念和实现,谈及融数DevOps平台对微服务的支撑和技术团队的组织。

内容简介

  • 谈谈微服务
  • 微服务技术选型过程
  • 微服务架构设计的一些思考点
  • 融数微服务架构的核心概念和实现
  • 融数DevOps平台对微服务的支撑
  • 技术团队的组织
  • Operation Excellent

谈谈微服务

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

微服务与SOA的异同

  • 从设计原则来讲,微服务架构遵循SOA principles
  • 小的、可重用的服务并不一定是微服务,微服务架构强调敏捷、独立开发、独立部署、独立扩展,重用在某种程度上范围影响
  • 敏捷性
  • 微服务架构为了实现其敏捷特性,在SOA约束的基础之上又添加了新的约束
  • 微服务之间不能互相依赖,因此要求微服务能够独立部署,独立扩展,微服务之间的依赖越少越好
    • 一个应用只做一件事
    • 不要为外部应用发布API,依赖通过service或者事件搞定
    • 最好通过异步事件交互
    • 每个应用拥有自己独立的数据
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

微服务技术选型过程

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
  • 目前团队主要采用Spring Boot + RestEasy的方式实现服务化
    • 首先支持rest
    • 现有业务代码的迁移不希望改动太大
    • 小团队,希望能够有一个比较全面的解决方案
  • 结论
    • Netflix提供了比较全面的解决方案
    • Spring Cloud对于Netflix的封装比较全面
    • Spring Cloud基于Spring Boot,团队有基础
    • Spring Cloud提供了Control Bus能够帮助实现监控埋点
    • 业务应用部署在阿里云,Spring Cloud对12factors以及Cloud-Native的支持,有利于在云环境下使用

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

融数微服务架构的核心概念和实现

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

核心模型

  • Shapes (定义数据类型)
    • Simple
    • List
    • Map
    • Structure
  • Traits (定义Shaps的行为)
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
  • Spring Cloud
  • 遵循12 Factors
    • 模式
    • Configuration Management
    • Service discovery
    • Circuit breakers
    • Intelligent routing
    • Control bus
    • One-time tokens
    • Global locks
    • Leadership election
    • Distributed sessions

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
融数DevOps平台对微服务的支撑

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
技术团队的组织

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

技术团队组织 – 结果导向

  • 主人翁意识(Ownership)
  • 行动力(Bias for Action)
  • 吃自己的狗粮(Eat your dog food)
    • 工程师负责从需求调研、设计、开发、测试、部署、维护、监控、功能升级等一系列的工作,也就是说软件工程师负责应用或者服务的全生命周期的所有工作
    • 运维是团队成员的第一要务,在强大的自动化运维工具的支撑下,软件工程师必须负责服务或者应用的SLA
  • 让开发人员参与架构设计,而不是架构师参与开发

Operation Excellent

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy
640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy


分享者简介:王东现任融数数据北京研发中心CTO,负责公司大数据平台、微服务框架以及DevOps平台的研发工作;毕业于天津大学,毕业后一直从事软件相关研发和架构设计工作,曾经在普元软件任资深架构师、IBM GBS任咨询经理、亚马逊任架构师等,后加入创业公司,从事研发和管理工作;热爱编程,喜欢钻研新技术,对于微服务、企业架构、大数据以及DevOps有浓厚的兴趣。


目录
相关文章
|
2天前
|
存储 监控 API
构建高效微服务架构:后端开发的现代实践
【5月更文挑战第9天】 在本文中,我们将深入探讨如何在后端开发中构建一个高效的微服务架构。通过分析不同的设计模式和最佳实践,我们将展示如何提升系统的可扩展性、弹性和维护性。我们还将讨论微服务架构在处理复杂业务逻辑和高并发场景下的优势。最后,我们将分享一些实用的工具和技术,以帮助开发者实现这一目标。
|
16小时前
|
存储 NoSQL MongoDB
【MongoDB 专栏】MongoDB 与微服务架构的结合
【5月更文挑战第11天】微服务架构流行趋势下,选择合适的数据库至关重要。MongoDB作为非关系型数据库,与微服务有天然契合度。其灵活的文档模型、水平扩展性、高性能及局部事务支持,满足微服务对数据模型多样性、高可用性、快速读写的需求。实践中,需注意数据划分、索引优化、监控调优和版本控制。未来,MongoDB在微服务中的应用将更广泛,新技术将提升其在微服务架构中的价值。
【MongoDB 专栏】MongoDB 与微服务架构的结合
|
22小时前
|
监控 数据库 开发者
构建高效可靠的微服务架构:策略与实践
【5月更文挑战第11天】在当今软件开发的世界中,微服务架构已经成为构建可扩展、灵活且容错的系统的首选方法。本文深入探讨了设计、部署和维护微服务系统时面临的挑战,并提出了一系列实用的策略和最佳实践。我们将从服务的划分原则出发,讨论如何确保每个微服务的自治性,以及如何通过容器化和编排技术实现服务的高效运行。文章还将涉及监控、日志记录和故障恢复的策略,旨在帮助开发人员构建一个既高效又可靠的微服务环境。
|
1天前
|
Kubernetes API 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第11天】 在现代软件开发的快速演变中,微服务架构已成为企业追求敏捷性、可扩展性和技术多样性的关键解决方案。本文旨在探讨如何构建高效的微服务架构,并分析其对后端开发的影响。我们将通过一系列最佳实践和策略,展示如何优化服务的独立性、弹性和性能,同时确保系统的整体稳定性和安全性。文章还将介绍容器化、API网关、服务发现和分布式追踪等关键技术的应用,为后端开发者提供一份全面的微服务实施指南。
|
1天前
|
设计模式 监控 API
构建高效的微服务架构:后端开发的新范式
【5月更文挑战第11天】 在当今的软件开发领域,微服务架构已经成为一种流行的设计模式。它通过将应用程序分解为一组小型、松散耦合的服务来提供高度可扩展和灵活的解决方案。本文将探讨如何构建一个高效的微服务架构,包括选择合适的技术栈、设计原则以及应对常见挑战的策略。我们将深入讨论如何确保系统的可维护性、可靠性和性能,同时考虑到安全性和监控的需求。
|
2天前
|
监控 持续交付 Docker
使用Docker进行微服务架构的最佳实践
【5月更文挑战第10天】本文探讨了使用Docker实施微服务架构的最佳实践。首先,理解微服务架构是拆分小型独立服务的模式,借助Docker实现快速部署、高可移植性和环境一致性。Docker的优势在于服务扩展、容器编排、自动化构建与部署。最佳实践包括:定义清晰服务边界,使用Dockerfile和Docker Compose自动化构建,利用Docker Swarm或Kubernetes编排,实施服务发现和负载均衡,监控与日志记录,以及持续集成和持续部署。Docker虽重要,但需与其他技术结合以确保系统整体稳定性。
|
2天前
|
缓存 负载均衡 API
微服务架构下的API网关性能优化实践
【5月更文挑战第10天】在微服务架构中,API网关作为前端和后端服务之间的关键枢纽,其性能直接影响到整个系统的响应速度和稳定性。本文将探讨在高并发场景下,如何通过缓存策略、负载均衡、异步处理等技术手段对API网关进行性能优化,以确保用户体验和服务的可靠性。
|
2天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第10天】在现代软件开发领域,微服务架构已经成为一种流行的设计模式,它通过将大型应用程序拆分为一组小型、独立和松散耦合的服务来提供更高的可伸缩性和灵活性。本文深入探讨了微服务架构的设计理念、实施步骤以及面临的挑战,并提出了一套实用的策略和最佳实践,帮助后端开发者构建和维护高效的微服务系统。
|
3天前
|
负载均衡 算法 NoSQL
探索微服务架构下的服务发现与治理
【5月更文挑战第9天】 在当今的软件开发领域,微服务架构已成为构建可伸缩、灵活且容错的系统的首选模式。随着服务的增多,如何有效地进行服务发现与治理成为了关键的挑战。本文将深入探讨微服务环境中服务发现的机制和治理策略,分析不同服务发现工具的优缺点,并提出一种基于一致性哈希和健康检查相结合的服务治理方案,旨在提高系统的可用性和性能。
|
3天前
|
监控 API 持续交付
构建高效可靠的微服务架构:策略与实践
【5月更文挑战第8天】在当今快速演进的软件开发领域,微服务架构已经成为实现敏捷开发、持续交付和系统弹性的关键模式。本文将探讨构建一个高效且可靠的微服务系统所必须的策略和最佳实践。我们将从服务的划分与设计原则出发,讨论如何通过容器化、服务发现、API网关以及断路器模式来优化系统的可伸缩性和鲁棒性。此外,我们还将涉及监控、日志管理以及CI/CD流程在确保微服务架构稳定运行中的作用。