叁叁肆

这个世界会好吗

453篇博客

云计算解决方案

叁叁肆2018-11-13 10:28

欢迎访问网易云社区,了解更多网易技术产品运营经验。


1.5 云计算服务介绍


目前,早期的云服务厂商,通过资源提供的方式,将云计算划分为 IaaS、PaaS、SaaS 3 层服务模式,每层提供不同服务的使用范围和功能来满足不同的使用场景,并且这 3 层 有明显的层次关系:最上层的 SaaS 将应用作为服务提供给客户,无须开发者有软件背景, 直接使用软件就可以提供服务,比如 CRM、HR 等系统;第二层的 PaaS 将一个开发平台作 为服务提供给用户,一般需要开发者有相关的技术背景,开发者通过自行开发相关的代码 来使用平台的服务,最终为用户提供服务;最底层的 IaaS 将虚拟机或者其他资源作为服务 提供给用户,一般要求使用者有较强的技术能力才能比较好地掌握和利用好资源,只提供 最基本的计算、网络和存储等能力,同时也提供了更多的灵活性。


后来随着用户的需求越来越多,云服务厂商加了入越来越多的产品来为用户服务满足 业务的不同架构,从 IT 架构、数据架构到应用架构。比如,目前的云服务厂商,有国外的 AWS、Azure、Google 和国内的阿里云、腾讯云、网易云等。鉴于云服务的通用性和独特 性,下面以网易云为参考示例对云基础服务进行说明,其他云计算厂商的服务,请读者自 行参阅相关资料。


网易云基础服务是网易公司推出的场景化的虚拟机云和容器云平台,深度整合了 IaaS、 PaaS 及容器技术,提供弹性计算、DevOps 工具链及微服务基础设施等服务,帮助企业解 决 IT、架构及运维等效率问题,使企业更聚焦于业务,以改变互联网软件的生产方式。目 前主要提供 3 类的服务来迭代目标:第一,云计算基础服务(计算、网络、存储等);第二, 融合稳定的平台服务(关系数据库、负载均衡、缓存、对象存储等);第三,提供丰富完善 的 DevOps 工具链和多样的微服务基础支持。


服务端架构的设计是大部分技术人员在业务设计之初就会考虑的问题,技术人员既希 望能支撑业务的快速迭代,又希望能采用优雅高大上的架构,比如一开始就采用 SOA、微 服务或分布式架构。实际上,要较好地应用这些服务的架构是很有挑战性的,既要搭建微 服务基础设施,同时还要对服务进行编排,最后进行服务的治理、升级、监控等。为了实 现微服务的快速交付,在日常的开发中,团队需要进行开发测试线上环境的快速搭建,保 证环境一致、持续集成、一键发布等过程,这些过程大部分是烦琐或者低效的,采用 DevOps 的协作方式能比较好地解决这些效率问题,提供的容器服务、镜像服务和持续集成等基础 服务就是为了实现 DevOps 而设计的。


云基础服务具体包括容器服务、主机管理、镜像仓库等产品,这些基础产品提供基础 的计算、网络和存储等能力,另外,对网络隔离有要求或者规划较好的企业还要依赖虚拟 网络(VPC)等服务。容器和主机提供高可用、高性能、弹性伸缩的计算、存储和网络服 务,以达到在线扩容、快速响应业务变化,提升交付效率的目的。产品的性能和实现敬 请参考官网的参考数据和文档,在此不再详述。总之,这些服务能高效支撑各种互联网 使用场景,共同构建提供企业级闭环解决方案的基础服务,以网易云为例,整体的产品基 础服务架构如图 1-14 所示。 

图 1-14 网易云基础服务架构


在平台服务层面,网易云提供负载均衡、数据库(RDS)、缓存服务(Redis)、对 象存储(NOS)、CDN、安全服务和 IP 管理等平台级服务。高可用的负载均衡配合多变 规格的容器组成的微服务架构可以很好地支撑用户的弹性需求。关系型数据库和 Redis 缓存可以支撑各种常见的访问需求和数据存储能力,搭配对象存储的图片上传处理和 CDN 加速等技术,大大减少架构的复杂性,可以高效地弹性扩展,适应负载高峰。在安 全层面,DDoS 安全、账号认证和安全验证等多重限制可以极大程度地保障用户的数据免 受外界冲击。


此外,由于国内网络环境的特殊性,还会提供相关的业务运营支撑系统,比如域名和 备案系统,可以完全满足企业域名的购买、域名的解析,以及对应的备案;弹性 IP 将允许 用户保留自己的 IP,方便后续的备案、变更及应急切换。


