第1页
基于云平台的容器方案 实践指南
代闻 AWS解决方案架构师 wendai@amazon.com
第2页
议程
• 容器与云 • 解决基础资源 • 集群管理平台 • 剖析AWS容器管理服务 • 案例分享
第3页
ContainerandCloud 容器与云
第4页
容器的概念与集装箱类似…
Multiplicity ofGoods
DoIworryabout howgoodsinteract (e.g.coffeebeans
nexttospices)
A standard container that is loaded with virtually any goods, and stays sealed until it reaches final delivery.
…in between, can be loaded and unloaded, stacked, transported efficiently over long distances, and transferred from one mode of transport to another
Multiplicity of methods for transporting/storing
CanItransport quickly and smoothly
(e.g.fromboatto traintotruck)
第5页
容器的历史
• 1979— chroot • 2000— FreeBSDJails • 2001— LinuxVServer • 2004— SolarisContainers • 2005— OpenVZ • 2006— ProcessContainers • 2007— ControlGroups • 2008— LXC • 2011— Warden • 2013— LMCTFY (Let Me Contain That For You) • 2013— Docker • 2014— Rocket • 2016— WindowsContainers
Reference: https://dzone.com/articles/evolution-of-linux-containers-future
第6页
Docker
第7页
容器与虚拟机
Virtual or Physical Server
第8页
容器与云
User Cloud User Cloud
User Cloud
Code Container
VM Infrastructure
Code Container
VM Infrastructure
Code Container Infrastructure
On IaaS Cloud 用户关注VM、容器和代码,并管理容器集群
On Container Cloud (CaaS/PaaS) 用户关注容器和代码
On Serverless Cloud 用户只关注代码
第9页
Docker在云上的应用场景
• 无状态服务 • 批处理 • 持续集成与部署(CI/CD) • 松耦合交付 • 计算单元迁移(混合云、多云) •…
第10页
Infrastructure Resources
解决基础资源
第11页
计算
• 合理选择EC2 Instance类型
• T2:偶然突发场景 • M3/M4:通用场景 • C3/C4:计算密集场景 • R3:内存密集场景 • I2:本地高IOPS场景 •…
• Docker Engine版本选择
• 1.9集成libnetwork • 1.11集成runC和containerd
第12页
存储
• 实例存储(非持久)
• Instance Storage • 免费(支持情况和数量与Instance类型有关)
• 持久存储
• EBS,可以通过API切换EC2作为灾难恢复 • EBSSnapshot定时做,便于数据恢复 • EBS优化,保障存储带宽
• 共享存储
• EFS,NFSv4 Based Storage
• 对象存储
• S3,Registry/Log/Bakcup/Staticfiles
第13页
网络 – Instance Network
• Enhanced Networking of EC2
• SRIOV支持,提高PPS、降低延迟 • 尤其是Proxy、NAT需要启用
• EC2吞吐由机型决定
• 10GE,High,Moderate,Low
• Placement Group
• Non-Blockingfor10GE Instances
• VPC
• 自定义地址空间、子网、ACL、安全组等
第14页
网络 – Docker Network
• Docker网络模型
• Default Network (Host, None, Bridge) • User Define Network (Bridge, Overlay, Plugin)
• TypicalOverlaySolutionsonCloud
• EC2 支持Bridge Model(NAT)和Overlay
第15页
Cluster Management 集群管理平台
第16页
Apache Mesos
Google Kubernetes
Docker Swarm
AWS ECS
第17页
核心要素
• 节点与管理单元 • 资源管理引擎 • 调度器(Scheduler) • 集群状态与服务发现
第18页
Mesos
集群状态与服务发现 调度器 资源管理引擎
节点与管理单元
第19页
Mesos + Marathon for Docker
第20页
Kubernetes
节点与管理单元
调度器 资源管理 集群状态与 服务发现
第21页
RunningKubernetes onEC2
export KUBERNETES_PROVIDER=aws; curl -sS https://get.k8s.io | bash
第22页
Docker Swarm
调度器 资源管理
集群状态与 服务发现
节点与管理单元
第23页
AWS ECS
调度器
节点与管理单元 资源管理
Internet
User / Scheduler
ELB
Container Instance
Docker Task
Container
Task Container
AZ 1
Docker Task
Container
Container Instance
Task Container
ELB
AZ 2
Container Instance
Docker Task
Container
Task Container
ECS Agent
ECS Agent
ECS Agent
Amazon ECS
Agent Communication Service Cluster Management Engine Key/Value Store
API
集群状态与服务发现
第24页
ServiceDiscovery
CONSUL
By HashiCorp/ Go / Raft / HTTP / KV /Built-in Service Discovery /Multiple Datacenter
By CoreOS / Go / Raft / HTTP / KV
By Apache / Java / ZAB / TCP / KV
第25页
Apache Mesos
Google Kubernetes
Docker Swarm
AWS ECS
第26页
AWSECSinDetails 剖析AWS容器管理服务
第27页
托管. 开放. 高扩展
完全托管的管理平台 完整的集群状态 基于API的控制与监控 Agent开源 自定义Scheduler 生产级别的扩展能力
第28页
扩展性与延迟测试
第29页
Clusters与 EC2 Instances
Region内部的资源池 一组EC2实例 EC2实例运行Docker Daemon和ECS Agent 可动态扩展
第30页
TaskDefinitions
组成
Volume Definitions Container Definitions
示例
SharedDataVolume
PHP App
Time ofdayApp
第31页
TaskDefinitions: 基于JSON描述
10CPUUnits(1024isfullCPU), 500MegabytesofMemory Exposeport80incontainer toport80onhost Createandmountvolumes
Essential toourTask
第32页
Task Definition ->Task -> Service
TaskDefinition1
App1 App2 Vol A
Task1 Task1
Service1
Task1
TaskDefinition2
App3 App4 Vol B
AppX定义Container Vol X 定义存储
Task2 Task2
Service2
每个Task包含 1个或多个Containerers
第33页
在线更新Task Definition版本:
滚动更新(创建新Task),结合ELB实现平滑过渡
ELB V1 V1
ELB V1 V1 V2
ELB V1 V1 V2 V2
第34页
ECS CLI 与 Docker Compose 兼容
“TaskDefinition”
第35页
集成AWS相关服务
负载均衡:ElasticLoadBalancing 持久化存储:AmazonElasticBlockStore 网络隔离:AmazonVirtualPrivateCloud 安全防控:AWSIdentityandAccessManagement 使用审计:AWSCloudTrail 私有Registry:AWS EC2 Container Registry 日志收集:AWSCloudWatch Log
第36页
Task状态监控
第37页
日志: CloudWatch Log and the Power of Cloud
ElasticSearch Kinesis
Customer Application EMRSpark
Kinesis Firehose Lambda
EMRHive Redshift
第38页
CustomerCases 案例分享
第40页
EducationatScale
15million
learners worldwide
1,300+
courses
2.5million
course completions
125+
partners
第41页
目标:提供一个统一的执行框架
• 报表
• 老师报表:分数、学习曲线、课程进度 • 内部报表:业务指标、支付
• 市场
• 推荐邮件 • 目标用户推广/重新激活邮件
• 教育创新
• 寻找和分析配对审阅者 • 自动打分系统
第42页
选择ECS的原因
Little maintenance
Integratedwith restofAWS
Easyto developfor
第43页
Coursera还研究了哪些方案?
• Home-grown Tech
• Tried,butproved tobeunreliable
• Difficulttohandle coordinationand synchronization
• Powerful,but hardto productionize
• Needsdevelopers withexperience
• DesignedforGCE first
• Notamanaged service,higher Opsload
第44页
However…
Amazon ECSisagreatbuildingblock, but we stillneed tobuild toolsaround itforour purposes.
第45页
Iguazú:Architecture
Devs
Iguazú Admin
Users
Services Services
Iguazú Scheduler
Iguazú Frontend
SQS
Iguazú Backend
Cassandra
ECSAPI ECS
Workers
第46页
High-levelGrID Architecture
Learners
GrID
Iguazú ProductionAcct
S3Bucket
VPC Firewalls
Grading Machines
ECSAPI GrID GradingAccount
第47页
谢谢!
第48页
References
• http://mesos.apache.org/ • https://mesosphere.github.io/marathon/ • http://kubernetes.io/docs/ • https://docs.docker.com/ • http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html • http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html • https://github.com/aws/amazon-ecs-agent • http://www.slideshare.net/AmazonWebServices/cmp406-amazon-ecs-at-coursera-a-generalpurpose-microservice • http://www.slideshare.net/dotCloud/docker-intro-november • https://www.consul.io/ • https://coreos.com/etcd/docs/latest/ • https://zookeeper.apache.org/ • https://github.com/coreos/flannel • https://www.weave.works/ • http://openvswitch.org/ • https://en.wikipedia.org/wiki/Paxos_(computer_science) • https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf • http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5958223&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2
Fabs_all.jsp%3Farnumber%3D5958223