2020系统综合实践 第1次实践作业

(1)课程调查

进入大三下学期的后半段,大学阶段的理论课程应该已经修得八九不离十了,在这个时间点迎来系统综合实践这门课,作为培养计划的一门新课程,我们非常希望了解你们对于课程的希望,请写下你对这门课的认识和你理想中的这门课程是怎么样的。

我对这门课的认识,一开始以为是系统结构的实验课。。在机房操作的实验,类似接口那种实验,然后今天早上发现居然有博客园,居然要用虚拟机,觉得好像有点不对劲。
我理想中的这门课能让我加深对系统综合实践的理解,大家都能够很好的完成,顺利毕业。

(2)了解微服务

第一次作业我们将接触一种新型的软件架构——微服务(也许部分同学已经有所了解)。大家要做的是学习并了解该技术,微服务是什么,有什么特点,相较于传统的软件架构,它有什么优缺点,它是怎样部署的。

我之前并不了解什么是微服务,上网查询中觉得这个解释很好

看军事新闻的同学应该都知道,一艘航空母舰作战能力虽然很强,但是弱点太明显,就是防御能力太差,单艘的航空母舰很少单独行动,通常航空母舰战斗群才是主要军事力量,你可以把单艘航母理解为的单体应用(防御差,机动性不好),把航母战斗群(调度复杂,维护费用高)理解为微服务。

简单讲就是要分解业务,让服务能够独立运行,一系列微服务共同构建起整个系统。

微服务特点:

  • 针对特定服务发布,影响小,风险小,成本低
  • 频繁发布版本,快速交付需求
  • 低成本扩容,弹性伸缩,适应云环境

微服务优点:

  • 每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。

  • 微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。

  • 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。

微服务缺点:

  • 微服务架构可能带来过多的操作。
  • 因为分布部署跟踪问题难。

(3)学习docker技术

docker作为微服务的一种十分典型的代表技术,我们要做的是:

  • 学习了解docker的相关概念(容器、镜像等),了解docker、docker compose、Dockerfile、docker machine、Swarm、k8s是什么,是做什么用的,心中有概念即可;

docker:

docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。

docker compose:

Compose 是用于定义和运行多容器 Docker 应用程序的工具。

Dockerfile:

是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

docker machine:

Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。

Swarm:

Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。

k8s:

k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。

  • 搭建你自己的docker环境,系统环境不限(主流的有Ubuntu/CentOS/Debian/Windows/MacOS等),完成docker的基本入门,包括但不限于:容器的创建、删除、更新和查询,创建并维护自己的镜像仓库,实现拉取和上传镜像等。

    docker的安装,一开始我没有按照老师给的教程,而是自己搜索,然后安装失败了,后来重新开始,挺成功的完成了。

​ 查看版本

​ 删除之前安装一半失败了的残余。

​ 安装成功

​ 后台创建一个容器,-d可以使容器后台运行,不进入,后面再使用 attach 进入该终端

使用exit命令,退出容器,最后使用 rm -f 删除该容器。

使用ps 检查发现容器已经被删除完成了。

教程里还有一个简单的,运行一个web应用,首先pull一个镜像下来,然后在容器里运行。-P是让容器内部的网络端口映射到我们的主机上,使用ps命令查看容器,用浏览器访问web应用。

​ 然后先用stop停止容器,再进行rm删除。

首先先在dockerhub仓库链接:docker hub上创建账号并创建自己的仓库,并在本地使用login登录。

使用 images 命令查看一下现在拥有的镜像。

使用search 命令在官方的仓库中搜索,并用pull将它拉下来,使用images查看,拉取成功。

使用 tag命令 命名成新的firstone,然后使用push命令上传到我的仓库里。

上传成功~

原文地址:https://www.cnblogs.com/sayoko/p/12683146.html