总之,网易云提供丰富、稳定和可靠的基于场景化的云服务,云基础服务是网易云产 品体系里面最基础服务,容器服务又是云基础服务的最核心功能。此外网易云还有一大特 色,就是依赖产品体系、知识体系和服务体系来保障业务与云技术水乳交融。本书也是知 识体系的重要组成部分,除此之外还有通信、安全等产品体系,以及产品、前端开发和大 数据等知识体系。


1.6 云计算解决方案


在云计算及服务中,我们会针对某个具体已经体现出的或者可以预期的问题、不足、 缺陷、需求等提出一个解决整体问题的方案,以及制定确保能有效执行的计划表。由于问 题的多样及复杂性,常常会涉及很多系统及人的交互场景,因此产生不同的解决方案来处 理,需要在不同的阶段选择不同的方案来满足需求。


正如乐高积木提供的 1300 种不同形态的凸凹槽的积木,包括每个积木采用 12 种不同 的颜色,用户根据自己的喜好采用这些基础的组件就可以拼装组成一座座美妙的三维图形, 从最简单的积木到复杂的城堡、庄园等,被很多用户所喜好。云计算的基础设施提供的就 是这样一种能力,服务既可以提供简单的基础组件,又可以提供封装好的组件,开发者根 据业务的需求就能组成一系列的产品来服务于用户。


由于行业的多样性,云计算对行业的分类也非常广泛,按照相关的统计与行业的统称, 大致分为电商、金融、O2O、教育、视频、社交、游戏等行业。实际上每个行业都有不同 的解决方案,即使是同一个行业,也会采用不同的方案来完成相关的业务,不可能有完全 一样的方案,因此网易云也只提供多种不同场景的解决方案供读者参考,相信开发者都有 能力根据业务的场景要求独立完成自身行业方案的建设。
大部分的云计算服务厂商也提供了各行各业的解决方案,尽管方案会有一些不同,但 是核心的内容相差不多,所以,下面仅以网易云为网易内部的电商平台提供的案例来说明 其应用,供开发者参考。


如图 1-15 所示,网易云电商行业解决方案整个过程如下。

图 1-15 网易云电商行业解决方案 


1. 用户通过云厂商注册的域名访问 DNS,域名服务器将域名解析为 IP 地址,浏览器 根据 IP 请求服务。 

2. 当访问静态 Web 页面时,直接从 CDN 读取,如果 CDN 不存在资源,则回到对象 存储服务上获取,并在 CDN 服务上缓存。 

3. 当访问动态页面时,首先通过安全防护模块和应用防火墙,如果正常就把请求转发 到后端服务,否则拒绝请求。 

4. 负载均衡根据请求和规则将请求分发到后端服务,先访问的是业务层的 API 服务。 基础通用服务一般提前在服务注册中心注册,API 业务通过服务发现调用各种服务组合业 务,异步业务层通过消息队列或者异步调用基础服务。 

5. 基础通用服务层写入主数据库,主数据库同步到多个从数据库,为了加速基础服务 访问速度,减少性能开销,直接从 Redis 缓存读取热点即可。 

6. 所有服务的业务日志可通过日志流将日志发给消息服务 Kafka。 

7. 流计算从消息服务 Kafka 读取数据进行处理,将结果写入日志服务提供开放搜索。

8. 日志文件从消息服务 Kafka 读取数据上传到对象存储帮助交易数据进行大数据处 理,通过猛犸大数据平台(EMR)进行大数据计算,计算的结果部分进入分析型数据库, 部分进入推荐引擎。 

9. 运营人员读取分析型数据库的数据,进行敏捷的数据分析或可视化操作,帮助用户 进行业务决策。 

10. 产品人员可以利用推荐数据来更新用户的视图,推送给用户,进行下一轮的迭代。

上面是网易电商平台线上完整运行的一个案例,当然,这只是企业业务上线后的最后 架构运行状态的一个结果,实际上,这个结果的有效运行是依赖企业组织人员一起努力的 工作,是整个互联网软件生产中的一小部分,前期还包括架构设计、开发、测试、运维优 化等环节,比如,出问题时要搜索日志查看问题的原因,通过云监控查看监控信息及设置 服务能支持弹性扩容的条件。事实上,即使初创产品有机会上线,产品也需要不断迭代更 新和发展,否则很多业务无法走到这一步或者走的过程非常漫长。软件生命周期在产品里 程碑中占用的时间非常多,两者相互制约,相互促进,如果架构设计不是很优雅,当后续 的业务爆发增长时,就可能导致大量的重构和技术债,所以在设计之初就能考虑周全,受益是非常大的。


文章节选自《云原生应用架构实践》 网易云基础服务架构团队 著


网易云计算基础服务深度整合了 IaaSPaaS 及容器技术,提供弹性计算、DevOps 工具链及微服务基础设施等服务,帮助企业解决 IT、架构及运维等问题,使企业更聚焦于业务,是新一代的云计算平台。点击可免费试用