ArchSummit北京-《Coding容器化实践分享:Docker理念解析与技术填坑》-孙宇聪

ArchSummit北京-《Coding容器化实践分享:Docker理念解析与技术填坑》-孙宇聪

ID:8219394

大小:4.50 MB

页数:36页

时间:2018-03-10

ArchSummit北京-《Coding容器化实践分享:Docker理念解析与技术填坑》-孙宇聪_第1页
ArchSummit北京-《Coding容器化实践分享:Docker理念解析与技术填坑》-孙宇聪_第2页
ArchSummit北京-《Coding容器化实践分享:Docker理念解析与技术填坑》-孙宇聪_第3页
ArchSummit北京-《Coding容器化实践分享:Docker理念解析与技术填坑》-孙宇聪_第4页
ArchSummit北京-《Coding容器化实践分享:Docker理念解析与技术填坑》-孙宇聪_第5页
资源描述:

《ArchSummit北京-《Coding容器化实践分享:Docker理念解析与技术填坑》-孙宇聪》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CODING与DOCKER•所有服务都在用DockerContainer运行。•维护自己的私有Registry基础镜像,供开发和生产使用。•参与Upstream开发,提交多份Issue/Patch•自研了生产环境容器编排系统DOCKER:THEGOODPARTSDOCKER:SELFSUFFICENTPACKAGINGDOCKER:EASYAPPDISTRIBUTIONDOCKER:UNIVERSALAPIDOCKER:COMMONINFRAPACKAGINGDISTRIBUTIONDOCKERRUNTIMEORCHASTRATIOND

2、OCKER:THEBADPARTS鸡肋的DOCKERIMAGE一个不那么圆的轮子DOCKERFILE真的有用吗•FROM的问题•基础镜像没有一个靠谱的•Debian,Ubuntu,还有Centos/Fedora基于什么的都有•Hub上到处是雷和Abandon-ware•新一代的copy&paste大法DOCKERFILE有用吗•RUN的问题•apt-getupdate–y&&apt-getupgrade–y•每句加一个layer,轻松来个十几G的镜像•没完没了的等,继续等,使劲等DOCKERFILE有卵用吗•CMD/ENTRYPOINT

3、的问题•这俩居然也占layer,服了.•编译产生的垃圾谁负责?代码谁负责清理?•有必要把运行命令写死在镜像里吗.CODING实践1:BUILD&PACKAGE接口比实现重要一万倍BUILD•所有主流编程语言都已然实现了编译和打包工具•大约一万遍•依赖管理就不是个问题•Vendoring,自包含镜像,等等,除非姿势不正确。•接口统一•实现自己写去PACKAGE•暂时还是先用DockerImage•随时也可以改•正确的Dockerfile只有三行•FROMbase20151030:jre8.20u•ADDapp.jar/app•CMD[“j

4、ava”,“-jar”,“app.jar”]•其实也可以只有两行废柴的DOCKERREGISTRY勉强凑活用,因为实在不重要REGISTRY的作用•Over-engineering的FTP•API,客户端library也不那么完善•实在排不上优先级去折腾,先凑活用吧坑爹的DOCKERRUNTIME小姐的身子,丫鬟的命DOCKERDAEMON大坑实录•dockercontainer在stdout/stderr有大量数据传输会导致内存泄露,直至dockerdaemonOOM•dockerdaemon在频繁创建container后,会在文件系

5、统中遗留很多垃圾文件不清理,导致磁盘inode被耗尽•docker里面没有init,daemon也没有reap子进程fork很多进程,会在系统中出现很多僵尸进程,最终导致dockerdaemon出现问题。CODING实践2去其糟粕,取其精华没有卵用的花哨、前沿功能,一律不用CODING的容器配置•单进程,微服务,没必要那么多限制•trust-cooperative环境,我们不是IAAS•Host网络模式•不趟SDN,proxy这样的浑水/雷区,性能也不受影响•host上数据持久化•未来可能可以考虑datacontainer,但是然并卵•

6、直接mountHostlocale,timezone,passwd等配置.不存在的DOCKER编排系统Swarm,K8s,Mesos神仙打架,百姓遭殃•Swarm,kubernetes,Mesos•都处于早期,步子迈的太大。•动态伸缩的需求有,但是没那么大•静态、手动的资源分配•IAAS也降低了对这个的需求。•对docker容器的直接接管能力都不行.•需要的功能都没有,没用的烂事一堆CODING实践3工具、实用、半自动把有限的精力花在最需要的功能上代码化的生产环境•记录什么东西跑在什么机器上•常用属性的的管理•Jobs/Tasks抽象层

7、•集群可复制半自动化操作•./coding-jobupcoding-mart•自动使用标准配置启动一个容器•./coding-jobdowncoding-mart•自动干掉这个容器•./coding-jobstatuscoding-mart•监控容器的状态,内存等高级自动化操作•执行update操作,会列出当前的image列表,选择后就可以进行全自动更新。未来还准备做的功能•./coding-jobdiff•在真的更新之前,先看看改了什么•./coding-jobrolling-update•Job/Tasks抽象层可以帮助很快的批量操

8、作一个服务•./coding-jobweb•方便网页化,可以看status,log,甚至远程shell功能CODING实践总结喊一些口号三个关注点•软件架构的升级•微服务、无状态、数据执行分离•研发体系、环

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。