云计算解决方案案例概述 (1)

叁叁肆2018-11-13 10:35

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


1.7 案例概述


无论是互联网行业还是传统行业加入互联网,项目的展现形式都各不相同,前文提及 根据行业的类型,传统行业分为信息、金融、教育、食品、建筑、制造、批发和零售等领 域,种类丰富。越来越多的传统行业积极加入互联网的浪潮中,进入到采用互联网思维进 行企业的变革和转型中,所以,无论如何大部分企业都需要转型,采用云服务的思维加速 企业变革。


变革是一个漫长而又痛苦的过程,除了思想的改变之外,还包括很多方面,比如组 织机构、行政架构、技术架构甚至业务方向等。在这里,我们更多是探讨技术架构的上 “云”之路,如何根据自己的业务发展特点,在不同的阶段采用不同技术特征适合业务的 发展。


1.7.1 背景介绍


互联网业务丰富多样,根据业务的不同,我们通常会在不同阶段使用不同的服务架构 来支撑业务的发展,因此,为了让读者能够动手实践所有内容,我们根据各行业应用架构 发展的一些共同特性,提供单体架构、分布式架构和微服务化架构 3 个不同阶段的示例为 源代码给读者提供代码级别的参考,以麻雀虽小五脏俱全的案例为背景,提供完整的案例 供读者练习,来演示架构的变迁过程。


此外,为了给读者提供更丰富的内容和保证解决方案示例的一致性,我们选取了电商 架构细节的内容作为本书的首选案例,对场景进行详细说明,原因之一是电子商务类的需 求也是大部分互联网及互联网+应用的诉求,比如电子商务通常包括会员、订单、购物车、 秒杀、详情页、评论、支付、物流等模块,后台还会包括各种管理系统,比如库存管理、 发货管理、优惠券等模块。此外,购物类网站包括的技术种类非常多,而且大规模的爆发 场景、支付一致性的场景等所依赖的技术非常具有代表性,无法简单地在源代码级别提供 示例。


我们希望每个用户都能在接下来的各个章节中找到对应的位置,根据业务的特点进行 有机组合,实现更好更快的上“云”之路,下面对源代码示例进行简单的说明和介绍实际操作步骤,读者可自行选择阅读或者略过直接进入第 2 章。


由于源代码里面有详细的指导说明文档,所以此处也不详述,欢迎读者在 Github 给开 发人员提意见,以展示更多的架构能力给其他读者,项目代码整个示例分为 3 个阶段,分 别如图 1-16、图 1-17、图 1-18 所示。


1. 单体架构(应用和数据分离) 

图 1-16 单体架构
本分支主要给读者演示满足最基本需求的产品原型的工程实践,是第 2 章和第 3 章的 内容实践操作。


2. SOA 架构(前后端分离,服务化) 

图 1-17 SOA 架构
本分支主要给读者演示满足企业在快速成长期的工程实践和挑战,是第 4 章的内容实 践操作。

3. 微服务架构(服务注册与发现、分布式配置管理、负载均衡、服务网关、断路器)

图 1-18 微服务架构
本分支主要给读者演示服务化架构下的工程实践和挑战,是第 5 章的内容实践操作。

本项目都是基于Spring Boot和Spring Cloud搭建,使用Maven作为构建工具,同时Maven 构建流程中包含 Docker 镜像的构建。在构建项目前,请先配置好运行环境,接下来将介绍 环境要求。


1.7.2 环境要求
本机需要安装如下环境。
· Maven 3

· Java 8

· Docker

· Docker Compose


1.7.3 项目构建
git clone https://github.com/163yun/cloud-cookbook-sample.git cd cloud- cookbook-sample mvn clean install


1.7.4 项目运行
项目运行的方法有多种,读者可根据自身的习惯自行选择,以下介绍常用的 3 种使用方法供读者参考。


1. 通过 IDE 运行
使用 IDE 导入工程找到包含 main 方法的 Class,比如 cloud-native-app-1 中的 CloudNativeApplication 类,右击,选择 Run 即可。
优点:快速简单,可调试。


2. 通过命令行运行
项目构建完之后,会在项目目录下生成 target 目录,该目录中包含可执行的 jar,可以 直接在命令行中启动该 jar。 以 cloud-native-app-1 为例,在 target 目录下会生成类似于 cloud-native-app-0.0.9- SNAPSHOT.jar 的可执行 jar 包,在命令行中执行
$ java -jar cloud-native-app-0.0.9-SNAPSHOT.jar
即可在当前控制台中看到日志输出。


3. 通过 Docker 运行
在每个项目下,都有一个 start.sh 脚本,该脚本可以方便地启动 Docker 容器,前提是 需要安装好 Docker,详情请看每个脚本说明。读者如果暂时没有相关的知识背景,可以先 跳过本段,第 2 章有 Docker 的详细说明,请参考后运行。


通过以上 3 种方式之一,都可以在本地打开浏览器,输入 http://127.0.0.1:8080/来访问 应用。 


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


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