从华为到唯品会,再到创业,我对企业云架构的几点思考

 

外行看热闹,内行看门道。在云计算风光无限的背后,大量的创业公司/中小企业,如何理解云计算,如何在不同阶段应用合适的云计算技术,是一个值得探讨的话题。本次分享试图解答这个问题,标准答案是不存在的,也不重要,重要的是大家交流和思考的过程。...



云计算是从最初的物理机虚拟化逐步发展起来的,并推动了网络虚拟化,存储虚拟化的不断发展。IaaS、PaaS、SaaS的划分奠定了云计算的概念模型,出现了群雄争霸的局面,开源的、商业的解决方案逐鹿全球云计算市场。

Docker的出现,极大推动了CaaS理念的应用。Borg、Mesos则更进一步,把SDDC的蓝图呈现在世人面前。外行看热闹,内行看门道。在云计算风光无限的背后,大量的创业公司、中小企业,如何理解云计算,如何在不同阶段应用合适的云计算技术,是一个值得探讨的话题。

本次分享试图解答这个问题,标准答案是不存在的,也不重要,重要的是大家交流和思考的过程。本次分享的大纲如下:

  • 个人云计算的工作经历,让大家对不同类型公司(华为、唯品会、妈妈资本创业公司)云计算模式有个了解;
  • 云计算分析:云计算的模型(IaaS、PaaS、SaaS、CaaS),云计算的分类(公有云、私有云、混合云),然后导出最终的云架构全景图:一图在手,轻松无忧;
  • 对创业公司云架构的思考:讲述创业公司的四个发展阶段(老鼠、狼、老虎、鹰),以及每个阶段如何应用云架构;
  • 对云架构的总结和思考;
背景介绍

谈到云计算,有几种态度:

  • 不了解的人,认为云计算好像天上的云一样,太高大上了。一些朋友听说我是搞云计算的,第一反应就是“我噻,云计算,好牛啊”。
  • 有一定了解的人依靠几个云计算概念,也能在各个场合海侃一下,装点一下门面,但是这些人对于云计算的真正内涵并不了解。也有好多人对云计算表面欢迎,内心抗拒,他们以为云计算会动他们的奶酪。
  • 而云计算的资深人士,则好像有好多话要说,酸甜苦辣咸,五味俱全。
云计算涉及的范围太广了,可以说是“各说各家言”。但是万变不离其宗,云计算最为核心的东西,其实可以用一张图概括,本次分享的后面部分会试图用一张“云架构全景图”来说明。

云计算在大公司可以说是应用的如火如荼,这方面就不介绍了。本次分享是把云计算这个高大上的东西,下沉到创业公司,看看云计算是否也能够接地气。所以在开始本文内容之前,我先抛出一个问题:

创业公司需要云吗?如果需要,那么创业公司的到底需要什么样的云架构?云架构的演进又应该是怎么一个策略?

这次分享就是试图来解答这些问题,观点正确与否不重要,重要的是大家在这个过程中的思考和心得。

个人云计算工作经历

在正式分享前,先简单讲述一下自己的工作经历。这个经历,也许能够帮助大家更深刻的理解这次分享的主题。我的经历分为几个阶段:传统软件开发阶段->集成产品开发阶段->互联网开发阶段->创业开发阶段。

传统软件开发阶段

我是1999年毕业,当时比较推崇的就是瀑布开发模型,最为推崇的就是CMM(软件成熟度模型)。刚毕业时做传统的MIS系统,ERP系统。

集成产品开发阶段

2006年的时候进入华为,在华为的开发模式就是IPD(集成产品开发)。一个开发项目从立项、需求、设计、测试、上线,涉及大量的人力和物力,关联多个产品和周边部门,工作量动辄就五六百人。

在2009年的时候第一次接触云计算相关的内容。当时对接的是Novell的一个产品PSO,基于Xen虚拟化,自己做了一套虚拟化管理系统,这套系统最终接管了4K物理机虚拟化的规模,在当时而言规模是相当不错了。

