AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

基于云平台的容器方案实践指南 by 代闻@aws

发布者 devops
发布于 1469491592493  浏览 6451 关键词 DevOps 
分享到

第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



支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。