系统综合实践第一次实践作业

(1)课程调查

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

确实已经到了大学理论知识快学完的时候了,回想之前上过的所有实践课都是特别有意思的,感觉会比理论课能学到更多东西。通过稍微的了解,感觉这次的实践课会和理论课不大相同,有涉及到树莓派,那这就十分有趣了。之前通过舍友了解过树莓派,如果结合到系统结构中一定也会特别有意思。当然也十分期待这门实践课会像之前一样给我们带来很实用的收获。

(2)了解微服务

第一次作业我们将接触一种新型的软件架构——微服务(也许部分同学已经有所了解)。大家要做的是学习并了解该技术,微服务是什么,有什么特点,相较于传统的软件架构,它有什么优缺点,它是怎样部署的。
1微服务是什么 微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
对于大型应用程序来说,增加更多的用户则意味着提供更大型的弹性计算云(EC2)实例规模,即便只是其中的一些功能扩大了规模亦是如此。其最终结果就是企业用户只需为支持超过微服务的那部分需求的EC2实例支付费用。

2有什么特点 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。
微服务应用程序的另一个好处是,它们更快且更容易更新。当开发者对一个传统的单体应用程序进行变更时,他们必须做详细的QA测试,以确保变更不会影响其他特性或功能。但有了微服务,开发者可以更新应用程序的单个组件,而不会影响其他的部分。测试微服务应用程序仍然是必需的,但它更容易识别和隔离问题,从而加快开发速度并支持DevOps和持续应用程序开发。
第三个好处是,微服务架构有助于新兴的云服务,如事件驱动计算。类似AWS Lambda这样的功能让开发人员能够编写代码处于休眠状态,直到应用程序事件触发。事件处理时才需要使用计算资源,而企业只需要为每次事件,而不是固定数目的计算实例支付。

3缺点①微服务架构可能带来过多的操作。
  ②需要DevOps技巧。
  ③可能双倍的努力。
  ④分布式系统可能复杂难以管理。
  ⑤因为分布部署跟踪问题难。
  ⑥当服务数量增加,管理复杂性增加。
4部署 基于主机(物理机或虚机)的多服务实例
  基于主机(物理机或虚机)的服务实例
  基于容器的服务实例
  无服务器部署

(3)学习docker技术

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

docker compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Dockerfile
在Docker中创建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个Docker镜像的描述文件,我们可以理解成火箭发射的A、B、C、D…的步骤。Dockerfile其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

docker machine
Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。

Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。

Ks8
Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
通过Kubernetes你可以:
快速部署应用
快速扩展应用
无缝对接新的应用功能
节省资源,优化硬件资源的使用

搭建docker环境

Docker安装
更新 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"

再次更新软件源

$ sudo apt-get update

安装最新版的docker ce

$ sudo apt-get install -y docker-ce


查看docker状态

$ systemctl status docker


启动docker

$ sudo systemctl start docker

运行helloworld,结束安装

$ sudo docker run hello-world



镜像加速
在阿里云获取镜像加速地址后,通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

容器的操作
载入 ubuntu 镜像

$ docker pull ubuntu


使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器

$ docker run -it ubuntu /bin/bash

查看正在运行的容器

$ docker ps

查看所有的容器

$ docker ps -a

使用 docker start 启动一个已停止的容器

$ docker start 69eac7eb02a9

进入容器

$ docker exec -it 69eac7eb02a9 /bin/bash

删除容器

$ docker rm -f 69eac7eb02a9

创建自己的镜像仓库
列出镜像列表

$ docker images

查找镜像

$ docker search httpd

拉取和上传镜像
登录

$ docker login registry.cn-hangzhou.aliyuncs.com

posted @ 2020-04-17 21:42  Yuqiancha  阅读(164)  评论(0编辑  收藏  举报