第1次实践作业
(1)课程调查
对这门课的认识:刚开始听名字以为是一门硬件课
理想中这门课:希望是关于软件方面的,完成一个“系统”
(2)了解微服务
是什么
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。
特点
- 每个服务运行在其独立的进程中
- 服务和服务之间采用轻量级的通信机制相互沟通
- 每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境、类生产环境
优点
提升开发交流,每个服务足够内聚,足够小,代码容易理解;服务独立测试、部署、升级、发布;按需定制的DFX,资源利用率,每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;每个服务按需要选择HA的模式,选择接受服务的实例个数;容易扩大开发团队,可以针对每个服务(service)组件开发团队;提高容错性(fault isolation),一个服务的内存泄露并不会让整个系统瘫痪;新技术的应用,系统不会被长期限制在某个技术栈上;
缺点
没有银弹,微服务提高了系统的复杂度;开发人员要处理分布式系统的复杂性;服务之间的分布式通信问题;服务的注册与发现问题;服务之间的分布式事务问题;数据隔离再来的报表处理问题;服务之间的分布式一致性问题;服务管理的复杂性,服务的编排;不同服务实例的管理。
(来源:https://www.zhihu.com/question/65502802/answer/615568011 )
(3)学习docker技术
docker概念
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
dockerfile
Dockerfile是一个文本文件,用来配置 image。Docker 根据 该文件生成二进制的 image 文件。
docker compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具,使用 YML 文件来配置。
docker machine
Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
Swarm,k8s——容器集群管理
搭建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 add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
更新 apt 包索引
sudo apt-get update
安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
测试 Docker 是否安装成功
sudo docker run hello-world
创建和维护镜像仓库
在hub.docker.com注册一个账户,然后用下面的命令登录。
docker login
通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地
docker search ubuntu
docker pull ubuntu
为本地的 image 标注用户名和版本
docker image tag [imageName] [username]/[repository]:[tag]
最后,发布image文件
docker image push [username]/[repository]:[tag]