热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenStackNova架构图文介绍

Openstack是一系列开源技术组合在一起提供了一个可扩展性很强的云操作系统,我们可以把它想象成一个软件可以把你的硬件资源想亚马逊的AmazonWebServices提供给大家使用,它主要有三部分组成Swift:提供对象/块存储,它大概类似于Rackspace的CloudFiles和

Openstack是一系列开源技术组合在一起提供了一个可扩展性很强的云操作系统,我们可以把它想象成一个软件可以把你的硬件资源想亚马逊的Amazon Web Services提供给大家使用,它主要有三部分组成

Swift:提供对象/块存储,它大概类似于Rackspace的Cloud Files 和亚马逊的S3(Simple Storage Service)

Glance:为Nova提供发现,存储和检索虚机镜像的功能

Nova:提供按需分配的虚拟机。它类似于Rackspaces的cloud servers和亚马逊的Amazon Elastic Compute Cloud(EC2)

不过以上三个只是Openstack的核心projects,由于openstack是开放而且不断进化的,以后还会有更多的项目融入进去,例如:web界面和消息队列服务。

下面我们先深入研究一下其概念上的架构并看一下Nova是openstack中的位置。

云提供者的概念架构

现在想象一下我们如果打算建立一个自己的IaaS云给客户,我们需要提供哪些基本的特性

1.允许应用程序用户注册我们的云计算服务,查看你的使用情况及账单(基本的客户关系管理功能)

2.允许开发/运维人员创建和保存他们的应用程序镜像(基本的构建时功能)

3.允许开发/运维人员启动 监测 终止虚拟机实例(基本的运行时功能)

4.允许云操作者配置和操作基础架构云

尽管还有很多其他的功能需要提供(尤其是遵循像eTOM这样的完整行业架构),但这四个特性将是IaaS的核心特性

现在我们可以根据四个特性画出概念性的架构


在这里面我们根据与云端的交互和使用的功能不一样设定了四个角色(开发人员 运维人员 应用程序拥有者 云端管理人员)

就像传统的应用程序框架一样,表示层在这主要负责与用户交互。在这一层会提供给非开发人员的图形化界面的web门户网站以及开发人员的API接口用于二次开发。其中可能还会包括一些更高级的特性,例如:负载均衡 控制台代理 安全和命名服务

逻辑层将会提供云服务的智能控制功能,主要有orchestration(负责任务的工作流管理),scheduling(任务到资源的调度管理),policy(配额等服务)image registry(镜像实例的元数据管理)logging(事件 计费管理)

这里讲需要功能到架构的集成。假设我们大多数提供的服务有已经有一些用户身份和账单系统了,那么我们将需要集成到云机构用

任何复杂的环境,我们都需要一个管理层去执行管理的操作功能。这将包括一些可供管理员用户访问的API和监控功能。

最后,由于其是云计算,我们需要一些实实在在的计算资源 网络资源 存储资源去提供给用户

有了上面对Openstack的整体把握,我们接下来可以回过头来看一看Nova的逻辑架构。

Openstack Nova的逻辑架构

这里有很多OpenStack Nova的逻辑组件,但我们主要看一下用户自定义的python编写的两种守护进程

WSGI应用程序去接收和中转API请求(nova-api, glance-api 等等)

Worker守护进程去执行orchestration任务(nova-compute, nova-network, nova-schedule等等)

尽管这样,有两个重要部分的逻辑架构既不是用户自定义也不是基于Python编程,而是消息队列和数据库。这两个组件通过消息传递和信息共享方便了复杂的异步orchestration任,将这些联系起来我们可以得到以下架构图:

他虽然比较复杂,但是信息量不是很大,我们可以讲上面的图总结为以下三点:

终端用户(开发/运维人员和其他OpenStack组件)与nova-api进行交互

OpenStack Nova守护进程之间通过消息队列(动作)和数据库(信息)交互

OpenStack Glance是一个完全和OpenStack Nova不一样的架构,他们之间用过Glance API进行交互

现在我们已经了解了OpenStack的架构,也对OpenStack Nova的架构有所了解了,我们可以很容易的把Nova的组件对应到OpenStack的框架中去


由此可以看到,OpenStack Nova提供了Openstack最基本的功能


推荐阅读
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 本文探讨了使用Python进行微服务架构设计的合理性和适用性。首先,介绍了微服务的基本概念及其在现代软件开发中的重要性。接着,通过具体的业务场景,详细分析了Python在微服务架构设计中的优势和挑战。文章还讨论了在实际应用中可能遇到的问题,并提出了相应的解决方案。希望本文能够为从事Python微服务开发的技术人员提供有价值的参考和指导。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 一家位于长沙的知名网络安全企业,现面向全国诚聘高级后端开发工程师,特别欢迎具有一线城市经验的技术精英回归故乡,共创辉煌。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 直播带货系统中的推流技术详解
    本文介绍了RTMP(实时消息传输协议)及其在直播带货系统中的应用,并详细探讨了带货直播系统的连麦方案,包括服务端合流和客户端合流的优势与劣势。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 解读中台架构:微服务与分布式技术的区别及应用
    中心化与去中心化是长期讨论的话题。中心化架构的优势在于部署和维护相对简单,尤其在服务负载较为稳定的情况下,能够提供高效稳定的性能。然而,随着业务规模的扩大和技术需求的多样化,中心化架构的局限性逐渐显现,如扩展性和故障恢复能力较差。相比之下,微服务和分布式技术通过解耦系统组件,提高了系统的灵活性和可扩展性,更适合处理复杂多变的业务场景。本文将深入探讨中台架构中微服务与分布式技术的区别及其应用场景,帮助读者更好地理解和选择适合自身业务的技术方案。 ... [详细]
author-avatar
Posion丶丨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有