Qcon2016-唐容.key

Similar documents
A9RF716.tmp

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

h 端基 gdocbeh 的微服务与持续 in 实践 易立, 阿里巴巴 h 栖社区专家

/ 149 / / / / / 500 1, / / / / / / / / 1,000 3, / / IT 157 / /

Java 1 Java String Date

untitled

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

epub 61-2

软件测试(TA07)第一学期考试

Microsoft Word zw

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实

目次 

自由軟體社群發展經驗與 Linux認證介紹

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Some experiences in working with Madagascar: installa7on & development Tengfei Wang, Peng Zou Tongji university

Simulator By SunLingxi 2003

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

epub83-1

untitled

ebook140-9

Windows XP

背 景 概 述 企 业 需 要 一 种 灵 活 的 平 台 来 快 速 构 建 测 试 和 扩 展 新 的 应 用 程 序 服 务 并 对 市 场 中 发 生 的 数 字 化 变 革 作 出 反 应 数 字 化 变 革 正 在 加 快 步 伐, 因 为 流 程 和 信 息 的 日 益 融 合 带 来

Azure_s

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

Microsoft Word - linux命令及建议.doc

4. I/O I/O Copyright 2001, Intellution, Inc. 4-1

Microsoft Word - 第1章 Android基本概念.docx

政府機關資訊通報第295期(5月)

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

EJB-Programming-4-cn.doc

Microsoft PowerPoint - ch6 [相容模式]

13 A DSS B DSS C DSS D DSS A. B. C. CPU D. 15 A B Cache C Cache D L0 L1 L2 Cache 16 SMP A B. C D 17 A B. C D A B - C - D

SiteView技术白皮书

...1 Abstract

自由軟體教學平台

常 见 问 题 SLB 产 品 和 业 务 限 制 SLB 产 品 限 制 SLB 产 品 和 业 务 限 制 限 制 项 普 通 用 户 限 制 描 述 例 外 申 请 方 式 ( 例 外 上 限 ) 创 建 SLB 实 例 的 财 务 限 制 账 户 余 额 大 于 等 于 100 元 现 金

Sun Update Connection System Sun Microsystems, Inc Network Circle Santa Clara, CA U.S.A

的 開 銷, 請 務 必 先 和 家 裡 討 論 後 再 做 決 定 二 研 修 學 校 簡 介 卡 內 基 美 隆 大 學 (Carnegie Mellon University), 位 於 賓 州 匹 茲 堡 會 選 擇 來 這 裡 交 換, 我 相 信 大 部 分 的 人 都 已 經 知 道

CH01.indd

天津天狮学院关于修订2014级本科培养方案的指导意见

RunPCPB8 new feature.PDF

第1章 簡介

untitled

穨centre.PDF

Microsoft Word - WebGoat用户指南-beta2.doc

IP505SM_manual_cn.doc

Learning Java

電機工程系認可證照清單 /7/1

Microsoft Word - 澎湖田調報告_璉謙組.doc

CCAI 2015 中国人工智能大会 活动总结

WFC40810

What is Version Control? What is Git?

XXXXXXXX

文件汇编.indd

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

投影片 1

大 綱 最 有 利 標 目 的 及 類 型 最 有 利 標 之 辦 理 方 式 準 用 最 有 利 標 取 最 有 利 標 精 神 最 有 利 標 之 類 型 及 其 相 關 規 定 適 用 最 有 利 標 準 用 最 有 利 標 及 取 最 有 利 標 精 神 作 業 程 序 及 實 務 分 析

Lorem ipsum dolor sit amet, consectetuer adipiscing elit

ebook62-1

Paratune用户手册

. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像

Linux 操作系统课程社区创作

000

GoFlex Home UG Book.book

PowerPoint Presentation

CANVIO_AEROCAST_CS_EN.indd

Oracle 4

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

1.ai

WVT new

幻灯片 1

FAQ -PowerDesigner9.5.DOC

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se

QCon2015_Shanghai_XuLi

附件三

京东容器平台与数据中心协同发展实践 鲍永成 京东商城 - 基础平台部 技术总监

Microsoft PowerPoint - Big Data rc Sharing掃盲時間.ppt [相容模式]

Transcription:

Docker 刘昕 ( 唐容 )

刘昕 ( 唐容 ) 阿里巴巴技术专家 目前负责工程效能团队的产品开发工作, 主要包含阿里云持续交付平台 (CRP) 及云 Code 平台 曾负责淘宝日常测试环境, 集团源码管理, 编译系统等基础设施的建设, 以及阿里云云计算等部门的配置管理工作 2

1. 传统 CD 过程中遇到的问题 2. 变革软件交付方式的技术 : Docker 3. 应用 Docker 化交付的过程 3

4

Solution Code Commit Delivery Production Continuous Integration (CI)/ Continuous Delivery (CD) Build Unit Test Deploy and Full Test 5

CD Pipeline 逻辑在一起 应用和环境在一起 代码在一起 功能在一起 系统在一起 6

CD 本地环境 artifactory repo 公有云环境 Config Code Config Tests Test Env Dev Commit to Get / Pull Code Distributed Builds Run Tests Staging Env Prod Env tgz war zip rpm Send Report + + 7

