当前位置: 首页 > 后端技术 > Java

关于云架构和openstack的思考

时间:2023-04-02 00:15:46 Java

最近负责公司内部私有云的建设,一直在思考如何从事云计算,如何设计更好的云架构。本文主要内容:行业生态云计算概述需求视角下的云建设关键问题提供多种服务,市场空间非常大。在云发展的过程中,经过多年的深耕和积累,亚马逊已经发展成为云行业的标杆企业,甚至建立了云解决方案的标准。只要有商业价值和商业利益,就会有更多的企业和民众参与。谷歌、IBM、思科、甲骨文、惠普、英特尔、华为等IT巨头相继参与,提供软硬件专业化的面向企业的解决方案,利用云计算、大数据、智能化等概念吸引客户和扩大市场。另一方面,基于大数据、存储、云服务,相继涌现了一些创新型公司,如dropbox、rackspace,国内也涌现出相关的创业公司,如七牛、青云、ustack等.按照开源的习惯,只要有一套成熟的商业软件,就会有一套开源的解决方案(比如windowsforlinux,google的mapreduce,gfs,bigtableforhadoop等),在云领域,也存在相应的开源解决方案。在开源云解决方案中,有几家公司开源了解决方案,最著名的是openstack和cloudstack。对于开源界的老大redhat来说,redhat在企业操作系统市场做得很好。它提供了来自RHEL系统所有版本的稳定版操作系统,在企业系统市场上占有相当高的市场份额。.红帽特别注重云的发展,将云操作系统作为未来10年的发展战略重点。并先后收购openstack、ceph等存储公司,扩大在云领域的影响力。随着云领域的发展,逐渐形成了一系列为企业提供软硬件产品的产品提供商、为企业提供服务的提供商、为市场初创企业提供基础服务的服务企业、为个人提供商业服务的一系列产业。生态。2、从需求的角度,云的需求是什么(人需要什么)?当我们称呼人时,我们指的是人或公司实体。在我看来,我把人分成几组。从企业的角度1).小型企业由于技术储备少、人员匮乏,没有独立的IT部门。但是,他们在构建自己的IT系统的过程中,需要采购各种产品和服务,包括服务器、网络、CDN等。等等,不过要完成这样的工作,需要耗费大量的人力和财力。通过购买云服务,可以更加方便快捷,简单的完成系统搭建。2).中型企业中型企业具有一定的规模,需要重视信息化和管理。一般情况下,IT部门都是内部设置的。但是,和小企业一样,大部分的IT部门都是为了解决自己的需求。很难有一个完整的解决方案。这样一来,对服务器、网络、CDN、企业管理软件等的需求还是比较大的。3).大型企业。规模较大的企业有10000人以上,特别是高新技术企业。他们都有强大的IT支持部门。通过部门,他们可以完善企业内部的信息化建设。从企业的性质来看,我将分为1)。传统产业。传统产业多为服务业、制造业和生产性企业。IT信息化、重资产产业相对落后。2).互联网公司和互联网行业都是以IT为解决方案方案3)。IT服务企业主要销售软件、硬件和技术咨询服务。根据市场上企业和个人的需求特点,将需求规划为(也是市场上常用的):1、提供解决企业内部信息化问题的软件服务,如:ERP系统、采购、销售及库存管理系统、人力资源管理系统、行政管理系统、财务系统等。(SAAS)2、提供平台服务,解决行业共性问题,SAAS上云,提供平台服务。例如:淘宝的开放平台、Facebook的开放平台、基于salesforce的销售系统、云笔记、云盘等(PAAS)3.提供基础设施服务。基础设施包括软件和硬件,包括:存储、虚拟机、网络、防火墙、缓存、负载均衡、数据库等(IAAS)对于企业内部,一般互联网企业人员的角色分为1.开发2.测试3.运维4.DBA5.产品6.项目管理人员7.客服8.业务人员(销售、市场、BD、人力资源、行政等)下图说明了各个角色的需求在互联网行业(仅限于云领域)3.云计算概述Whatdoescloudsolve(whatcloudoffer)?封装将计算能力和软件放在云端,可以减少重复建设,封装通用服务,实现复用,减少资源浪费,提高生产效率,提供成熟的解决方案。2.安全的云计算将数据、存储、软件逻辑集中在云端,更容易构建统一的安全体系。3、灵活的云计算提供灵活的软件和服务器架构。4.性能可以通过集群能力和云集成来实现。提高集群性能处理5.可扩展性在存储和计算能力方面提供了弹性的资源管理,可以按需使用6.运维云计算从IAAS的角度来看,最重要的是运维,可以让运维更加集中管理,全面智能化,大大降低人力成本7.充分利用物理资源通过云化建设,可以将物理资源虚拟化,屏蔽物理硬件底层,可以完成对物力资源的软化逻辑管理和分配调度8.大数据大数据存储在云端,可以提供数据分析和智能处理……当然,云计算有很多好处,给我们带来很多想象和IT技术革命。公有云和私有云说到云,业界将云分为“公有云”和“私有云”。对于“公有云”和“私有云”的区别,我们在之前的需求分析过程中对“公有云”和“私有云”的区别有一个大概的了解云需求,“公有云”和“私有云”最大的区别“私有云”是需求的差异,因为需求的差异导致技术方案和产品决策的差异。由于公有云需求的用户多种多样,需求存在差异,尤其需要更多的定制化,如:网络的定制化、套餐组合的定制化、网络资源、存储资源的独立性等。4.云构造计算机基础知识的关键问题计算机从诞生之日起,就是按照冯·诺依曼体系发展起来的。基于硬件的操作系统也分为网络协议系统、内存管理、文件管理系统等的实现,大致是构建抽象图云要解决的问题?1.管理问题云计算的实施首先要解决运维问题。在云环境中,后端是一个由大规模物理节点组成的集群。由于同时维护上千个计算节点和部署结构的复杂性,由于需求的变化,很难通过简单地增加人力来解决复杂的问题。因此,需要构建一个高效的计算资源管理系统,既能对操作系统进行灵活、简单的管理,又能及时发现问题。2.计费问题(公有云)对于公有云来说,因为是面向公众开放的,所以难免会有成本问题。常用的计费方式有多种,计费方式因产品不同而不同,例如:网络、存储、cpu、数据库容量等。3.资源隔离问题云计算运行在云端,通过虚拟化建立系统。虚拟化是基于硬件的,多个虚拟化的资源在同一个节点(主机)上同时运行,存在资源共享和争用的问题,因此在资源使用上存在公平性问题,导致资源使用相互影响在同一个主机上。为了使资源的使用相互独立,我们需要建立相应的隔离机制。资源隔离包括:存储、内存、cpu、数据库、网络等,其中网络是最难控制的。4.安全问题云端应用和基于客户端的安全面临不同的环境。客户端大部分是病毒问题造成的,而在云端,也有一些服务器攻击和数据独立相互影响的问题。问题,以及一些服务端编程的安全问题等。5.性能问题对于云端来说,需要保证云端的性能,包括CPU处理性能,IO处理能力,就近访问资源,速度资源数据同步。还需要解决系统底层的性能问题,包括文件处理Cache,存储介质的优化,使用SSD等,或者采用SATA+SSD的混合方式来节省资源,降低成本。6.存储问题对于云端来说,由于云端是将客户端的数据和计算转移到云端,所以必须要有足够的存储容量和足够稳定的存储系统来保证用户数据的安全。对于存储,有VM虚拟机运行环境的块设备(块存储),以及提供KV方式的对象访问存储,都需要保证数据复制、数据读写的性能访问,以及数据永久可用的能力。一些应用场景需要能够提供网络的逻辑隔离(SDN)或物理隔离,以及对网络的灵活接入。构建虚拟化网络,由于物理条件的限制,我们不得不从L2-L4层来处理。我们常用的方法有:bridge,vlan,gre,sdn(openflow,opendaylight),还有一些厂商的产品等等。8.高可用问题高可用问题是分布式系统中必须处理的问题。因为集群的问题,我们必须从多方面去考虑问题,包括保证云管理系统的高可用和存储介质的高可用。可用性,网络的高可用,虚拟机的高可用等9.提高资源利用率的问题对于物理资源的虚拟化,我们有很多解决方案,比如KVM、Vmware、xen、Hyperv、LXC等。在HVM模式下,需要大量内存来启动VM本身。cpu和storage资源导致系统内存和cpu使用率有一定的浪费。基于LXC的解决方案基于HostOS进程,通过命名空间进行隔离。它是一种轻量级的实现,可以在资源中进行初始化,可以最大化资源利用,针对每一个应用场景,我们可以选择合适的方案。5.私有云架构规划私有云的目标对于私有云建设,我们的目标是1.提高物理资源利用率2.一套云管理系统,降低运维复杂度,提高运维效率维护工作3.构建灵活的开发测试集成环境4.提供海量存储系统5.建立完善的监控系统6.建立基础应用环境,方便测试7.统一架构8.智能资源调度我们如何构建私有云?(如何实现)openstack开源方案针对云计算,也有很多方案,比如cloudstack和openstack等,对比了两个方案后,我们最终选择了openstack方案。主要有以下几个原因:1.OpenStack社区的成熟:OpenStack经过几年的发展,社区已经越来越成熟,有很多大公司参与帮助完善。作为发展的战略重点。2、架构设计的选择:openstack采用python语言编写,设计采用组件化方式。每个组件独立开发,相互解耦。3、openstack提供了更完善成熟的解决方案,可以满足各种需求。许多公司都采用了它,并在生产中得到了验证。4.文档问题:openstack在文档方面做的很好,在网上可以找到各种解决问题的方法。5.招聘问题,经过多年的发展和市场培育,越来越多的人了解openstack,在开发维护的人才培养和招聘方面也相对成熟。6.发展较快。....下图是我们的总体架构方案。如果这篇文章对你有帮助,别忘了给我三连,点赞、转发、评论,我们下期见!获取方式:点赞、评论、关闭~学习更多JAVA知识技能,关注并私信博主(666)