后面陆续对接了VMWare的vCenter,Citrix虚拟化XenServer,华为自研虚拟化KVM。由于电信行业有大量的遗留系统,包括各种厂家各种型号的刀片/机架服务设备、存储设备、网络设备,这些设备都需要统一的纳管和虚拟化支持。异构计算设备+异构宿主机OS+各版本GuestOS +异构存储设备+异构网络设备,这个适配可以说这是一个非常苦逼的活。当时为了解决实际业务需求,就做了一层服务抽象:统一的OS部署服务,统一的计算服务,统一的存储服务,统一的网络服务,每个服务通过插件方式来进行扩展。

接触OpenStack后,发现这个系统的架构思路和OpenStack还是比较类似的:统一的OS部署服务对应Ironic,统一的计算服务对应Nova,统一的存储服务对应Cinder,统一的网络服务对应Neutron。当然了,OpenStack架构更为庞大和灵活了,不过它成熟的比较晚。

除了搞IaaS,还附带搞了一下基于Cloud Foundry的PaaS平台。

开发出来的这套云管理系统,是供国内外的比较大的电信厂商使用,涉及私有云和公有云建设。

互联网开发阶段

在2014年的时候,作为高级架构师进入唯品会,唯品会是一个家大型的电商公司,基于“精选品牌+深度折扣+限时抢购”的商业模式。在唯品会时基于OpenStack+OVS+Ceph搭建了一套私有云平台,涉及IaaS、PaaS两部分,支撑了8K虚拟机的规模。2015 下半年基于Kubernetes+Docker开发了下一代云计算平台。

创业开发阶段

2016年初进入目前的公司,妈妈资本。妈妈资本管理有限公司是一家基于大数据和信用评价技术的互联网金融公司,定位为互助金融入口和自助金融平台。妈妈资本处于创业阶段,目前刚刚完成Pre-A轮一个亿的融资。目前我们的业务使用公有云,并正在基于Docker实现DevOps,提高开发、测试、运维效率。

华为、唯品会、妈妈资本这三个公司在云计算方面,都具有比较典型的代表意义,下面我具体来阐述下。

华为开发云计算的思路是走合作,学习,自研的道路。合作:一开始时华为是没有云计算技术储备的,和国外的云计算厂商合作是当务之急的;学习:在合作的过程中,学习和了解相关技术和市场,不断培养自身云计算人才储备;自研:对于云计算这个核心技术,华为投入了大量人力物力进行自研,并重兵布局开源软件,推出了华为自己研发的云计算系列产品。通过这几个步骤,华为云计算成功的实现了从屌丝到高富帅的逆袭。非常值得大家学习。

华为的云主要满足ICT企业的私有云、公有云建设需求,目前华为也进入了竞争白热化的公有云领域。

唯品会的云是基于开源组件+定制开发的研发思路,为了少走弯路,少踩坑,也和国内外很多公司进行了交流和学习。开源组件部分一开始采用OpenStack+OVS+Ceph,后来考虑到Docker是PaaS的未来,就引入了Kubernetes+Docker技术。制定研发部分则是根据公司业务制定了统一Portal,权限管理,配额管理等内容。

唯品会的云是典型的私有云模式,主要解决内部业务云化需求。

妈妈资本是刚成立一年多的创业公司,建设私有IDC是不现实的,因此在云计算方面使用了腾讯的金融云。公有云仅解决了资源供给问题,对于研发效率的提升,还是需要自己解决。在研发效率提升方面,我们在尝试Docker技术。

无论形态如何,这三个公司无一例外的都用到了云计算相关技术,都在享受云的资源弹性和高效。

云计算分析

考虑到很多人对云计算了解有限,这里有必要对云计算做个简单的介绍。受限于时间因素,如果想了解详细的云计算,可以找相关资料。

云计算的模型



