docker和微服务金山云赵帅2016-05-28vdocker简介vdocker在CI/CD中的应用vdocker编排系统01虚拟机和容器•虚拟机:•硬件虚拟化•虚拟机之间共享硬件•隔离级别在操作系统•容器•进程级虚拟化•容器之间共享操作系统•隔离级别在程序运行时环境(namespace)docker和容器•容器并不是新技术•传统容器技术,只解决了容器运行(run)的问题•docker将容器的“打包”标准化,定义了一套构建(build)、分发(ship)、运行(run)的标准化体系•应用程序的“集装箱”集装箱解决了货物运输标准化的问题docker的特点•镜像的分层和版本化•可移植性•buildonce,runanywhere•以应用为中心•application-centric•docker镜像可类比为应用程序的可执行文件(exe)•在运行时,docker是披着"虚拟机马甲"的进程•众多基于docker的工具docker组件和架构-典型的C/S结构docker和微服务•docker和微服务天然是一对好兄弟•docker封装了程序所需的依赖,是微服务运行的完美环境•docker轻量化,适合微服务的快速构建和重组•基于docker衍生了大量的工具/系统,微服务的开发、测试、部署、运行都可以从中受益Docker和微服务•开发&测试•将docker应用于CI\CD流水线,可加快微服务的迭代速度,提高交付质量•docker可用少量的资源,创建完整的测试环境,甚至可同时创建多套测试环境•部署&运行•docker编排工具,提供调度、服务发现、负载均衡、故障转移、快速扩容缩容等功能,大大简化了微服务的管理工作vdocker简介vdocker在CI/CD中的应用vdocker编排系统02CI和CD•为什么要在CI、CD流程中引入docker•提供一致的开发、测试、运行环境•常用的CI、CD系统•jenkins•Drone•gitlab-CIWorkflowJenkins•功能强大,部署配置复杂•通过插件形式支持docker•支持多种VCS•适合私有部署Drone•配置简单,支持云端部署•原生支持docker•支持github、bitbucket、googlecode等代码托管服务•适合开发者gitlab-CI•私有的githubvdocker简介vdocker在CI/CD中的应用vdocker编排系统03docker编排系统•Mesos•Kubernetes•SwarmMesos•诞生于2009年•定位于数据中心操作系统•支持hadoop、spark、docker等多种应用框架•Mesos仅提供资源的抽象,由各种framework提供应用的管理•marathon是支持docker的framework,主要由Mesosphere公司维护Kubernetes•源自googleborg,诞生于2014年•原生为docker而设计•核心概念•Pods•Labels•Services•ReplicationC...