架构解密:从分布式到微服务

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

本文是笔者多年来积累和收集的知识技能图谱,有的是笔者原创总结的最佳实践,有的是小伙伴们的分享,其中每个秘籍图谱里面的内容都是互联网高并发架构师应该了解和掌握的知识,笔者索性把这些图谱收集在一起,并且归类便于查找和学习,希望能够帮助到每一位想成为架构师或者已经是架构师的小伙伴,这里我们的标题“史上最全的架构师图谱”是本文的目标,作者计划把这篇文章作为一个开放性的文章,如果读者发现更多的图谱,请联系作者本人,我们把更多的图谱、思维导图汇集在其一起,最终一定能成为互联网上“史上最全的架构师图谱”。

 

1 、架构师系列

 

 

架构师图谱

Java架构师图谱

 

 

微服务架构秘籍

 

一致性图谱

 

互联网大流量的方法

 

安全秘籍

 

阿里巴巴常用小框架

 

架构方法论图谱

 

设计模式秘籍图谱

 

2 、Java系列

 

JVM垃圾回图谱

 

Java并发图谱

 

Java集合图谱

 

Java集合类图

 

Java List类图

 

Java Map类图

 

Java Set类图

 

3、大数据系列

 

Hadoop技能图谱

 

大数据技能图谱

 

4、云计算系列

 

云计算图谱

 

云计算技能图谱

 

5、其他

 

IOS技能图谱

 

OpenResty技能图谱

 

前端技能图谱

 

容器技能图谱

 

嵌入式开发技能图谱

 

开发语言宝典

 

移动端测试图谱

 

DevOps 和运维开发

 

随着开发运维一体化的DevOps运动在国内外蓬勃发展,DevOps相关工具也呈现热闹趋势,在这个言必谈如何实施落地引入工具、建设平台的大环境下,我们今天也来盘点一下DevOps相关工具。

 

先来看一下业界对DevOps工具的各种分类介绍。

 

一、DevOps应用交付工具链

 

ElasticBox是国外一个云应用管理工具,主要用于实现云应用生命周期的可视化管理,他们的口号是“Deploy any Application Anywhere – Zero stress,Total control”。

 

关于DevOps工具,他们整理了一个脑图:

 

 

主要从开发、部署、维护三个方面把常用的开源工具做了一个分类:

 

1、开发

开发类的DevOps工具又分为:

(1) 版本控制和协作,例如Git、SVN等

(2) 构建和测试自动化,例如Ant、Selenium、Jmeter等

(3) 持续集成和交付,例如Jenkins、CruiseControl等

 

2、部署

部署类的DevOps工具分为:

(1) 容器平台,例如Docker等

(2) 配置管理,例如Chef、Puppet、Ansible等

(3) 微服务平台,例如Cloud Foundry、Kubernetes等

(4) 服务开通,例如Puppet、Docker Swarm、Vagrant等

 

3、维护

维护类的DevOps工具分为两大类:

(1) 日志,例如logstash等

(2) 监控告警和分析,例如Nagios、Zabbix、Kibana等

从ElasticBox对开源的DevOps工具的分类来看,主要是围绕着应用从构建到部署、交付运维这样的工具链**来分类的。

 

二、DevOps工具元素周期表

 

XebiaLabs是国外一家围绕着企业规模化可靠软件交付自动化做解决方案和工具的厂商,他们的口号是大规模、更快速地自动交付:“Get the visibility, automation, and control to deliver software faster and with less risk.”。

 

关于DevOps工具,他们以元素周期表的展现形式整理了一个图:

 

 

图中按颜色标注不同类型的DevOps工具,包括:

 

(1)数据库,例如:Oracle、MySQL、Cassandra等;

(2)持续集成,例如:Jenkins、TeamCity等;

(3)部署,例如:SSH、XLDeploy等;

(4)云/IaaS、PaaS,例如:Amazon Web Services、Azure等;

(5)业务分析/监控,例如:Splunk、Nagios等;

(6)配置管理,例如:Git、SVN等;

(7)库管理,例如:Nexus、NuGet等;

(8)配置/服务开通,例如:Chef、Puppet、Ansible、Vagrant等;

(9)发布管理,例如:XL Release、UrbanCode Release等;

(10)日志,例如:Sumo Logic、Logstash等;

(11)构建,例如:Gradle、Ant、Maven等;

(12)测试,例如:Junit、Cucumber、Selenium、Jmeter、Appium等;

(13)容器化,例如:Docker、Kubernetes、Mesos等;

(14)协作,例如:Jira、Flowdock等;

(15)安全,例如:Snort、CyberArk等。

 

看起来XebiaLabs的分类更全面,既包括了开源工具也包含商业工具,当然也包括了XebiaLabs自己的工具;但是看起来又有点为了构成元素周期表而一些工具的味道**,例如,个人认为数据库这类基础软件就没必要跟DevOps扯上了吧?!

 

另外,XebiaLabs的分类在某些地方与ElasticBox的分类有出入**,例如,ElasticBox把Kubernetes放到部署类,而XebiaLabs把它放到单独的容器化这个类别,当然,ElasticBox的部署类这个大的类别也是包含了容器化的。

 

三、基于DevOps能力矩阵的工具分类

 

既然没有统一的DevOps工具分类标准,那么我个人也想从之前归纳总结的DevOps能力矩阵模型的角度,对DevOps相关的工具进行一些分类。

 

 

Devops凭借其连接弥合开发与运营团队的能力正在各个行业呈现席卷之势。开发人员和运营人员历来就是水火不容,无论是在开发、测试还是部署上都有着很大的分歧,只有Devops才能扭转这一局面。

 

我们从DevOps的核心理念可以看出,DevOps强调开发、QA、运维的一体化融合。

 

 

 

但是,本质上来看开发、QA、运维又是分属不同的部门和组织(尤其是传统企业),有着自己的过程管理方式,主要负责的事情不一样,所谓“术业有分工”,因此用到的工具也有所不同。**

 

那下边我们就尝试归纳一下开发、QA、运维各自常用的一些工具,并且尝试从DevOps能力融合的角度分析,哪些工具是三者或两两之间可以共用的,并挑选一些典型工具做简单介绍。

 

(一)开发类典型DevOps能力融合工具

 

敏捷开发已经成为主流,敏捷开发中的核心实践“持续集成”也逐渐被很多企业推广应用,Jenkins作为这个领域的开源工具老大哥的位置已经事实上被确立了。

 

Jenkins通常被用在配置管理和部署代码上,同时它也能够与Puppet、Chef和容器技术一起使用,还有自动化的测试,例如Selenium、Jmeter也能被很好地整合到Jenkins持续集成的管道中。

开发人员、QA、测试和运维人员都在用Jenkins就很好地说明了Jenkins在DevOps领域的大好前景。

 

 

(二)QA类典型DevOps能力融合工具

 

无论开发还是测试,还是运维,对软件系统的性能都是非常关注的,因此APM这类上接运营(用户感知)与运维(性能监控),下接QA(性能管理)与开发(性能分析)的工具就理所当然地在近几年开始火爆起来了!

 

下图是国外的老牌APM厂商的New Relic,使用New Relic企业可以迅速从多个角度查看并解决应用中出现的错误:

 

 

New Relic高级产品经理Stevan Arychuk说New Relic可以提升高质量软件交付的速度并同时降低企业所面临的风险。企业中各团队的角色和职责有所不同,但是通过多角度的数据分析,各个团队之间的沟通、协作、交流可以得到加强,最终达到共同合作的目的。

 

(三)运维类典型DevOps能力融合工具

 

1**、Automic**

美国员工福利管理公司TASC使用Automic来实现其软件部署的自动化,应用Automic,号称可以在下午三点部署而不被别人发现。

 

 

自动部署是开发的持续集成、测试之后衔接运维上线的一道关键工序,应用Automic这类自动化工具能软件系统的部署和交付过程更敏捷、稳定高效、高质量地完成。

 

2、DynaTrace Ruxit

传统的运维工具大多聚焦在监控类,尤其是基础设施的监控,例如主机、中间件、数据库的监控,尤其是服务器资源层面的监控,对应用层、业务层面的监控偏少,这会导致针对具体问题的分析,开发、QA、运维之间的共同语言偏少。

 

Devops的核心就是各个部门之间的协作,除了这个协作的理念之外还需要一种方式来进行沟通。

 

