考古:IT架构演进之IOE架构

考古:IT架构演进之IOE架构


IOE架构(IBM, Oracle, EMC)出现在20世纪末至21世纪初,是一种典型的集中式架构体系。在这个阶段,企业的关键业务系统往往依赖于IBM的小型机(后来还包括大型机)、Oracle的关系型数据库管理系统以及EMC的高端存储解决方案。这种架构的优势在于其高度稳定、可靠且性能强大,但是扩展性差、成本高昂,且过于依赖单一供应商的技术栈。基于以上特点,该架构主要在金融、电信以及其他关键业务领域得到了广泛使用。
  这种架构强调高度集中、强大可靠且性能卓越,但在扩展性和成本效益方面存在局限性,尤其是在面对互联网时代的大规模、高并发和灵活扩展需求时就显得束手无策。

1、三大支柱

这一架构主要由IBM小型机、Oracle数据库和EMC存储系统三大支柱构成,是过去企业级IT架构中的三个核心组成部分,它们在传统数据中心环境中发挥着至关重要的作用,并彼此之间有着密切的关联和相互依赖关系:

1.1、IBM(I)

IOE架构中"I"通常指的是IBM的高性能服务器(IBM小型机,如Power Systems),这是一种高性能、高可靠性的计算平台,专为处理关键业务工作负载而设计,支持复杂的企业应用程序和数据库服务。IBM小型机通常具备出色的稳定性、可用性和可管理性,以及较强的处理能力,可以承载诸如Oracle数据库在内的关键应用。

1.2、Oracle (O)

IOE架构中"O"通常指的是Oracle数据库管理系统(业界领先的商业关系型数据库管理系统),这是一个在全球范围内广泛应用的关系型数据库软件。适用于企业级数据存储和管理,提供高度可靠、可扩展的数据服务。Oracle数据库常用于处理大规模、高并发、对事务处理要求严格的业务场景,如金融交易记录、客户订单管理等。

1.3、EMC (E)

IOE架构中"E"通常指的是EMC高端存储系统,是当时市场上备受青睐的企业级数据存储解决方案提供商,提供了一系列高性能、高容量、高可用的存储产品,满足企业对于海量数据存储和备份恢复的要求。EMC的产品包括磁盘阵列、NAS(网络附加存储)和SAN(存储区域网络)等,确保数据的安全性和访问效率。这些存储设备在为企业提供了可靠的、大容量的数据存储空间的同时,还通过高速的网络连接与IBM服务器和Oracle数据库配合,确保数据的高效存取和高可用性。

综上,三者之间的关系可以概括如下:

  • IBM服务器为运行Oracle数据库提供坚实的硬件平台;
  • Oracle数据库在IBM服务器上运行,处理和存储企业的核心数据;
  • EMC存储系统与IBM服务器及Oracle数据库相联接,共同保障企业数据的安全存储和高效访问。

2、高可用实现

IOE架构高可用的实现可从各个组成部分来拆分实现和操作系统、网络层面实现:

2.1、IBM

硬件冗余与故障切换,IBM提供的系统通常具备高级别的硬件冗余设计,例如电源冗余、硬盘冗余(RAID)、内存镜像等。同时,许多IBM系统支持高可用集群(如PowerHA SystemMirror或HACMP),在主系统发生故障时,可以自动切换到备用系统,保持业务连续性。

2.2、Oracle数据库

  • RAC (Real Application Clusters):Oracle RAC允许数据库在多台服务器之间共享,形成一个集群。当某一台服务器宕机时,其他服务器可以无缝接管服务,保证数据库的不间断运行。
  • Data Guard: Oracle Data Guard通过创建数据库的备用实例,实时同步或异步复制主数据库的数据,以便在主数据库出现问题时,能够快速切换到备用实例继续提供服务。

2.3、EMC存储高可用

  • 存储阵列冗余:EMC的高端存储系统会采用多种冗余机制,如RAID、镜像、快照、复制等技术,确保数据在硬件故障时不会丢失。
  • 存储区域网络(SAN)和网络附加存储(NAS):通过SAN或NAS技术可以构建共享存储环境,支持多台服务器同时访问同一份数据,结合存储虚拟化技术实现存储资源的动态分配和故障转移。
  • Geo-Replication或类似异地灾备方案:用于实现跨地域的数据复制和恢复,即使主数据中心发生灾难性故障,也能在短时间内恢复业务。

2.4、操作系统层面的高可用设计

集群技术:在操作系统级别,通过集群软件可以将多个系统组成一个高可用集群,当某个节点失效时,集群能快速检测并重新分配资源,确保服务不中断。

2.5、网络冗余与负载均衡

