微服务容器化 Docker

Staffjoy本地部署架构

服务容器化和Docker compose部署 - 图1

相关软件

Skywalking

https://github.com/apache/skywalking

本地部署启动

部署步骤

1. 清理释放内存

活动监控器
关闭Docker

2. 部署MySQL数据库

staffjoy_account
staffjoy_company

创建数据库
  1. create database staffjoy_account;
  2. create database staffjoy_company;

image.png

创建表-对应的SQL脚本文件

image.png
image.png
image.png

检查表是否创建完成

image.png

3. 部署Skywalking

https://archive.apache.org/dist/incubator/skywalking/
apache-skywalking-apm-incubating-6.0.0-beta.zip
image.png
image.png
image.png

  1. bin/startup.sh

image.png

访问Skywalking Web界面

默认的用户名和密码都是:admin
image.png
image.png

IDE设置Skywalking-agent

image.png

4. 部署服务

本地机密数据配置

依次启动项目

mail->bot->account->company->www->whoami->faraday
image.png

查看Skywalking监控到的服务

image.png
image.png

5. 部署前端应用

  1. npm install
  2. npm start

6. 启动SwitchHosts

  1. 127.0.0.1 account.staffjoy-v2.local
  2. 127.0.0.1 faraday.staffjoy-v2.local
  3. 127.0.0.1 myaccount.staffjoy-v2.local
  4. 127.0.0.1 whoomi.staffjoy-v2.local
  5. 127.0.0.1 www.staffjoy-v2.local
  6. 127.0.0.1 ical.staffjoy-v2.local
  7. 127.0.0.1 staffjoy-v2.local
  8. 127.0.0.1 app.staffjoy-v2.local
  9. 127.0.0.1 company.staffjoy-v2.local

Docker和Docker Compose

容器用途

  1. 标准化打包
  2. 隔离
  3. 标准化部署

    OS & Kernel

    服务容器化和Docker compose部署 - 图17
    操作系统内核主要负责管理底层操作系统系统硬件,用户空间调用内核空间的内容。

    虚拟机和容器

    服务容器化和Docker compose部署 - 图18
    虚拟机主要在宿主机上通过Hypervisor创建虚拟化的硬件,可以虚拟出CPU、磁盘、网卡等等。在Hypervisor上面运行操作系统。容器是构建在宿主机之上。虚拟机的隔离性比较好,是一种强隔离机制,但他比较重量,启动的时候慢,消耗资源很多。容器的隔离是基于软件的,比较轻量,启动速度比较快,一般是秒级的,消耗的资源也比较少。在同一个主机上启动容器的数量要远远多于虚拟机的启动数量。

    Docker容器核心技术

    服务容器化和Docker compose部署 - 图19
    CGroups:控制CPU和内存资源的使用量。负责资源的隔离
    Namespaces:控制每个容器都有相互隔离的进程,文件系统,网络等空间。
    Networking:实现容器网络底层技术,包括虚拟网卡,虚拟网桥,容器网络组网等等。
    Storage(存储):Docker容器支持一些存储驱动。

    容器镜像

    服务容器化和Docker compose部署 - 图20

    Docker架构

    https://docs.docker.com/get-started/overview/
    image.png

    Docker Compose

    Docker Compose主要用于定义和运行多容器应用的工具。
    服务容器化和Docker compose部署 - 图22

    将微服务部署至Docker Compose环境

    1、镜像构建

    1. mvn clean package -DskipTests
    image.png
    1. docker-compose build
    image.png
    1. docker images
    image.png

    2、部署MySQL数据库

    image.png

    3、部署Staffjoy

    1. docker-compose up
    2. docker-compose ps

    4、启用SwitchHosts

    1. 127.0.0.1 account.staffjoy-v2.local
    2. 127.0.0.1 faraday.staffjoy-v2.local
    3. 127.0.0.1 myaccount.staffjoy-v2.local
    4. 127.0.0.1 whoomi.staffjoy-v2.local
    5. 127.0.0.1 www.staffjoy-v2.local
    6. 127.0.0.1 ical.staffjoy-v2.local
    7. 127.0.0.1 staffjoy-v2.local
    8. 127.0.0.1 app.staffjoy-v2.local
    9. 127.0.0.1 company.staffjoy-v2.local

    5、校验Staffjoy

    6、清理

    1. docker-compose down