第1次实践作业
(1)课程调查
对课程的认识:应该是过往综合知识系统的应用,希望这门课可以让我学到更多的知识和技能。
(2)了解微服务
-
微服务是什么
- 微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic) 的 API 集相互通信。
-
微服务的特点
+单一职责:每个微服务都需要满足单一职责原则,微服务本身是内聚的,因此微服务通常比较小。
- 自治:一个微服务就是一个独立的实体,它可以独立部署、升级,服务与服务之间通过REST等形式的标准接口进行通信,并且一个微服务实例可以被替换成另一种实现,而对其它的微服务不产生影响。
-
微服务的优点
- 逻辑清晰:一个仅负责一项很明确业务的微服务,在逻辑上肯定比一个复杂的系统更容易让人理解。
- 简化部署:微服务则可以对一个微服务进行部署,避免对整个系统部署的复杂。
- 可扩展:因为不同的功能会面对不同的负荷变化,采用微服务的系统相对单块系统具备更好的可扩展性。
- 灵活组合:在微服务架构中,可以通过组合已有的微服务以达到功能重用的目的。
- 技术异构:微服务间松耦合,不同的微服务可以选择不同的技术栈进行开发。
- 高可靠:微服务间独立部署,一个微服务的异常不会导致其它微服务同时异常。
-
微服务的缺点
- 复杂度高:微服务间交互的异常情况更多更复杂,导致代码逻辑更加复杂。采用不同的数据库,保证一致性也是困难的地方。微服务的开发成本更大。
- 运维复杂:在采用微服务架构时,系统由多个独立运行的微服务构成,需要一个设计良好的监控系统对各个微服务的运行状态进行监控。
- 影响性能:相对于Monolithic架构,微服务的间通过REST、RPC等形式进行交互,通信的时延会受到较大的影响。
(3)学习docker技术
1.docker相关概念
-
镜像:Docker镜像(Image),就相当于是一个root文件系统。
-
容器:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态 的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。
-
Docker: Docker是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用.Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件地速度。
-
Docker compose: Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
-
Docker file: Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令说明。
-
Docker Machine :是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
-
Swarm: Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
-
K8S,就是基于容器的集群管理平台,它的全称,是kubernetes, 是用于自动部署,扩展和管理容器化应用程序的开源系统。
2.搭建docker环境
-
更新 apt 包索引。
$ sudo apt-get update
-
安装 apt 依赖包,用于通过HTTPS来获取仓库:
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
-
添加 Docker 的官方 GPG 密钥:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
验证现在是否拥有带有指纹的密钥。
$ sudo apt-key fingerprint 0EBFCD88
-
设置稳定版仓库
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-
安装 Docker Engine-Community
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
-
测试是否成功
$ sudo docker run hello-world
3.docker的基本入门
容器的创建:
容器的删除:
容器的查询:
创建仓库:在dockerhub注册自己的账号,在docker中登录
上传镜像:
登录网址可以看到上传成功
导入镜像:
拉取镜像: