(1)课程调查

   我认为系统综合实践这门课应该是一门比较综合性的学科,它应该会运用到之前学过的某些学科的知识或思想,结合本学科的特点,并通过学生亲身实践的方式,来让学生体验计算机系统综合实践技术的魅力,所以它不应该只是一门很重要的专业课,而且更要能调动同学的兴趣灵魂,从而成为同学们汲取知识、发展能力的良师益友。期待这门课让同学们得到满意的硕果。

(2)了解微服务

1、什么是微服务

   微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
   微服务是系统架构上的一种设计风格,主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP/HTTPS协议的RESTful API进行通信协作,也可以通过RPC协议进行通信协作。被拆分成的每一个小型服务都围绕着系统中一些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储,业务开发,自动化测试案例以及独立部署机制。由于有了轻量级的通信协作基础,所以这些微服务可以使用不同的语言来编写。

2、微服务的特点

   相比较于单体应用架构和SOA架构,微服务架构的主要特点是组件化、松耦合、自治、去中心化,体现在以下几个方面:用 4个字描述就是小 独 轻 松
:体现每个微服务粒度要小,而每个服务是针对一个单一职责的业务能力的封装,专注做好一件事情。
:独立部署运行和扩展。每个服务能够独立被部署并运行在一个进程内。这种运行和部署方式能够赋予系统灵活的代码组织方式和发布节奏,使得快速交付和    应对变化成为可能。
:系统相比较复杂单体应用更为简洁轻量化,每个微服务因为独立部署,可以使用不同跨语言编写,这样使得微服务架构更为灵活.
:低耦合性,符合面向对象设计高内聚低耦合特性。不同模块间依赖低,相互关联小(因为每个微服务设计的初衷是每个服务专注一个模块开发)

3、微服务的优缺点

优点:

1、微服务往往比传统的应用程序更有效地利用计算资源。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。
2、微服务更快且更容易更新。当开发者对一个传统的单体应用程序进行变更时,他们必须做详细的QA测试,以确保变更不会影响其他特性或功能。但有了微服务,开发者可以更新应用程序的单个组件,而不会影响其他的部分。测试微服务应用程序仍然是必需的,但它更容易识别和隔离问题,从而加快开发速度并支   持DevOps和持续应用程序开发。
3、微服务架构有助于新兴的云服务,如事件驱动计算。
4、微服务是松藕合的,无论是在开发阶段或部署阶段都是独立的。每个微服务都很小,足够内聚,足够小,代码容易理解。团队能够更关注自己的工作成果, 聚焦指定的业务功能或业务需求。

缺点:

1、微服务架构带来过多的运维操作, 可能需要团队具备一定的 DevOps 技巧.
2、分布式系统可能复杂难以管理。因为分布部署跟踪问题难。当服务数量增加,管理复杂性增加。

(3)学习docker技术

   Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
docker主要有三大要素:
   镜像:提供只读的模板,相当于root文件系统
   容器:相当于镜像的实例化
   仓库:仓库可看着一个代码控制中心,用来保存镜像。

在Ubuntu上安装Docker引擎:
 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
   $ sudo apt-get remove docker docker-engine docker-ce docker.io
  更新apt包索引:
   $ sudo apt-get update
  安装以下包以使apt可以通过HTTPS使用存储库(repository):
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  添加Docker官方的GPG密钥:
   $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  使用下面的命令来设置stable存储库:
   $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  再更新一下apt包索引:
   $ sudo apt-get update
  安装最新版本的Docker CE:
   $ sudo apt-get install -y docker-ce
查看docker服务是否启动:
$ systemctl status docker

若未启动,则启动docker服务:
$ sudo systemctl start docker
验证docker是否安装成功:
$ sudo docker run hello-world

有以上输出,表示docker安装成功.

docker查看已有镜像:$ sudo docker images

创建并启动容器:$ sudo docker run -(pram) [image] [command]
参数pram:
t:终端
i: 交互式操作
d:指定容器运行方式

查看创建的容器:$ sudo docker ps -a

删除所有容器:$ sudo docker container prune
删除镜像:$ sudo docker rmi [image]

提交容器副本:$ docker commit -m="with wget" -a="qinhonghao" dc2b25034368 qhh_container
参数:
-m:提交的信息
-a: 镜像作者
dc2b25034368: 容器ID
qhh_container: 指定要创建的目标容器名

更改创建的镜像文件名:$ sudo docker tag [oldname] [newname]
将镜像上传到dockhub(要先登录):$ sudo docker push qinhonghao/qhh_container:v