第1次实践作业

一、课程调查

​ 刚看到这门课的名字以为是类似操作系统那样的实践课,通过第一节课的粗略了解,知道了这门课主要是去接触一种新型的软件架构——微服务。

二、了解微服务

1.什么是微服务

​ 微服务是一种以业务功能为主的服务设计概念,每一个服务都具有自主运行的业务功能,对外开放不受语言限制的 API (最常用的是 HTTP),应用程式则是由一个或多个微服务组成。

2.微服务的特点

  • 细粒度的服务分解
    • 服务粒度要小,而每个服务是针对一个单一职责的业务能力的封装,专注做好一件事情。
  • 独立部署运行和扩展
    • 每个服务能够独立被部署并运行在一个进程内。这种运行和部署方式能够赋予系统灵活的代码组织方式和发布节奏,使得快速交付和应对变化成为可能。
  • 独立开发和演化
    • 技术选型灵活,不受遗留系统技术约束。合适的业务问题选择合适的技术可以独立演化。服务与服务之间采取与语言无关的API进行集成。相对单体架构,微服务架构是更面向业务创新的一种架构模式。
  • 独立团队和自治
    • 团队对服务的整个生命周期负责,工作在独立的上下文中,自己决策自己治理,而不需要统一的指挥中心。团队和团队之间通过松散的社区部落进行衔接。

3.微服务架构与传统架构的区别

  • 传统架构优点

    • 开发简单直接,集中式管理, 基本不会重复开发
    • 功能都在本地,没有分布式的管理开销和调用开销。
  • 传统架构缺点

    • 开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断
    • 代码维护难:代码功能耦合在一起,新人不知道何从下手
    • 部署不灵活:构建时间长,任何小修改必须重新构建整个项目,这个过程往往很长
    • 稳定性不高:一个微不足道的小问题,可以导致整个应用挂掉
    • 扩展性不够:无法满足高并发情况下的业务需求
  • 微服务架构优点

    • 微服务是松藕合的,无论是在开发阶段或部署阶段都是独立的。
    • 能够快速响应, 局部修改容易, 一个服务出现问题不会影响整个应用。
    • 易于和第三方应用系统集成, 支持使用不同的语言开发, 允许你利用融合最新技术。
    • 每个微服务都很小,足够内聚,足够小,代码容易理解。团队能够更关注自己的工作成果, 聚焦指定的业务功能或业务需求。
    • 开发简单、开发效率提高,一个服务可能就是专一的只干一件事, 能够被小团队单独开发,这个小团队可以是 2 到 5 人的开发人员组成。
  • 传统架构缺点

    • 微服务架构带来过多的运维操作, 可能需要团队具备一定的 DevOps 技巧.
    • 分布式系统可能复杂难以管理。因为分布部署跟踪问题难。当服务数量增加,管理复杂性增加。

4.部署方式

  • 基于主机(物理机或虚拟机)的多服务实例

    • 在该模式下,软件开发人员可以提供单个或多个物理机或虚拟机,同时在每个主机上运行多个服务实例。
  • 基于主机(物理机或虚拟机)的服务实例

    • 此类微服务的部署方式能够在对应的主机上单独地运行每一个实例。
  • 基于容器的服务实例

    • 在这种部署方式下,每个服务实例都运行在其各自的容器中,因此也被称为操作系统级别的虚拟化机制。

三、学习docker技术

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一 样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
  • docker compose:使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具
  • Dockerfile :是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
  • Docker Machine :是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
  • Docker Swarm :是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
  • Kubernetes(k8s):是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

环境搭建与docker的基本入门

在安装完docker后,首先配置一个镜像加速器

使用命令:docker -v 可查看docker版本

查看是否能正常运行:sudo docker run hello-world

查看当前镜像:sudo docker images

拉取镜像:sudo docker pull ubuntu

创建并启动、退出容器:sudo docker run -it ubuntu /bin/bash

查看当前所有容器:sudo docker ps -a

查看某容器信息:sudo docker inspect a5e936adb211

删除某容器后查询:sudo docker rm f598b94c1a05sudo docker ps -a

接下来是进行镜像上传,首先给容器打上标签(tag后的第二个参数一定是用户名)sudo docker tag aisinile 1310315342/test

接着登录docker:sudo docker login

最后镜像上传:sudo docker push 1310315342/test

posted @ 2020-04-17 04:03  诶嘿,你喜欢河马吗?  阅读(209)  评论(0编辑  收藏  举报