IaaS: Infrastructure-as-a-Service,基础设施即服务。IaaS通过虚拟化等手段,把底层的计算资源、存储资源、网络资源进行资源池化,虚拟化,实现弹性的资源供给,可以提供:虚拟机、云盘、对象存储、虚拟路由、虚拟防火墙、安全组等能力。

PaaS: Platform-as-a-Service,平台即服务。PaaS涉及两方面内容:无状态的应用服务,有状态的云服务。无状态的应用服务,指完成应用的生命周期管理,包括编译、打包、部署、升级、回滚、卸载、状态监控完整的生命周期管理。有状态的云服务,则包括提供数据库云服务、缓存云服务、消息云服务等。

SaaS: Software-as-a-Service,软件即服务。SaaS对用户提供的是直接的业务能力服务,用户不需要关注该服务底层采用的什么技术,也不需要关注该服务底层是如何部署和实现的。

CaaS:Containers as a Service。CaaS的概念是这两年才兴起的,这得益于Docker技术的流行。Docker的核心理念就是Build,Ship,Run。

  • Build:侧重于解决应用打包标准和规范问题,Dockerfile解决了Build问题,Build的产物就是Docker Image;
  • Ship:侧重于解决Image存储和分发问题,Docker Hub、Registry服务解决了Ship问题;
  • Run:Docker可以Run Anywhere,包括公有云、私有云、混合云等各种平台。Docker Daemon解决了Run问题。
一般来说,CaaS是介于IaaS,PaaS之间的一层。
云计算大的分类

公有云:类似Amazon AWS、阿里云、腾讯云之类的公有云服务。采用公有云的企业,大部分是中小企业,也有少部分的大型企业。

私有云:一般大一点的企业都会建设私有云,私有云的建设成本还是非常高的,机房、设备、空调、带宽、开发人力成本都是不低,没有一定资金和技术实力的企业是玩不起的。

混合云:从兼顾安全和成本角度,混合云是一个比较好的选择。根据最新的数据,2016年,采用混合云的互联网企业将达到40%多的比例。

云架构全景图

对云基本概念介绍完后,我们重点讲一下云架构的全景图。正确理解了这个架构图,后续再引入云或者发展云时,思路就清晰了。广义的云架构是涵盖范围非常广的。

云架构主要分为两层:业务层、平台层。平台层提供业务开发、上线、运行所需要的一切能力,业务层则根据平台约束和规范,专注于业务自身实现。

业务层

包括Client端:PC端、Mobile端;服务端:各业务Service,服务Gateway。业务层要满足平台层的规范,比如配置规范、日志规范、服务注册和发现规范、告警规范、性能指标规范等。

平台层

敏捷基础设施层:这部分对应私有云、公有云、混合云、CaaS四个部分。主要能力是提供弹性的资源,这个资源既可以是VM,也可以Docker容器,甚至是物理机。

应用基础设施层:提供应用生命周期管理,应用微服务管理。

云服务层:提供包括DB,缓存,消息等云服务能力。

云运维层:提供日志、监控、告警、配置等云运维能力和框架。

开发工具层:提供开发工具支撑,加速代码开发效率(编写、编译、提交、单元测试)。

Cloud Native相关:涉及康威定律、DevOps、CI、CD、敏捷等理念。

这个架构图还涵盖如下内容:

该架构图涵盖了开发、测试、发布、运维的产品全生命周期环节,这些环节用云的思路重新连接、串通、优化。

举例来说, 开发人员利用云开发工具,编写符合云平台规则的代码和配置,提交到配置库触发CI,编译打包(比如生成Docker Image) ->然后走CD,发布到各个测试环境(功能测试环境、回归测试环境、预发布环境) ->上线发布->上线后监控和运维。

敏捷基础设施解决资源供给问题,方便业务快速上线;上线后的业务基于微服务框架,进行服务注册和发现,通过云服务读写数据到缓存、DB。运维监控工具则24小时对云上的业务实时监控,发现故障并告警,并根据规则进行弹性扩容。

