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

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

系统层次划分


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

image.png

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

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


基础设施架构演进


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

一台主机运行多个组件

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

一台主机运行一个组件

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

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

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

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

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

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

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

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

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

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

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


基础架构核心问题


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

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

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

目录
相关文章
|
3月前
|
存储 架构师 测试技术
架构之道——人人都是架构师
本文的探讨和编写主要围绕三个方面:架构是什么?架构师要解决的问题有哪些?解决这些问题的方法论是什么?最后作者希望人人都能具备架构师思维。
|
1月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
高并发下的秒杀系统设计是一个复杂的挑战,涉及多个关键技术点。40岁老架构师尼恩在其读者交流群中分享了16个关键架构要点,帮助解决高并发下的秒杀问题,如每秒上万次下单请求的处理、超卖问题的解决等。这些要点包括业务架构设计、流量控制、异步处理、缓存策略、限流熔断、分布式锁、消息队列、数据一致性、存储架构等多个方面。尼恩还提供了详细的实战案例和代码示例,帮助读者全面理解和掌握秒杀系统的架构设计。此外,他还分享了《尼恩Java面试宝典》等资源,帮助读者在面试中脱颖而出。如果你对高并发秒杀系统感兴趣,可以关注尼恩的技术自由圈,获取更多详细资料。
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
|
1月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
高并发下,如何设计秒杀系统?这是一个高频面试题。40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试Shopee时遇到了这个问题,未能很好地回答,导致面试失败。为此,尼恩进行了系统化、体系化的梳理,帮助大家提升“技术肌肉”,让面试官刮目相看。秒杀系统设计涉及16个架构要点,涵盖业务架构、流量架构、异步架构、分层架构、缓存架构、库存扣减、MQ异步处理、限流、熔断、降级、存储架构等多个方面。掌握这些要点,可以有效应对高并发场景下的秒杀系统设计挑战。
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
|
3月前
|
Cloud Native 安全 中间件
核心系统转型问题之云原生架构下的基础资源设施应重点考虑什么方面
核心系统转型问题之云原生架构下的基础资源设施应重点考虑什么方面
|
4月前
|
存储 架构师 测试技术
架构之道:人人都是架构师(2)
每个业务系统的开发者都应该具备一定的架构师素养,架构师的重要职责不仅仅是做决策,更重要的是提升团队的整体能力。一个好的架构师应该聚焦于业务和系统,定义问题和结果,设计系统、模块和代码,同时也需要解决跨域问题,确定团队间的边界,制定规范,统一语言,并创建一个让每个人都能成长为架构师的环境,以促进团队的敏捷性。本文旨在探讨如何培养架构思维,并阐述了架构师的职责、能力模型、方法论,以及如何成为架构师。
141 10
|
4月前
|
存储 运维 架构师
架构之道:人人都是架构师(1)
架构之道:人人都是架构师
178 8
|
4月前
|
负载均衡 监控 Kubernetes
Service Mesh 是一种用于处理服务间通信的基础设施层,它通常与微服务架构一起使用,以提供诸如服务发现、负载均衡、熔断、监控、追踪和安全性等功能。
Service Mesh 是一种用于处理服务间通信的基础设施层,它通常与微服务架构一起使用,以提供诸如服务发现、负载均衡、熔断、监控、追踪和安全性等功能。
|
6天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
5天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
5天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
16 1
服务架构的演进:从单体到微服务的探索之旅