您正在学习的是试看内容,报名后可学习全部内容 报名课程
人气值 6.1k

第一期|使用docker构建高可用的开发环境

章节汇总

  • 第一期,使用docker构建出高可用的开发环境

开发人员痛点

  • 1.环境复杂,需要的工具太多,安装过程漫长、困难;
  • 2.软件、工具太多,本地机器上的软件杂七杂八,宿主机每隔一段时间就有想重装系统的冲动;
  • 3.人员习惯不同,团队的开发环境不一致,开发环境可能是windows或者MacOs,但是线上环境是Linux;
  • 4.开发环境不能版本控制
  • 5.想同时使用多个版本的工具集
  • 6.运维人员和开发人员的关系,出问题甩锅情况严重
  • 7.单枪匹马做项目,自己也想做DevOps
  • 8.产品流量波动很大,计算资源不能合理分配

单人负责项目devops

screenshots.png

解决方案对比

  • 开发环境

    • Vagrant每个环境都是一台虚拟机资源,繁重、管控比较麻烦,迁移和版本控制也麻烦。虽说它也是一种开发团队的解决方案
  • 运维环境

    • 类似ECS服务器自己做集群或者单机服务
    • puppet 集中配置管理,使用于大批量部署想通过服务场景

Docker简介

Docker 是一个开源的应用容器引擎。

核心观念:

  • Build, Ship, and Run Any App, Anywhere
  • 构建,迁移,运行

能干什么:

https://www.docker.com/what-d...

  • Docker自动执行设置和配置开发环境的重复任务,以便开发人员可以专注于重要的事情(构建出优秀的软件)
  • 使用Docker的开发人员不必安装和配置复杂的数据库,也不用担心在不兼容的语言工具链版本之间切换。
  • 任何语言,任何技术栈。构建,测试,调试和部署以任何编程语言编写的Linux和Windows Server容器应用程序,而不会出现不兼容或版本冲突的风险
  • 将入职时间减少65%:快速构建,测试和运行复杂的多容器应用程序,并停止浪费在服务器和开发人员机器上安装和维护软件的时间。所有依赖项都运行在容器中,从而消除了“我的机器上的工作”问题
  • Docker配有内置的群集,易于配置。在以最少的设置模拟生产的环境中测试和调试应用程序

screenshots.png

docker的优势是轻量级虚拟化产品,传统的虚拟化中包含了一个操作系统资源开销,而docker只是在宿主机上进行了资源的一系列隔离。启动一个vmware虚拟机最快需要10-20S,而启动容器,只需要秒级。

vmware虚拟宿主机环境安装

  • Step1 准备一台包含vmware的机器
  • Step2 选择喜欢的linux发行版
  • Step3 安装docker,docker-compose 2个必要工具
  • Step4 共享你的宿主机的workspace到linux虚拟机

构建docker开发环境和常用工具

  • docker-compose 说明
  • 项目结构目录构思
  • yaml 文件编写
  • 常用工具编排
  • 启动一个lnmp+redis的环境
  • 数据库的备份和恢复
  • 数据库的迁移方案

容器项目构建编译环境

  • 非解释性语言的编译环境
  • 配置alias做一个干净的工具集
  • 触发编译构建

容器自动化测试

  • 测试的必要性
  • 自动化测试
  • 简单实例

和团队共享你的环境

  • git版本控制
  • githook配置
  • 发布项目到github共享项目资源

编排容器线上生产环境

  • 线上环境差异说明
  • 分离配置文件
  • 分离compose文件

发布到公有云环境

  • 容器云
  • 云服务器

日常维护和日志管理

  • docker 日志查看
  • 日志收集

MacOs使用docker构建以上环境说明

  • Docker ToolBox