(1)课程调查
-
进入大三下学期的后半段,大学阶段的理论课程应该已经修得八九不离十了,在这个时间点迎来系统综合实践这门课,作为培养计划的一门新课程,我们非常希望了解你们对于课程的希望,请写下你对这门课的认识和你理想中的这门课程是怎么样的。
-
答:我对这门课的认识并不了解,大概是对某个系统的综合运用有关的吧,我理想中的这门课程应该是会包含一部分理论的内容。
(2)了解微服务
- 第一次作业我们将接触一种新型的软件架构——微服务(也许部分同学已经有所了解)。大家要做的是学习并了解该技术,微服务是什么,有什么特点,相较于传统的软件架构,它有什么优缺点,它是怎样部署的。
微服务是什么
- 答:微服务(Microservices)是一种软件开发技术,是面向服务的架构(Service-Oriented Architecture,SOA)的变体,微服务架构将应用程序组成一系列松散耦合的服务集合。在微服务体系结构中,服务是细粒度的,协议是轻量级的。
微服务的特点
- 答:它的特点在于能够把一个大型服务拆分成很多小服务,使它们完全彼此独立,并且可以相互通信,可简单理解为分解应用程序的功能,其本质在于分布式、去中心化。
微服务的优点
- 1.每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
2.微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。
3.微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
4.微服务能使用不同的语言开发。
5.微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。
6.微服务允许你利用融合最新技术。
7.微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面组件混合。
微服务的缺点
-
1.微服务架构可能带来过多的操作。
2.需要DevOps技巧。
3.可能双倍的努力。
4.分布式系统可能复杂难以管理。
5.因为分布部署跟踪问题难。
6.当服务数量增加,管理复杂性增加。 -
参考链接1:https://www.jianshu.com/p/231266dd7d46
参考链接2:https://baijiahao.baidu.com/s?id=1642105964133187440&wfr=spider&for=pc
(3)学习docker技术
docker相关概念
(1)docker:Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,容器是完全使用沙箱机制,相互之间不会有任何接口。
(2)镜像:Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
(3)容器:器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
(4)docker compose:Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,可以使用 YML 文件来配置应用程序需要的所有服务。
(5)Dockerfile:Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
(6)docker machine:Docker Machine 是一种可以在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
(7)Swarm:Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
(8)k8s:k8s是基于容器的集群管理平台,它的全称,是kubernetes。
docker的基本入门
(1)docker的搭建
- 卸载可能已安装的旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
- 更新agt包索引
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 -
- 再更新 apt 包索引
sudo apt-get update
- 安装Docker-ce
sudo apt install docker-ce
- 测试 Docker 是否安装成功
sudo docker run hello-world
(2)docker的容器操作
- 获取镜像
sudo docker pull ubuntu
- 启动容器(创建一个新镜像)
sudo docker run -it ubuntu /bin/bash
- 查询所有容器
sudo docker ps -a
- 删除一个容器,如图所示
sudo docker rm -f <容器名>
(3)docker的镜像操作
- 查看镜像
sudo docker images
- 登陆阿里云镜像空间
sudo docker login --username=<账号名> registry.cn-hangzhou.aliyuncs.com
- 上传镜像
sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/docker-hub-ruifeng/docker-hub:[镜像版本号]
sudo docker push registry.cn-hangzhou.aliyuncs.com/docker-hub-ruifeng/docker-hub:[镜像版本号]
- 显示镜像上传成功
(4)总结
上传镜像时遇到了一个错误,很长时间解决不掉
后来发现是前后登陆与上传时,输入的Registry的域名对应不上,导致没有权限,还是有点粗心大意
后来注意域名对应一致,果然上传成功