架构师之路 -- 基础设施架构

简介: 架构师之路 -- 基础设施架构

系统层次划分


任何一个系统按照逻辑部署维度都可以划分成应用层与基础设施层,开发的应用软件还有使用第三方的应用可以抽象成一些组件的集合,为了运行这些组件需要基础设施层来提供支撑,基础设施层有物理机、存储、虚拟机、容器这些元素。

image.png

基础设施层中最基本的是物理机,随着技术的发展慢慢出现了虚拟机和容器。

我们先来看看基础设施架构的演进。


基础设施架构演进


基础设施架构不是一步到位的事情,是需要循环渐进不断完善,随着系统复杂度的提升和业务发展不断的演进。接下来我们以Ngnix+web+db这样最基础的架构看看一个系统的基础设施从简单到复杂的演变的过程:

一台主机运行多个组件

在系统上线初期用户量比较小,对系统的可用性要求也比较低。这样我们可以将所有组件都部署在一台主机上。

一台主机运行一个组件

随着系统业务发展,系统有了性能方面的要求,这时候就需要独立部署,一个组件部署到一台机器上,每台机器的配置也不尽相同,比如数据库和web服务器配置会更高点。

一个组件运行在多台主机上

随着业务的继续发展,系统有了可用性方面的要求,这时候就需要将组件进行多实例部署,每个实例部署在不同的机器上,通过集群软件来支持主备切换,这样就形成了既保证性能又保证可用性的架构。

主机有多台,每台运行多个组件,有负载均衡和主备切换机制

随着系统复杂度的提升,部署的组件越来越多。如果再采用一台机器部署一个组件的话会导致运营成本上升过快,考虑到资源成本这时候就会考虑交叉式的部署架构。一台机器部署多个组件,但是他们之间是交叉进行部署。这样既保证了组件有多实例又保证了任何一台机器挂了的话最少还有一个实例能提供服务。

一个组件用一台虚拟机运行,一台物理机运行多个虚拟机

物理机的性能相对都比较高,如果一台物理机只部署几个组件实际上是对物理机的浪费。为了提高物理机的资源利用率这时候我们将物理机拆分成虚拟机来对外提供部署能力。

一台物理机首先划分出若干个虚拟机,这些组件分别部署在这些虚拟机里。这样就实现了资源的充分利用也提升了系统的可用性还有运维的便利度。

一个组件用一个容器运行,一台物理机上运行多个容器

再往后我们可以将虚拟机替换成容器实现,容器是更轻量的技术,使用容器可以有更高的资源使用率

这就是一个系统基础设施演进的过程,当然这些方案并不是说只能选择其中一种,可以根据实际场景组合使用,演变成既有物理机也有虚拟机、容器的混合状态。


基础架构核心问题


基础设施原则上是解决组件到运行环境的映射问题,基础设施架构需要考虑下面十个方面的核心问题:

  • 主机硬件配置 需要选择什么样的配置来支撑组件部署?
  • 主机与组件的对应关系 主机与组件之间是什么关系?哪些组件部署在哪些主机上?
  • 主机管理 如何管理这些主机?
  • 组件管理 如何管理众多的组件?
  • 环境隔离 不同开发环境之间如何隔离?
  • 资源隔离 一个组件占用太多资源的话势必会导致其他组件资源变少?如何给组件分配合适的资源?
  • 总体资源利用率 系统的利用率是否处在一个合理的状态?
  • 性能 部署架构下各个组件的性能是否能得到保障?会不会出现瓶颈?
  • 可用性 主机挂了系统的可用性能否得到保障?
  • 成本 如何在有限的预算下去支撑所有组件的运行,或者说是能否通过一些好的设计去节省预算?

考虑了上面几个核心问题做出的基础设施架构才是良好的架构,这些核心问题的解决又需要架构师对服务器、网络、存储等知识有一定的了解,关注本系列文章,帮你解决这些问题。