CD 编译环境维护困难 依赖环境维护困难 切换环境调试困难 运行包的版本维护困难 统一环境标准, 环境回溯, 难上加难 8

Code Developer 交付的只有 Code, 以及 Code 的依赖 而 Keep Site Running 需要除了 Code 之外的运行环境, 以及运行环境之间的依 赖 9

Docker 10

没有集装箱, 不可能有全球化 经济学家 变革软件交付方式的技术 :Docker An open platform for distributed applications for developers and sysadmins 11

coding building running Code src/main src/test pom.xml readme.md.gitignore environment define Ubuntu 14.04 CentOS 7 environment dependencies tomcat Jre environment describe PATH configs package.war src.jar dependencies.jars running Images container container 12

Docker : Build Once Run EveryWhere 1 描述环境的能力提供了描述运行栈, 并且自定义 Build 过程的能力 Code 中的描述文件就是 Dockerfile 2 分层文件系统 Image 可以像 Git 一样进行管理, 并且每一层都是只读的, 对环境的每个操作都会被记录, 并且可回溯 3 Docker Registry 提供了管理 Image 存储系统, 可以存储, 传递, 并且对 Image 进行版本管理 4 屏蔽 Host OS 差异解决了环境差异, 保证在任何环境下的运行都是一致的 ( 只要满足运行 docker 的 linux 内核 ) 13

Docker FROM buildpack-deps:jessie-curl RUN apt-get update && apt-get install -y unzip ENV CATALINA_HOME /usr/local/tomcat ADD package.war $CATALINA_HOME/webapp/ EXPOSE 8080 CMD ["catalina.sh", "run"] local docker registry Build Remote Docker Registry push Ship pull Run 14

Docker 15

BBC News Before: 10 种 CI 环境,26000 Jobs,500Dev 任务需要等待, 无法并行 The BBC Challenge 8,500 employees 60+ minute-long tests 150 global servers After Slash job time from 1 hour to 10 minutes: 60% Language Flexibility: Job Eliminate Multi-Day Sideloading Process: CI Empower Developers: Standardization: 16

Step 1: Docker Docker Toolkit ECS driver for Docker Machine AWS, GCE, etc. Docker Docker Machine docker-machine create \ driver aliyunecs mytest \ eval "$(docker-machine env mytest)" docker run -d nginx 17

Step 2: Dockerfile Java linux openjdk 7 && Java Home Tomcat 7 && target.war JVM Web Server 8080 tomcat FROM buildpack-deps:jessie-curl RUN apt-get update && apt-get install -y unzip \ openjdk-7-jre-headless= $JAVA_DEBIAN_VERSION \ && rm -rf /var/lib/apt/lists/* ENV LANG C.UTF-8 ENV JAVA_VERSION 7u91 ENV JAVA_DEBIAN_VERSION 7u91-2.6.3-1~deb8u1 ENV CATALINA_HOME /usr/local/tomcat ENV PATH $CATALINA_HOME/bin:$PATH RUN mkdir -p "$CATALINA_HOME" WORKDIR $CATALINA_HOMEENV TOMCAT_VERSION 7.0.68 ENV TOMCAT_TGZ_URL \ https://xxxx/apache-tomcat-$tomcat_version.tar.gz RUN set -x \ && curl -fsl "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \ && curl -fsl "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc \ && gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz \ && tar -xvf tomcat.tar.gz --strip-components=1 \ && rm bin/*.bat \ && rm tomcat.tar.gz* EXPOSE 8080 CMD ["catalina.sh", "run"] 18

Think 如果有一个安装好 Java 的环境? 如果有一个安装好 Java 和 Tomcat 的环境? 如果是微服务, 对环境只依赖 Java/Node 基础环境, 是不是所有应用都可以共用 1 个环境? 19

Step 3: Docker /UT 用 docker 作为编译 /UT 环境的好处 : 自定义, 可扩展, 可复制的编译环境 Application -v Point build app 和 build docker image 分开进行 - 分层概念导致源码泄露的可能 - 镜像最小化原则 Docker file 不要放到代码根目录下 - 避免大量文件传给 docker deamon 通过运行容器直接运行测试脚本 Build container Binary Docker Image maven npm make ADD/COPY Docker Build 20

Step 4: Docker-Compose 21

Step 4: Docker / routing App App App OSSFS OSSFS OSSFS 声明观念 : I need 负载均衡 (haproxy,nginx) I need 数据库 (mysql) I need 文件存储 ( 通过 -v, ossfs) I need 缓存服务 (redis,kv-store) Database

Put it All together Docker Reg pull docker image Dev Code Config Tests Docker file Commit to pull image push image hook pull code CI Service UT & Build Use Docker image & compse TO CD Service Send Build/UT Report Send Deploy/Run Report 23

Docker 研发 : 更清楚, 更灵活的掌控自己的软件运行环境 运维 : 再也不用为应用软件依赖栈的变更碎片化自己的时间 资源 : 每人每项目每环境 DevOps : 24

Docker Let s Think out together Stateless Web REST API CI/CD Stateful Long-Life Short-Life 25

Thanks 26