DynaTraceRuxit的智能查看功能可以直观地展示应用和其依赖之间的关系,这样软件开发流程中的不同角色之间可以使用Ruxit来进行沟通和自动化的分析。

 

 

 

 

QA 测试脑图

 

 

  看不清楚吧?别急!下面会给大家一个清楚的交待,哈哈。

  “软件测试全景图”整个思维导图有9个模块,分别是:

  · 测试的定义,包括测试标准、原则、历史等;

  · 测试五大流派,包括传统测试、敏捷测试、探索式测试、SBTM

  · 测试方法:MBT、ReBT、RiBT等等

  · 测试层次和类型:单元测试、集成测试、系统测试、验收测试等;

  · 测试方式:手工 vs. 自动化的,静态 vs. 动态,主动的 vs. 被动的

  · 自动化测试(含测试工具),包括其策略、自动化测试框架

  · 测试技术: 面向SOA/微服务测试技术、web测试技术、移动测试技术等;

  · 测试过程:过程模型、过程改进等

  · 测试管理:测试件、缺陷、质量、度量等管理

 

让我一个一个模块给大家详细介绍。

 

  1.测试的定义

 

 

  2. 测试流派

 

 

  3. 测试方法

 

 

 

  4. 测试层次和类型

 

 

     5. 测试方式

 

 

 

 

  6. 自动化测试(含测试工具)

 

 

  7. 测试技术/8. 测试过程

 

  9. 测试管理

 

 

出处:简书

 

版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。

 

 

 

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/7193113.html/,如需转载请自行联系原作者

相关文章
|
16天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
15天前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
128 68
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
14天前
|
运维 监控 持续交付
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。
138 36
微服务架构解析:跨越传统架构的技术革命
|
1天前
|
设计模式 监控 Java
分布式系统架构4:容错设计模式
这是小卷对分布式系统架构学习的第4篇文章,重点介绍了三种常见的容错设计模式:断路器模式、舱壁隔离模式和重试模式。断路器模式防止服务故障蔓延,舱壁隔离模式通过资源隔离避免全局影响,重试模式提升短期故障下的调用成功率。文章还对比了这些模式的优缺点及适用场景,并解释了服务熔断与服务降级的区别。尽管技术文章阅读量不高,但小卷坚持每日更新以促进个人成长。
20 11
|
3天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
30 11
|
5天前
|
自然语言处理 负载均衡 Kubernetes
分布式系统架构2:服务发现
服务发现是分布式系统中服务实例动态注册和发现机制,确保服务间通信。主要由注册中心和服务消费者组成,支持客户端和服务端两种发现模式。注册中心需具备高可用性,常用框架有Eureka、Zookeeper、Consul等。服务注册方式包括主动注册和被动注册,核心流程涵盖服务注册、心跳检测、服务发现、服务调用和注销。
38 12
|
17天前
|
设计模式 负载均衡 监控
探索微服务架构下的API网关设计
在微服务的大潮中,API网关如同一座桥梁,连接着服务的提供者与消费者。本文将深入探讨API网关的核心功能、设计原则及实现策略,旨在为读者揭示如何构建一个高效、可靠的API网关。通过分析API网关在微服务架构中的作用和挑战,我们将了解到,一个优秀的API网关不仅要处理服务路由、负载均衡、认证授权等基础问题,还需考虑如何提升系统的可扩展性、安全性和可维护性。文章最后将提供实用的代码示例,帮助读者更好地理解和应用API网关的设计概念。
46 8
|
12天前
|
存储 算法 安全
分布式系统架构1:共识算法Paxos
本文介绍了分布式系统中实现数据一致性的重要算法——Paxos及其改进版Multi Paxos。Paxos算法由Leslie Lamport提出,旨在解决分布式环境下的共识问题,通过提案节点、决策节点和记录节点的协作,确保数据在多台机器间的一致性和可用性。Multi Paxos通过引入主节点选举机制,优化了基本Paxos的效率,减少了网络通信次数,提高了系统的性能和可靠性。文中还简要讨论了数据复制的安全性和一致性保障措施。
30 1
|
20天前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
39 8
|
17天前
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
下一篇
DataWorks