大纲:
Docker 是什么Mesos 做什么
Ansible 怎么用
Spark as a Service 如何搭
一、Docker 是什么
顶级开源项目
docker是Docker Inc发起的开源项目
Linux kernel namespaces and cgroups
Container 引擎
GitHub
Star 20k+ Fork 4.7k+ (截止到2015年4月)
Golang
Apache2.0
Docker 带来的好处
不要依赖
•Base image;
•使用all-in-one模式;
无状态应用
•容器大小不是分发应用的瓶颈;
•目前最好的Container镜像打包对象;
微服务设计
•提前做好Http/RestFul交互;
•天然支持多副本实例,比如在单台主机 上启动5个相同版本的Mysql实例
二、Mesos
Apache顶级开源项目
•Google分布式系统Borg的开源实现 版本
•AirBnb,Twitter推荐生产级别集群
•最大的集群规模可达到10万节点
•支持跨机房互联
Mesos做什么
10分钟搭建企业级Docker容器cgroups iis7站长之家可行方案
HAProxy/Bamboo
服务发现非常可靠;
集群
• 自动伸缩;
• 已经经过Twitter,AirBnb等公司的磨练,可以大胆用于生产;
网络
•初期直接用IaaS层的网络;
镜像分发有技巧
•Slave机器的镜像需要预热,直接下载需要等;
资源调度
•资源调度是静态的;
•规划应用资源大小有技巧,根据业务来调节;
三、DevOps工具Ansible
部署自动化就靠它了;
Ansible 怎么用
部署
•自动化部署不是自动化配置,拒绝花哨;
•命令行对DevOps最顺手;
•Git控制playbook可以结合Jenkins自动化;
维护
•重心放在hosts和roles;
界面
•界面操作自动化部署,不实用!我们是 DevOps 团队;
架构
•Spark Driver使用Docker包起来;
•Spark Executor端口暴露太随意,不要打包到Docker里面;
•推荐使用强制资源模式,不要使用优化模式运行;
•存储到HDFS是折中,最好内存数据库;