目录
相关文章
|
3月前
|
存储 架构师 测试技术
架构之道——人人都是架构师
本文的探讨和编写主要围绕三个方面:架构是什么?架构师要解决的问题有哪些?解决这些问题的方法论是什么?最后作者希望人人都能具备架构师思维。
|
14天前
|
缓存 NoSQL Java
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
高并发下的秒杀系统设计是一个复杂的挑战,涉及多个关键技术点。40岁老架构师尼恩在其读者交流群中分享了16个关键架构要点,帮助解决高并发下的秒杀问题,如每秒上万次下单请求的处理、超卖问题的解决等。这些要点包括业务架构设计、流量控制、异步处理、缓存策略、限流熔断、分布式锁、消息队列、数据一致性、存储架构等多个方面。尼恩还提供了详细的实战案例和代码示例,帮助读者全面理解和掌握秒杀系统的架构设计。此外,他还分享了《尼恩Java面试宝典》等资源,帮助读者在面试中脱颖而出。如果你对高并发秒杀系统感兴趣,可以关注尼恩的技术自由圈,获取更多详细资料。
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
|
14天前
|
缓存 NoSQL Java
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
高并发下,如何设计秒杀系统?这是一个高频面试题。40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试Shopee时遇到了这个问题,未能很好地回答,导致面试失败。为此,尼恩进行了系统化、体系化的梳理,帮助大家提升“技术肌肉”,让面试官刮目相看。秒杀系统设计涉及16个架构要点,涵盖业务架构、流量架构、异步架构、分层架构、缓存架构、库存扣减、MQ异步处理、限流、熔断、降级、存储架构等多个方面。掌握这些要点,可以有效应对高并发场景下的秒杀系统设计挑战。
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
|
3月前
|
Cloud Native 安全 中间件
核心系统转型问题之云原生架构下的基础资源设施应重点考虑什么方面
核心系统转型问题之云原生架构下的基础资源设施应重点考虑什么方面
|
4月前
|
存储 架构师 测试技术
架构之道:人人都是架构师(2)
每个业务系统的开发者都应该具备一定的架构师素养,架构师的重要职责不仅仅是做决策,更重要的是提升团队的整体能力。一个好的架构师应该聚焦于业务和系统,定义问题和结果,设计系统、模块和代码,同时也需要解决跨域问题,确定团队间的边界,制定规范,统一语言,并创建一个让每个人都能成长为架构师的环境,以促进团队的敏捷性。本文旨在探讨如何培养架构思维,并阐述了架构师的职责、能力模型、方法论,以及如何成为架构师。
137 10
|
4月前
|
存储 运维 架构师
架构之道:人人都是架构师(1)
架构之道:人人都是架构师
165 8
|
4月前
|
负载均衡 监控 Kubernetes
Service Mesh 是一种用于处理服务间通信的基础设施层,它通常与微服务架构一起使用,以提供诸如服务发现、负载均衡、熔断、监控、追踪和安全性等功能。
Service Mesh 是一种用于处理服务间通信的基础设施层,它通常与微服务架构一起使用,以提供诸如服务发现、负载均衡、熔断、监控、追踪和安全性等功能。
|
21天前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
62 2
|
25天前
|
存储 缓存 监控
探索微服务架构中的API网关模式
【10月更文挑战第1天】探索微服务架构中的API网关模式
76 2
|
4天前
|
监控 Cloud Native Java
云原生架构下微服务治理策略与实践####
【10月更文挑战第20天】 本文深入探讨了云原生环境下微服务架构的治理策略,通过分析当前技术趋势与挑战,提出了一系列高效、可扩展的微服务治理最佳实践方案。不同于传统摘要概述内容要点,本部分直接聚焦于治理核心——如何在动态多变的分布式系统中实现服务的自动发现、配置管理、流量控制及故障恢复,旨在为开发者提供一套系统性的方法论,助力企业在云端构建更加健壮、灵活的应用程序。 ####
44 10

热门文章

最新文章