• 第1次实践作业


    (1)课程调查

    进入大三下学期的后半段,大学阶段的理论课程应该已经修得八九不离十了,在这个时间点迎来系统综合实践这门课,作为培养计划的一门新课程,我们非常希望了解你们对于课程的希望,请写下你对这门课的认识和你理想中的这门课程是怎么样的。

    在正式上课之前,我并不清楚这门课具体的内容是什么。但当我听到老师说需要用到博客园时,我就意识到了情况的不对劲。 作为一门新的课程,我希望可以在这门课程中学到一些有趣好玩的东西。

    (2)了解微服务

    第一次作业我们将接触一种新型的软件架构——微服务(也许部分同学已经有所了解)。大家要做的是学习并了解该技术,微服务是什么,有什么特点,相较于传统的软件架构,它有什么优缺点,它是怎样部署的。

    微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。

    微服务的特点:

    1. 按照业务来划分服务,单个服务代码量小,业务单一,易于维护。
    2. 每个微服务都有自己独立的基本组件,例如数据库、缓存等,且运行在独立的进程中。
    3. 微服务之间的通信是通过HTTP协议或者消息组件,且具有容错能力。
    4. 微服务有一套服务治理的解决方案,服务之间不耦合,可以随时加入和剔除服务。
    5. 单个微服务能够集群化部署,并且有负载均衡的能力
    6. 整个微服务系统应该有一个完整的安全机制,包括用户验证、权限验证、资源保护等。
    7. 整个微服务系统有链路追踪的能力。
    8. 有一套完整的实时日志系统。

    微服务的优点:

    1. 每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
    2. 微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。
    3. 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
    4. 微服务能使用不同的语言开发。
    5. 微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。
    6. 微服务允许你利用融合最新技术。
    7. 微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面组件混合。

    微服务的缺点:

    1. 微服务架构可能带来过多的操作。
    2. 需要DevOps技巧。
    3. 可能双倍的努力。
    4. 分布式系统可能复杂难以管理。
    5. 因为分布部署跟踪问题难。
    6. 当服务数量增加,管理复杂性增加。

    微服务部署:

    • 更新代码
    • 根据源码构建项目,生成jar包
    • 上传jar包到对应的备份目录
    • 执行停止服务命令: systemctl stop service_name
    • 移动jar包到对应的启动目录
    • 执行启动服务命令: systemctl start service_name
    • 然后通过health check检查服务正确性
    • 启动成功之后,把相关代码在git上打一个tag,为了方便之后回滚

    (3)学习docker技术

    docker作为微服务的一种十分典型的代表技术,我们要做的是:

    • 学习了解docker的相关概念(容器、镜像等),了解docker、docker compose、Dockerfile、docker machine、Swarm、k8s是什么,是做什么用的,心中有概念即可;

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

    • 搭建你自己的docker环境,系统环境不限(主流的有Ubuntu/CentOS/Debian/Windows/MacOS等),完成docker的基本入门,包括但不限于:容器的创建、删除、更新和查询,创建并维护自己的镜像仓库,实现拉取和上传镜像等。

    通过运行hello-world映像来验证是否正确安装了Docker Engine:

    容器使用:

    • 获取镜像
    • 启动容器
    • 查看所有的容器
    • 停止一个容器
      docker stop <容器 ID>

    镜像使用:

    • 列出镜像列表
    • 拖取镜像
    • 删除镜像
      docker rmi hello-world
  • 相关阅读:
    CSP-S2019游记
    SOJ 一句话题解整理
    CF547E Mike and Friends
    CF506E Mr. Kitayuta's Gift
    在windows环境下安装和使用Python(CPython)
    GeekGame2020_部分WriteUp
    php通过curl传输JSON对象
    Invalid datetime format: 1292 Incorrect datetime value
    解决 select2 开启 tags 不能输入中文的问题
    electerm 设置同步(Setting sync)
  • 原文地址:https://www.cnblogs.com/fzuzh/p/12716687.html
Copyright © 2020-2023  润新知