该架构图即包含技术也包含云的管理理念,Cloud Native就包含了一些云的一些管理理念。比如康威定律:组织结构决定架构;DevOps理念就是打通开发、测试、运维的部门鸿沟,加快业务上线效率和质量。

总之,这个架构图涵盖的内容非常多,其中的每一点都是一个大的题目。

创业公司云架构

创业公司的四个阶段:

阶段一:艰难活着。生存下来是关键,用户规模10w以下。对应Pre-A轮阶段。
阶段二:狼性开拓。业务模式基本得到市场认可,这时尽快的开拓市场是最为重要的。用户规模在10w~100w,对应A轮或者B轮。
阶段三:占山为王。这个阶段已经取得了一定市场份额。用户规模在100w~1000w,对应C轮。
阶段四:展翅腾飞。处于这个阶段的创业公司经历了九死一生的考验,进入腾飞阶段。用户规模在1000w+的规模。
创业公司的四个阶段,每个阶段,公司的资金和技术实力,也是不同的,因此可以选择的云计算技术也是不同的。每个阶段应该选择哪种技术和架构,是每一个创业公司都需要考虑的一个问题。

下面将会一一说明。

阶段一:艰难活着。这个阶段的商业模式需要探索和验证,公司的资金有限,活下来是最为关键的。这时采用公有云无论从成本还是效率上都是比较好的选择。
阶段二:狼性开拓。这个阶段公司具备一定资金实力,可以需要考虑CI、CD的问题。另外,有技术追求的可以尝试CaaS技术。
阶段三:占山为王。这个阶段可以尝试私有云建设,一些重要的业务和数据从安全角度,需要跑在自己的私有DC中。随着业务规模的扩大,用户量的上升,系统复杂度也越来越大,引入微服务框架也许是一个不错的选择。
阶段四:展翅腾飞。这个阶段,可以根据自身实力,尽可能全面拥抱云计算。包括完善的监控体系建设、云服务建设、混合云建设等、组织架构调整等。
上面四个阶段,每个阶段对应的云架构布局,仅个人观点。不同公司的现状是不同的,需要灵活应用,不能生搬硬套。有技术追求的或者有技术实力的公司,也许一开始创业,就把虚拟化或者Docker技术用上了;而很多公司,即使业务规模很大了,仍然采用老旧的物理机模式。

无论哪种模式,记住一点:在国内,大部分企业业务总是第一位的,技术向后排。即使技术很烂,如果业务运行的没到万不得已的地步,很多公司是不愿意用新技术的。

云架构的总结和思考

对于云架构,这些年一直在思考和摸索,在这期间,亲历了云计算的各种技术演进和发展,也系统研究了国内外众多的案例,个人感悟如下:

云架构视野要足够高:有些人受限于自己的工作范围和视野,仅看到云计算的一部分视图,而无全局的视野;有些仅看到技术部分,而看不到应用该技术的业务部门;有些仅关注自己所在的小环节,而看不到全流程。一个合格的云架构师,必须要全局视野,足够高的高度。

任何一个云计算技术,一旦形成规模,对底层的技术是最为考验的。量变到质变,规模是对云计算技术掌握能力高低的试金石。

云架构是没有固定模式的,一切架构以解决公司问题为首要目标。因为一个云架构的选择,和公司所处的阶段、人员的技能、技术的发展趋势、成本等因素密切相关的。

作者简介

赵守忠,17年软件行业的老兵,在软件开发、架构、项目管理等方面有较为丰富的经验。云计算领域6年多的实践,涉及IaaS、PaaS、CaaS。曾在华为、唯品会担任高级架构师职位,目前在妈妈资本公司担任首席架构师,专注于互联网金融的架构设计工作。

马化腾怎么看云计算?

2016年7月5日,诚邀您参与腾讯·“云+未来”生态峰会,与腾讯董事会主席马化腾先生及各界顶级企业家,国际专家共探产业与互联网融合发展之道,推动互联网+生态圈发展。详情请点击阅读原文链接。


    关注 聊聊架构


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册