2017级系统综合实践 第1次实践作业

作业链接

(1)课程调查

​ 看见博客园,就有种软工二号的感觉,刺激。希望这门课能比较好的给出学习路线,不像软工,就给个作业。嗯~ o( ̄▽ ̄)o

(2)了解微服务

  • 微服务是什么?

    微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。

    知乎-什么是微服务架构?

  • 微服务有什么特点?

    • 单一职责 指的是每一个微服务模块,只关心自己的业务规则。例如订单模块只关心订单的相关业务,不牵扯其他业务的逻辑。
    • 服务自治 每一个微服务模块的开发,需要有自己的开发、测试、运维、部署这一条独立的栈,并且有自己的数据库等一切,完全把其当成一个单独的项目来做,不牵扯到其它无关业务。
    • 轻量级通信 微服务的通信协议需要跨平台、跨语言的通信协议,因为微服务是不绑定技术栈的,不论使用Java、PHP还是.net去开发Web系统,它们之间的通信一定是去语言特色的。
    • 接口明确 前面提到了微服务的“接口调整成本高”,那么怎么去避免它呢?我们一开始就应该规划好微服务的模块是一种什么样的模型,尽量去避免A接口的改动会导致B接口的改动这种情况。
  • 微服务有什么优缺点?

    优点:

    • 每个服务独立百存在,所以可以单独部署,不用每次发布某个功能都经历一次全服务发布。
    • 遵循单一功能原则,服务之间可以通过RESTFUL或者RPC调用,功能解藕
    • “细粒度” 的高可扩展性,每个服务都可以单独扩展,单独负知载均衡
    • 去中心化,尽可能道地实现 “自服务”
    • 有利于简化单独的开发测试以及部署,对开发团队友好

    缺点:

    • 服务的可用性和维护性高度依赖于服版务治理,如果治理得不好将会是灾难
    • 某些服务可能造成权性能瓶颈,某些服务的宕机可能导致很多服务受影响
    • 服务配置繁琐
  • 微服务是如何部署的?

    “基于主机的多服务实例”模式是最为传统的应用程序部署方法。在该模式下,软件开发人员可以提供单个或多个物理机或虚机,同时在每个主机上运行多个服务实例。此模式有几种不同的实现形式,其中包括:将每一个服务实例都作为一个单独的进程,或是在同一进程中运行多个服务实例。

(3)学习 docker 技术

docker 相关概念

  • docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。个人感觉最简单的理解就是类似于虚拟机,但是又比虚拟机更轻量,消耗的资源更少
  • docker compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
  • Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
  • docker machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。
  • Swarm Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
  • k8s 是基于容器的集群管理平台,全称是kubernetes,由Google创造 知乎-10分钟看懂Docker和K8S

搭建 docker 环境

猜你喜欢

转载自www.cnblogs.com/huaranmeng/p/12718970.html