在网络层面上,通过双路径或多路径网络设计,以及负载均衡器等设备,实现网络连接的冗余和流量分配,避免因网络故障导致的业务中断。
  综上所述,IOE架构通过整合IBM服务器的硬件冗余、Oracle数据库的集群技术以及EMC存储系统的冗余与灾备机制,辅以操作系统级别的集群管理和网络层面的冗余与负载均衡设计,旨在构建涵盖硬件、操作系统、数据库直至网络层面的全方位高可用体系,以确保企业关键业务的连续性和数据安全性。

3、高可用案例

结合上述讲解的各类IOE组件、操作系统和网络实现高可用的方案中,IOE架构通常结合使用虚拟IP、心跳线以及进程清单等技术手段来实现高可用。

3.1、虚拟IP (VIP)

虚拟IP地址是指在网络中不直接绑定到任何物理网卡上的IP地址,而是作为服务的访问入口。在高可用集群环境中,虚拟IP地址会被浮动地绑定到当前处于活跃状态的服务器上。
  当集群中的主服务器正常工作时,虚拟IP会绑定在该服务器的网络接口上,所有客户端请求都会通过虚拟IP发送到主服务器。
  当主服务器出现故障时,虚拟IP会自动漂移到备份服务器上,客户端无需感知服务器切换过程,仍可通过虚拟IP继续访问服务,从而实现服务的无缝切换。

3.2、心跳线

心跳线(Heartbeat)是集群成员之间用来监测对方健康状况的一种通信机制。集群内的每台服务器定期发送心跳消息给其他服务器,表示自身仍在正常运行。
  如果主服务器停止发送心跳消息,那么备份服务器就会认为主服务器已出现故障,并启动接管程序,将虚拟IP地址绑定到自己身上,接手服务提供任务。
  心跳线不仅可以监测服务器是否在线,还可以交换必要的集群状态信息,如哪个节点正在提供服务、是否有资源变动等。

3.3、进程清单

进程清单是指集群内定义的一系列关键业务进程及其监控规则。在高可用集群软件(如Linux-HA项目中的Heartbeat、IBM PowerHA、Oracle RAC等)中,会明确指定哪些服务或进程需要保持高可用性。
  当主服务器出现故障,心跳线检测到异常后,备份服务器不仅会接管虚拟IP,还会按照预设的进程清单启动相应的服务进程,确保业务连续性。
  同样,当主服务器恢复正常时,备份服务器会释放虚拟IP并将服务切换回主服务器,保持集群环境的稳定和平衡。

综合以上三种技术,IOE架构可以通过虚拟IP实现服务访问的统一入口和故障切换,通过心跳线实现实时监控和故障检测,通过进程清单确保关键业务的自动恢复和迁移,从而达到高可用目标。不过,具体的实施细节会根据不同的IOE组件(如IBM AIX系统上的PowerHA、Oracle数据库的RAC等)和相关集群管理软件的具体功能有所差异。

4、去IOE运动

IOE架构的主要特点是高度集中和专业化,这样的架构在过去的IT环境中非常受欢迎,因为它能够提供极高的稳定性和服务质量,尤其适合那些对数据一致性、处理速度和业务连续性要求极高的场景。然而,随着云计算、分布式计算和开源技术的发展,IOE架构的成本、扩展性问题逐渐凸显出来,尤其是在大规模互联网业务场景下,这种高度集中的架构显得不够灵活和经济。
  "去IOE"运动随之兴起,尤其是像阿里巴巴这样的大型互联网公司,他们开始倡导并实践使用更加开放、低成本、可扩展性强的IT架构,比如采用开源数据库MySQL、MongoDB等替代Oracle数据库,使用基于x86架构的PC服务器集群取代IBM小型机,以及使用分布式存储系统替代传统的高端存储设备,从而降低对单一供应商的依赖,提高IT架构的灵活性和经济效益。
  "去IOE"运动在中国尤其引人注目,尤其是阿里巴巴等公司在应对业务爆发式增长和技术自主可控的需求下,提出了摆脱对传统IOE架构的依赖,转向自主研发或采用更为开放、性价比更高的软硬件方案。
  同时安全因素也推动了这一运动,例如棱镜门事件之后,信息安全的重要性被进一步强化,很多企业和政府机构开始寻求国内技术和产品的替代方案,减少对外部技术的依赖。


一键三连,让我的信心像气球一样膨胀!

相关推荐
The_Ticker2 小时前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
天天扭码5 小时前
五天SpringCloud计划——DAY2之单体架构和微服务架构的选择和转换原则
java·spring cloud·微服务·架构
余生H6 小时前
transformer.js(三):底层架构及性能优化指南
javascript·深度学习·架构·transformer
凡人的AI工具箱6 小时前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang
运维&陈同学6 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
架构师Wu老七13 小时前
【软考】系统架构设计师-信息系统基础
系统架构·软考·系统架构设计师·信息系统基础
哔哥哔特商务网19 小时前
一文探究48V新型电气架构下的汽车连接器
架构·汽车
007php00719 小时前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang