嘉宾简介
今天很高兴在这里跟大家交流,我演讲的题目是《大中型互联网企业IT基础架构概览》。 我个人作为凡客诚品2011到2013年快速的发展的见证者和亲历者,凡客作为一个互联网企业最高峰时,仅员工规模就超过一万三千人。这样的发展速度和企业规模的内部IT基础设施会有什么特色呢? 主题介绍我们从根本上谈起,IT的本质是服务。IT的服务对象是企业,所以企业的业务决定了企业信息化的方向,也决定了IT基础架构的特征。 我将要介绍的IT基础架构设计思想就是这样一个以服务企业业务为目标的信息化建设模型,并且会以模型为框架来介绍具体应用。 TCP/IP模型给的启示我们先来看看这个,想必都很熟悉这两张图:TCP/IP模型和OSI模型。我们经常用他们来指导我们解决遇到的技术问题。 以TCP/IP模型来讲,最上面的是应用层,然后是传输层、网络层、数据链路层和物理层,我们知道每个层面为上面的层面提供服务。 这是一个很好的自顶向下的设计思想,以及分层和模块化的设计思想。 IT设计模型与实现如果我们在TCP/IP的应用层再加上一个层面,就是咱公司的业务层,就变成了这样5个层面:业务层、应用系统层、基础系统层、网络层,以及机房层,再加上左右两个竖条,资源管理与监控、审计与安全,这就是我归纳的IT设计模型。 我先简单介绍下这个模型:
对于资源管理与监控,以及安全与审计,应该是贯穿各个层面的。 总之,这个分成模型是帮忙我们理解整个企业IT系统的,对于不同的IT人员有不同的切入角度。作为我们运维人员,我们就需要从运维的角度去看待各个层面对我们自身工作的影响。
在凡客具体的IT建设中,我们总结出一套方法,来实现一个满足上层要求的IT基础架构,也就是我这里提到的贯彻五化。服务化、标准化、自动化、自助化、技术化,后面我会详细讲到。 历史背景按照刚才的模型,我将以凡客诚品这个公司为样本来讲述。从上而下,从历史背景和业务开始,最后落实到我们一个个系统网络的设计上。 这张图里面列了三组数字,意思是:2011~2013是凡客快速发展的年月。其中员工从300多最终到达13000多。站点也从北京大约4个办公点 仓储扩张到全国约40个,其中28个仓储、6个办公室,6个数据中心。 所以我们技术有很大很大的压力,刚才列举的一些数字可能大家没有直观的感受,我就举个例子,记得当时会议室都成了固定办公的场地,通道上都是人,我们IT每天做大的工作就是拆纸箱子,发电脑,创建账户,一次发个上百台电脑是家常便饭。 业务层和应用系统层我们了解了凡客当时的历史背景,再看看业务情况,主要分四大块:
重点讲讲仓储,我们知道凡客是个网站,网站上有各种虚拟商品,这些虚拟商品是真实存在于全国三十来个仓库中的。
这个就是我们业务和应用系统的冰山一角,它对我们的基础IT架构有什么影响呢?马上给大家介绍。 我们先看看基础系统层面的具体设计和实践。基础系统层我认为包含这些:
由于我们仓储业务和呼叫中心业务的特点,对高可用性要求相当高。
所以,其实我现在讲的整个凡客IT基础架构。由于业务的关系,最大的特点之一,就是对IT基础设施的可用性要求非常高。整个大家后面还会看到,可以说是无处不在。 我们基本上主体都是使用windows服务器来提供DNS和DHCP服务。 为什么呢,主要是windows活动目录的普及,所有计算机都加入域,windows AD本身就有DNS了,当然加个DHCP服务也很容易,windows上面管理DHCP还是比网络设备上管理要方便太多。 除了windows AD的先发优势和既有资源的优势外,windows上的DNS和DHCP在高可用性上也符合业务的要求。 拿dns来讲,dns服务器每个站点就有2台,这2台是通过AD复制服务保持状态和数据同步的,而且AD复制机制是双向的,比dns自身主从复制更有优势,当然,linux的bind也是主从单向复制。 对于客户端,当然网卡上需要设置本地的2个DNS服务器地址作为冗余了。
不过这个需要注意,由于各地ISP服务质量不一样,你需要仔细观察线路和实际命中情况,为此我们有时不得不使用自己部署的专门负责电信或者联通线路解析的dns。不过现在好了,可以考虑用阿里或者百度的智能DNS server。 域名使用中,有使用内部和外部dns问题,我们的情况是内部和外部域名是不一样的,这样做会省掉因为内外部域名一样导致的麻烦,具体麻烦就不细说了,一般推荐内外部域名不一样比较好。 然后在日常dns注册过程中,内部的系统就用内部的域名,千万不要内外部域名随便用。这样根据整洁,也更加安全,不至于将某个外部域名解析成内部ip。 关于Dhcp首先是子网和IP池的规划,要注意的是要和网络人员一起考虑,不要太小气,要充分考虑到业务的发展和架构的伸缩。我们整个内网基本上采用10.0.0.0整个私有网络。 高可用性方面也是两台DHCP服务器,分别部署在各地2台域控上,我记得DHCP设计高可用性设计原则上一般是说2、8原则,我们在实际中其实是55原则。 比如,一个子网,前半段的IP有第一台服务器分配,后半段的由第二段分配。为什么每台分配一部分,而且不重叠,就是考虑到分配ip的时候避免分配同一个ip,导致ip冲突。实际我们测试过程中,两台服务器分配范围完全一样,也没有遇到问题。 对于DHCP高可用性,windows官方做法有DHCP 集群,就是windows cluster到windows 2008 R2的时候支持DHCP服务器了,比如之前一般只支持SQL集群提高可用性。但是这种cluter有个致命的问题,就是两个节点的服务器群集需要一个共享磁盘来作为仲裁盘和数据盘,虽然服务器层面没有了单点故障,但是共享磁盘是个单点故障。 而且共享磁盘这资源要求其实不低。。专业的磁盘阵列很贵,模拟的也不放心。当然,本质上dhcp服务实际上在节点故障后并不需要特别快速的切换,所以我们采用这种55原则这种架构更简单的方案。 基础系统层之文件打印关于办公用文件系统采用的是windows标准的文件服务器解决方案,细节不谈了,主要有这些特色:
基础系统层之邮件由于业务上我们有企业办公、凡客网站、vjia网站、如风达快递,所以我们exchange对应接收有vancl.cn、vancl.com、vjia.com、rufengda.com等域名后缀的邮件。
从技术上看,邮件除了收,就是发,所以凡客的邮件系统主要基于这两个软件,一个是微软的Exchange Server 2010,我们Exchange用于办公协作,和邮件的收取。一个是开源软件Postfix,用于邮件投递以及过滤垃圾邮件这块。 基础系统层之Exchange架构
Exchange和桌面outlook配合的确是办公协作的利器,对移动手机支持也非常不错,现在我们的安卓苹果手机邮件同步基本上也都是用exchange模式。 其他exchange在会议室管理、通讯录、通讯组方面也很不错。如果必须选择自建办公邮件系统的话,exchange应该是最佳选择了。 另外为什么业务也采用exchange作为邮件收取,主要是它的高可用性和可扩展性。 各位可以看看我们的exchange系统架构示意图,前端各个模块角色扩展性很好,后端数据库可用性和扩展性也很好。 这里有一个小技巧,数据库这块尽量多分,从安全的角度考量,多个鸡蛋不要放在同一个篮子上,多个用户平均分布。 另外我们的邮件服务器全部是虚拟主机。 基础系统层之邮件发送流
我们知道exchange本身就可以作为投递,为什么要单独拿出来再做一个邮件投递系统了。 原因是我们的业务模式决定了。而且从技术上开,邮件投递只需要很轻便的smtp服务就可以了,所以postfix非常适合,可以极大的降低exchange的负载。 而且各类邮件是分开的,避免交叉影响。尤其是影响邮件投递的成功率。比如EDM大量的投递,那么对应的IP地址池很可能信誉度会降低,就会影响正常办公邮件和其他业务邮件的投递,假如投递系统没有分开的话。 基础系统之即时通讯刚才我们了解了邮件异步通讯这块,那么凡客的即时通讯是个什么情况? 简单的一句话,我们打通了传统电话和IP电话、打通了PC和手机、打通了即时通讯和邮件、打通了开源Sipx和微软Lync、打通了PSTN电话网络和VOIP计算机网络,形成了一个统一的企业沟通系统。 这个张图是当时的Lync系统架构部署图。从这个图里可以了解整个统一沟通平台的大致情况:
企业统一沟通。从沟通来讲,手机、电脑、电话合一,从技术来讲,我们使用IP网络,传统电话网络和内部的计算机网络是合二为一的。 基础系统层之账户与权限账号管理是企业IT的重头戏,凡客这块个人认为做得很有特点。 原本这次大会我希望的演讲主题就是账号相关的,但是我们后面的新东方王威老师捷足先登了。所以我这里只稍微讲下大概,详细的账号自动化管理方面的事情后面会由我们的王威老师跟大家说。
账号管理这块我们是非常有特点的,这个架构除了适应互联网企业,据我了解,我们之前有离职的员工去了传统行业的上市公司,也把这个方案带过去了,做得很好。
基础系统层之AD设计关于AD设计,最有特点的就是OU结构的扁平化设计,而不是基于传统的组织结构。我们的OU结构是基于AD的对象类型来划分的,基本上分为账号类的OU,通讯组类的OU,安全组类的OU,计算机账号类的OU。 比如在Employment这个OU下,所有的员工账号都在里面,因为离职的账号我们只会禁用,所以目前这里面账号应该有好几万吧。
基础系统层之IT运维自动化IT运维自动化的核心和前提其实是标准化,这个是运维思想层面的事情,具体我们是通过微软system center中系列实现,尤其是SCCM系统。 我们根据业务类型,制作了不同的操作系统镜像,有仓储的,有一般办公的,有开发人员的,有呼叫中心坐席的,都可以裸机网络启动来安装好系统,不仅仅提高了工作效率,关键是整个系统都是标准的,规范的。这个也成为了我们系统安全的基石。 有些软件安装是需要授权的,我们通过账号管理系统中的审批流程来实现审批,审批完成,用户就能自己安装了。 远程协助解决公司内部pc终端问题也都靠它,这样一个北京的支持人员可以远程去支持广州的桌面问题。看起来SCCM整个工具很强大,其实更强大的是我们的标准化。 除了桌面支持,后台没有SCCM的系统、网络都可以这么做,因为每个地方的网络环境、软件系统环境都是一个标准的,中心的人员可以直接快速的支持任何一个站点的系统网络。这样做,导致了整个部门管理效率的提升! 基础系统层之IT运维自动化我们当时有将近40个站点,一个非常简单的结构,而且这个结构是扁平化,节约成本。 这个是老版本的sccm系统架构,目前是SCCM 2012 r2,该架构的特点是别处新意的。我们近四十个站点,数千台PC终端,采用的架构是扁平化的。 细节就不谈了,只说说整个架构的优点:
各位有公司用到SCCM,而且站点比较多的,可以借鉴 基础系统层之虚拟化虚拟化在外面的基础架构中的地位举足轻重,说句极端的话,由于历史原因,很可惜,企业IT服务器虚拟化比例没有达到百分之百。 凡客的办公核心,各地机房,我的原则是,务必全部虚拟化。所以,从某个层面来看,我是把物理机看出一种平台而已了。 我们前面谈到AD、lync、sipx、exchange、SCCM、文件服务器等等,基本上都是虚拟机。 采用虚拟机的好处就不多说,主要是要注意风险,尤其是不能把鸡蛋放到一个篮子里面。 我们知道虚拟化后,一台物理机上跑了多个虚拟机,这一台物理机一挂就是挂一片虚机,所以风险是增大了。 我们虚机比例非常高的后面是因为我们在服务层面是没有单点故障的,比如我们每个站点提供账号验证、DNS、DHCP服务的域控,每个站点都有两台,而且这两台绝对不在同一台宿主机上,甚至这两台宿主机不在同一个机柜,不是使用同一个PDU,同一个交换机。 网络层网络层的架构设计上我们有两个特点:
网络层之站点间网络层之站点内
网络层之无线办公和仓储、漫游和性能、abng的选择、802.1X与网络验证。这方面我就不细说了,每个业务场景不一样,对漫游、性能、并发、带宽、可用性等关注点的侧重会不一样,每个企业的需求也都不一样。 网络层之VPN我们出差的时候都需要用VPN,我们使用的是微软的产品,处于以下考虑:
site to site 采用的是标准的ipsec加密的隧道,作为站点之间的专线的紧急备份线路,反过来其实专线也是互联网线路的备份,二者互为备份。 网络层之QOSQOS是为了更好的利用好有限的带宽,我们每个站点基本都是双出口、关键节点无单点,高可用性方面是没有问题的,但是带宽仍然很稀缺,所以必须能够有效的对带宽进行监控和审计,并且从技术上保障业务流量优先。 机房层机房主要关注这些条件,场地、温湿度、电力、空调、机柜、承重、互联线路。不同的业务场景需求是不一样的。 比如在某些办公机房,为了节约成本和灵活期间,测试和开发的demo机是在办公机房的,我们主要关注的是提供计算密度,这个对空调、承重、机柜、电力、网络有较高的要求。 而仓库地理环境比较恶劣,全国各地都不一样,接入层的小机柜尤其如此,要注意防潮、防尘,甚至防冻,需要因地制宜。 “五化”之IT服务化分层的IT基础架构设计模型大致介绍完了,自顶向下的原则可以帮忙我们关注目标,分层和模块化的思维可以帮助我们更好的关注自身负责的范围,提供更好的服务。 同时,在凡客具体的IT建设中,我们总结出一套方法,来实现这样一个满足上层要求的IT基础架构,也就是前面提到的贯彻五化。服务化、标准化、自动化、自助化、技术化。 首先是IT本身的服务化。对于日常运维,这类事情是运维的主体工作,虽然琐碎、技术含量一般不高,但是非常影响客户(外部用户和公司同事)的用户体验,影响运维团队提供的服务质量。ITIL中的事件管理系统可帮助我们管理日常运维工作。 我们就基于ITIL的IT服务管理思想,结合自身业务情况,公司自己开发了一套事件管理系统。个人认为这套系统最有意义的地方有两处:
“五化”之IT服务自助化这个图是我们AES账户管理系统的截图,通过这个系统,员工可以自助式的对账户相关的事情进行自助式的管理。比如自己或者帮助周边新同事申请邮箱、获取初始密码、加入或者退出通讯组或安全组。 为什么叫自助化?因为很多原来需要IT处理的事情一般员工能够自己搞定了,把原本IT的事情分散掉,将IT极大的从琐碎事项中解放出来,不仅如此,也提高了公司整体的工作效率。 “五化”之账户管理自动化这个图仍然是AES账户管理系统中关于批量启用员工邮箱账户的功能截图。通过这个功能,后台的系统管理员可以批量的对新入职员工启用邮箱。关于AES系统,这是我们账户自动化系统中的一个关键中间环节,它的上游是人事系统、下游是AD系统,邮件系统等。举个例子,一个员工入职或者离职,IT系统管理员是不需要关注的,AD账户会自动创建或者禁用。这个就是自动化。 “五化”之其他标准化和技术化。标准化是一切自助化和自动化的基础。技术化可以规范你的行为,达成你的标准化。
所以思想需要形成文档来固化,文档最好通过技术化的实体软件系统来固化以协助我们更正确的工作。 有了体现思想的制度和软件系统,最关键的是要用,天天用。还有,不是所有的文化思想都能固化的,所以还要培训和沟通,这些无形的和有形的都需要讲,换着方法的讲,日日讲。 资源管理和监控运维人员作为公司IT系统这辆车的司机,当然需要对这辆车的性能了然于胸的。 建立资源管理系统和监控体系,为业务决策提供历史数据支撑。自行车要升级成为摩托还是小车,还是只需要更换一个好点的轮胎,需要数据说话。 安全与审计安全不是一个人的事情,也不是一个层面的事情,比如我应用系统的业务逻辑设计再怎么密不透风,也架不住机房失火,数据全毁。 所以需要建立纵深的安全机制,应用系统网络各个层面的安全意识深入骨髓,建立起整个安全防御机制。 以上是我分享的大中型互联网企业IT基础架构,谢谢大家! 看完这篇文字您有什么想说的?请在文末(不是公众号)评论、留言。24小时内留言被点赞最多的朋友,将获赠在线读书VIP卡一张。 想了解更多的第一手企业IT技术?
|
|