2020系统综合实践(一)
(1)、课程调查
在没上这门课之前,我以为是类似操作系统的实践课。上课之后,觉得有点软工实践的味道了。认识现在倒是还没什么深刻的认识,只是希望踏踏实实跟着老师的节奏走,认认真真学一些实用的技术。
(2)、微服务
什么时微服务
微服务最初是由Martin Fowler提出来的他的理解如下:微服务架构就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信,通常是HTTP RESTFUL API。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。
总的来说,微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
微服务特点:
1、粒度小,且专注一件事情
2、单独的进程
3、轻量级应用通信机制
4、松耦合、可独立部署
与传统软件架构相比,微服务的优缺点
优点
1、提升开发交流,每个服务足够内聚,足够小,代码容易理解;
2、服务独立测试、部署、升级、发布;
3、按需定制的DFX,资源利用率,每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;
4、每个服务按需要选择HA的模式,选择接受服务的实例个数;
5、容易扩大开发团队,可以针对每个服务(service)组件开发团队;
6、提高容错性(fault isolation),一个服务的内存泄露并不会让整个系统瘫痪;
缺点
1、没有银弹,微服务提高了系统的复杂度;
2、开发人员要处理分布式系统的复杂性;
3、服务之间的分布式通信问题;
4、服务的注册与发现问题;
5、服务之间的分布式事务问题;
6、数据隔离再来的报表处理问题;
7、服务之间的分布式一致性问题;
8、服务管理的复杂性,服务的编排。
(3)、学习docker技术
相关概念
Docker 是一个用于开发,交付和运行应用程序的开放平台。能够将应用程序与基础架构分开,从而可以快速交付软件。
docker compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。
Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。
K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。
虚拟机Ubuntu安装docker环境
1、卸载旧版本
$sudo docker run -itd --name ubuntu-test ubuntu /bin/bash
2、更新apt
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
3、添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4、验证秘钥
$ sudo apt-key fingerprint 0EBFCD88
5、设置稳定的存储库
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
6、更新apt和安装docker引擎
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
7、验证安装完成
$ sudo docker run hello-world
容器的创建、删除、更新、查询
载入镜像
启动退出
查询
创建自己的镜像仓库
实现上传