云架构和openstack的思考
原文链接: http://ifeve.com/cloud-architecture-openstack/
作者:罗立树
最近在负责公司内部私有云的建设,一直在思考怎么搞云计算,怎么才能够把云架构设计得好一些。
本文章主要内容:
1. 行业生态
2. 从需求角度看云
3. 云计算概述
4. 云建设的关键问题
5. 私有云架构规划
一.行业生态
计算机云经过多年的发展,由一开始的概念,慢慢发展成熟并能够推向市场,提供多种多样的服务,市场空间非常之大。
在云的发展过程中,亚马逊经过多年的深耕积累,发展成为了云行业的标杆企业,甚至是建立了云解决方案的标准。
只要是存在商业价值以及商业利益的存在,就会有更多的公司、人参与进来,google、IBM、思科、Oracle、HP惠普、Intel、华为等IT巨头先后参与进来,
在软件和硬件方面提供专门的面向企业的解决方案,纷纷打着云计算、大数据、智能等概念来吸引客户,拓展市场。
另外一方面,基于大数据,存储,云服务等也先后出现一些创新企业,譬如dropbox、rackspace,国内也产生相关的创业公司,譬如七牛、青云、ustack等。
按照开源的习惯来说,只要是有一套成熟的商业软件,就会有一套开源的解决方案(譬如windows之于linux,google的mapreduce、gfs、大表之于hadoop等等),
在云领域,也存在相应的开源解决方案,在开源的云解决方案里有若干公司将解决方案进行开源,而最为著名的有openstack和cloudstack。对于开源行业的领导者redhat来说,
redhat在企业操作系统的市场已经做的很好,从RHEL系统的各个版本来都是提供操作系统的稳定版本,在企业级系统市场有相当高的市场份额。redhat特别重视云的发展,并将云操作系统作为未来10年的发展战略重点。
并先后收购了openstack,以及ceph等存储企业,壮大自己在云领域的影响力。
随着云领域的发展,逐渐形成了面向企业提供硬件和软件产品产品提供商,面向企业提供服务的服务提供商,面向市场创业企业提供基础服务的服务企业,面向个人提供业务服务的一系列行业生态。
二. 从需求角度看云
需求是什么(what people need)?
我们所说的people,即人或者公司实体。在我的思考中我将people分为。
从企业角度看
1).小型企业
小型企业因为本身技术储备不多,人员缺乏,没有独立的IT部门,但是在构建自己的IT系统过程中需要购置各种产品和服务,包括服务器、网络、CDN等等,而要完成这样的工作,需要投入大量的人力和财力。
通过购买云服务可以更加方便快捷,简单的完成系统的搭建。
2).中型企业
中型企业有一定的规模,需要在信息化、管理方面有所注重,一般内部都设立IT部门,但是和小型企业一样,IT部门大多数都是为了解决自身需求很难能够有一个完整的解决方案。这样在服务器、网络、CDN、企业管理软件等等的需求还是比较大的。
3).大型企业
大型企业人数规模在万人以上,特别是高新企业,都有一个实力不错的IT支撑部门,通过部门就可以完善对企业内部信息化建设
从企业性质范围来看,我将企业分为
1).传统行业企业
传统行业大多数是以服务业、制造业、生产性企业为主,在IT信息化方面相对比较落后,重资产行业
2).互联网企业
互联网行业是基于IT作为解决方案的
3).IT服务企业
以销售软件、硬件、以及技术咨询服务为主的企业。
针对市场中存在的企业、个体等的需求特点,将需求规划为(也是市面上常用的分类):
1.提供软件的服务,解决企业内部信息化问题,譬如:ERP系统,进销存管理系统,人力资源管理系统,行政系统,财务系统等等。(SAAS)
2.提供平台服务,解决行业共性问题,将SAAS迁移到云端,提供平台类的服务。譬如:淘宝的开放平台,facebook的开放平台,基于salesforce的销售系统,云笔记,云盘等。(PAAS)
3.提供基础设施服务,基础设施包括软件和硬件方面的,包括:存储、虚拟机、网络、防火墙、缓存、负载均衡、数据库等等。(IAAS)
对于企业内部来说,一般互联网企业人员角色分为
1.开发
2.测试
3.运维
4.DBA
5.产品
6.项目管理人员
7.客服
8.业务人员(销售、市场、BD、人力资源、行政等等)
下图说明一下在互联网行业各个角色的需求(仅局限于云领域)
三. 云计算概述
云解决什么(what cloud offer)?
1. 封装
将计算能力和软件放在云端,可以减少重复建设,将通用的服务封装起来,达到重用,减少资源的浪费,提高生产效率,并提供成熟的解决方案。
2.安全
云计算将数据和存储,软件逻辑都集中于云端,更能方便的统一构建安全体系
3.灵活
云计算提供灵活的软件和服务端架构
4.性能
通过集群的能力和云端的集成能够提高集群的性能处理
5.伸缩能力
在存储和计算能力方面提供弹性的资源管理,能够按需使用
6.运维
云计算在IAAS角度来看,重要的是运维,能够将运维更加集中化管理,并完全智能化,大大降低人力成本
7.充分利用物理资源
通过云建设,能够将物理资源进行虚拟化处理,屏蔽物理硬件底层,并能够完成物力资源软化进行逻辑管理和分配调度
8.大数据
大数据保存于云端,能够提供数据分析和智能处理
……
当然,云计算还有很多很多好处,给我们带来很多想像空间和IT技术的革命。
公有云与私有云
说到云,行业内将云分为“公有云”和“私有云”,对于“公有云”和“私有云”的差别,在我们之前的需求分析过程中,大致了解了云的需求,
“公有云”和“私有云”的差别最大的是需求的差异,因为需求的差异,导致了技术方案和产品决策的差异。
公有云需求上由于用户多种多样,导致需求存在不一样,特别需要更多的定制化,譬如:网络的定制化,套餐组合的定制化,网络资源,存储资源的独立等等
四. 云建设的关键问题
计算机基础知识
计算机自从诞生以来,一直按照冯.诺伊曼的体系发展,在硬件的基础上的操作系统,也分为网络协议体系的实现,内存管理,文件管理体系等等,大致的抽象图
云建设要解决的问题?
1.管理问题
云计算的实施,首先要解决运维的问题,在云环境下后端是大规模数量的物理节点的集群,对于同时维护数以千计算的计算节点,以及部署结构的复杂,需求的变化,
光靠增加人力也难以解决复杂的问题。从而需要构建高效的计算资源管理系统,能够灵活简单的管理运系统,并能够及时的发现问题。
2.计费问题(公有云)
对于公有云而言,因为是面向公众的,必然产生费用的问题,常用的收费方式多种多样,也因为产品的不同而计费方式不同,譬如:网络、存储、cpu、数据库容量等等
3.资源隔离问题
云计算运行在云端,是通过虚拟化体系建立的,虚拟化是建立在硬件之上,多个虚拟化资源同时运行于同一节点(host)中,存在着资源的共享争用问题,
这样就存在着资源使用的公平性问题,导致同一Host上的资源使用相互影响。为了使得彼此资源使用相互独立,我们要建立相应的隔离机制。资源的隔离包括:存储、内存、cpu、数据库、网络等,其中网络是最难控制的。
4.安全问题
在云端的应用和基于客户端的安全,面临的环境不一样,客户端方面大多数是病毒问题引起的,而在云端,也存在一些服务器攻击的问题,以及数据相互独立相互影响的问题,以及一些服务端编程的安全问题等。
5.性能问题
对于云来说,需要保证云端的性能问题,包括CPU处理性能,IO处理能力,资源的就近访问,资源数据同步的速度,还需要解决系统底层的性能问题,包括文件处理Cache,存储介质的优化,采用SSD等,或者采用SATA+SSD的混合方式节约资源和降低成本。
6.存储问题
对于云来说,由于云端是将客户端的数据和运算转移到云端,必须要有足够的存储能力以及足够稳定的存储系统,保证用户数据的安全,对于存储来说,有提供VM虚拟机运行环境的block device(块存储),
以及提供KV方式的对象访问存储,这些都需要保证数据复制、数据读写访问的性能和数据永久可用的能力
7.网络问题
对于公有云以及私有云的一些应用场景,需要能够提供网络的逻辑隔离(SDN)或物理隔离,以及对网络的访问灵活问题。构建虚拟化网络,由于物理条件的限制,我们不得不从L2-L4层进行处理,我们常用的方式是:bridge,vlan,gre,sdn(openflow,opendaylight),以及一些厂家的产品等等。
8.高可用问题
高可用问题是在分布式系统中必须要处理的问题,正因为集群的问题,我们必须要从多方面考虑解决的问题,包括保证云管理系统的高可用性,存储介质的高可用性,网络的高可用性,虚拟机高可用问题等等。
9.提高资源利用率问题
对于物理资源的虚拟化,我们有很多种解决方法,KVM、Vmware、xen、Hyperv、LXC等等,在HVM的方式下,对于VM本身的启动需要占用大量的内存、cpu和存储资源,导致系统内存和cpu使用有一定的浪费,基于LXC的解决方案因为是机基于Host OS
进程,通过namespace的方式进行隔离的,是一种轻量级的实现,能够在资源初始化,资源利用率方面能够最大化,对于各个应用场景来说,我们可以选用合适的解决方案。
五.私有云架构规划
私有云的目标
对于私有云建设,我们的目标是
1.提高物理资源的利用率
2.一套云管理系统,降低运维的复杂度,提高运维工作效率
3.构建灵活的开发、测试集成环境
4.提供海量的存储体系
5.建立完善的监控体系
6.建立基础应用环境、方便测试
7.统一架构
8.智能资源调度
我们是怎么建设私有云的?(how to implement)
openstack开源解决方案
对于云计算来说,也存在这多种解决方案,譬如cloudstack和openstack等,在两种方案的比较之后,我们最终选择了openstack的解决方案。
主要是出于以下几点原因:
1.openstack的社区成熟度:在openstack经过几年的发展,社区已经越来越成熟,很多大公司都参与进来帮助完善,红帽公司未来十年也将openstack作为发展的战略重点。
2.架构设计的选择:openstack采用了python语言编写,并且设计上采用组件化的方式,各个组件独立发展,并相互解藕
3.openstack提供了更加完整成熟的方案,能够满足多样的需求,同时已经有不少公司采用,已经经过生产上的验证
4.文档问题:openstack文档化做的不错,网上能够找到多种多样的问题处理办法
5.人员招聘问题,经过多年的发展和市场的培育,了解openstack的人越来越多,对于开发维护的人才建设和招聘相对成熟一些。
6.发展比较迅速
。。。。。
下图是我们大致的架构规划
云架构和openstack的思考的更多相关文章
- 【云计算】IBM开放云架构
IBM 的开放云架构 通过改变业务和社会运行的方式,云计算开启了丰富的创新途径.开发人员现在正将记录系统与参与性系统相结合,一种新的基于云的应用程序风格正在出现:交互系统.这些应用程序要可持续发展,云 ...
- 中国铁路基于Intel架构超大规模OpenStack行业云的性能优化研究
1. 项目简介 铁路作为一种大众化的交通工具和非常重要的货物运输方式,其业务规模庞大.覆盖全国.服务全国各族人民.铁路面向公众提供的服务业务,主要是客运和货运两大类,且每年365天.每天7*24小时连 ...
- OpenStack总体架构概览&OpenStack核心组件介绍
下面个是51CTO上一位朋友发布的O版OpenStack核心组件说明,总结的非常到位,所以我就不再造轮子了.~,~ https://down.51cto.com/data/2448945 私有云 公有 ...
- 理想汽车 x JuiceFS:从 Hadoop 到云原生的演进与思考
理想汽车在 Hadoop 时代的技术架构 首先简单回顾下大数据技术的发展,基于我个人的理解,将大数据的发展分了4个时期: 第一个时期: 2006 年到 2008 年.2008 年左右,Hadoop 成 ...
- 【原创译文】基于Docker和Rancher的超融合容器云架构
基于Docker和Rancher的超融合容器云架构 ---来自Rancher和Redapt 超融合架构在现代数据中心是一项巨大的变革.Nutanix公司发明了超融合架构理论,自从我听说他们的“iPho ...
- 基于VPN搭建混合云架构需要考虑的网络因素
Joy Qiao from MSFT Wed, Jan 21 2015 8:44 AM 很多用户在搭建混合云架构时,会使用到微软Azure虚拟网络中的 VPN功能,来实现Azure中的虚拟网络与用户 ...
- Cloudcraft: 云架构图形可视化(智能AWS图表)
Cloudcraft: 云架构图形可视化(智能AWS图表) 2016.09.11 官方网站: https://cloudcraft.co/ Cloudcraft是一个Web应用,用图形表示各种AWS服 ...
- 构建Spring Cloud微服务分布式云架构
大型企业分布式微服务云架构服务组件 实现模块化.微服务化.原子化.灰度发布.持续集成 commonservice zipkinSpring 日志收集工具包,封装了Dapper和log-based追踪以 ...
- Spring Cloud分布式微服务云架构集成项目
Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的.在学习Spring Clo ...
随机推荐
- 33.使用默认的execAndWait拦截器
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 当我们进行数据库查询等相关的操作时,如果服务器负荷过重可能不能及时把数据查询 ...
- Java Graphics 2D绘制图片 在Liunx上乱码
绘图的代码工具类 package com.gwzx.framework.captcha; import java.awt.Color; import java.awt.Font; import jav ...
- IE浏览器中不支持cookie问题
/** * Cookie plugin * * Copyright (c) 2006 Klaus Hartl (stilbuero.de) * Dual licensed under the MIT ...
- 实现HBase增量入库(HBase删除自定义时间戳行数据)
目录 1. 背景描述 2. 问题描述 3. 解决方案 1. 背景描述 目前在做音乐推荐项目,前期做排序模型优化,任务是使用模型对用户的历史音乐进行排序,有6800多万个用户,约40G的用户数据,使用H ...
- SpinBlur - 旋转模糊
[SpinBlur - 旋转模糊] Using the Spin Blur effect, you can rotate and blur the image around one or more p ...
- 克拉 & 24K
[克拉] 克拉(Ct)是宝石的质量(重量)单位,现定1克拉等于0.2克或200毫克.一克拉又分为100分,如50分即0.5克拉,以用作计算较为细小的宝石.因为宝石的密度基本上相同,因此越重的宝石体积越 ...
- Five reasons phosphorene may be a new wonder material
A material that you may never have heard of could be paving the way for a new electronic revolution. ...
- 搭建双系统win10+ubuntu17.10
0. 序言 这里采用先装win10,再装ubuntu的顺序.这样可以避免后面系统启动项设置的问题.都采用UEFI引导方式,且使用usb2.0的u盘来引导(3.0的话,要准备好3.0的驱动).另外注意的 ...
- Create Empty Project In Vs But Not Debug?
问题描述 在使用VS创建一个空的项目管理,然后,添加项目.可是,这个时候,项目虽然可以运行,但是不能Debug进行调试. 解决方法 按照下面三张图像的设置即可.
- Smart Pointe
http://blog.chinaunix.net/uid-625789-id-2720884.html