上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

2019年基于容器的编译加速实践.pdf

编号:97748 PDF 31页 4.29MB 下载积分:VIP专享
下载报告请您先登录!

2019年基于容器的编译加速实践.pdf

1、GOP S 全 球 运 维 大 会 2019上 海 站GOP S 全 球 运 维 大 会 2019上 海 站让编译飞起来-基于容器技术的编译加速实践GOP S 全 球 运 维 大 会 2019上 海 站目录引言1容器与蓝鲸容器服务2编译与编译加速3基于蓝鲸容器服务的编译加速平台4GOP S 全 球 运 维 大 会 2019上 海 站利用容器技术给传统加速编译技术赋能,提升整体服务能力和效率引言p 容器和容器编排 容器:相比虚拟机更灵活高效的虚拟化技术,将应用以及应用运行依赖的环境打包发行,然后运行在沙箱中 容器编排:管理集群主机资源,调度部署容器并管理容器生命周期p 编译和编译加速 编译:从源

2、代码生成可执行程序的过程,CI/CD过程中的重要环节 编译加速:充分使用系统内存和CPU等资源以及集群能力,提升编译速度GOP S 全 球 运 维 大 会 2019上 海 站目录引言1容器与蓝鲸容器服务2编译与编译加速3基于容器的编译加速平台4GOP S 全 球 运 维 大 会 2019上 海 站p 虚拟化技术p 资源控制和隔离p 占用资源小p 启动速度快容器GOP S 全 球 运 维 大 会 2019上 海 站p Docker将容器技术标准化,真正做到一次构建随地运行p Docker架构 镜像,容器 镜像仓库 Docker Daemon Docker Client&APIDockerGOP

3、S 全 球 运 维 大 会 2019上 海 站p BCS解决大规模主机和容器的部署和管理问题,保证服务的稳定运行,方便升级和故障恢复 底层K8S和mesos双引擎 灵活的调度机制 容器和进程混合部署 运行时命令通道 扩展能力强蓝鲸容器服务BCSGOP S 全 球 运 维 大 会 2019上 海 站p 支持容器和进程混合编排 用相对统一的方式编排进程和容器,解决传统业务中不适合容器化或者容器化困难的模块编排问题,并可以和容器化模块无缝对接;进程和容器在定义上切换方便p 支持命令通道 服务运行过程中需要发送指令对服务运行状况进行管理和调整蓝鲸容器服务BCS基于mesos实现的自研服务编排引擎,能更

4、好的支持传统应用的容器化GOP S 全 球 运 维 大 会 2019上 海 站p BCS在腾讯devops各环节中发挥着重要的作用,提升了系统的易用性和运行效率 服务构建中使用BCS调度构建容器和编译加速容器服务 服务构建后快速利用镜像生成测试验证环境 编排和管理线上服务蓝鲸容器服务BCSBCS开源地址:https:/ S 全 球 运 维 大 会 2019上 海 站目录引言1容器与蓝鲸容器服务2编译与编译加速3基于蓝鲸容器服务的编译加速平台4GOP S 全 球 运 维 大 会 2019上 海 站p 从源代码到可执行程序需要进行编译,编译过程和各步骤的输入输出如右图:1.预处理2.编译3.汇编4

5、.链接从hello world来看编译过程GOP S 全 球 运 维 大 会 2019上 海 站编译加速常用手段p 充分利用本机的内存,CPU等资源,减少编译过程中的工作,加快IO效率和计算效率1.减少非必要的编译:ccache2.解决IO瓶颈,充分利用内存:tmpfs3.通过并行执行充分利用本机CPU资源:make j由于本地配置差异较大,本地编译加速的效果也存在比较大的不确定性GOP S 全 球 运 维 大 会 2019上 海 站编译加速的意义和常用手段p 分布式编译加速1.条件:并发,耗时,CPU占用2.举例:distcc fastbuildIncredibuild主要依靠集群能力,在集

6、群能力稳定的情况下,能提供相对稳定的加速效果加速平台以分布式编译加速为核心,兼顾本地加速编译手段GOP S 全 球 运 维 大 会 2019上 海 站p FastBuild分布式编译1.通过网络共享路径同步2.分发文件的同时会分发构建工具链,从机环境相对统一3.网络开销大4.需要针对项目写fbb文件,接入成本相对比较高5.目前分布式编译只支持windows平台6.无法对项目进行隔离,负载均衡不稳定传统分布式编译方案GOP S 全 球 运 维 大 会 2019上 海 站p Distcc分布式编译1.通过环境变量指定从机地址2.编译机将不同编译文件通过网络分发到从机进行编译3.所有文件编译完成后在

7、编译机进行链接4.从机编译环境必须和编译机保持一致传统分布式编译方案GOP S 全 球 运 维 大 会 2019上 海 站p传统Distcc分布式编译弊端1.不能及时发现集群资源的变化2.不同编译环境不能共用集群资源,造成资源浪费,管理成本高3.不同编译任务使用相同的编译从机,抢占式的资源使用方式,无法提供稳定的加速服务4.不同编译任务使用的资源不隔离,存在安全风险传统分布式编译方案无法为大规模数量的项目提供统一的编译加速服务GOP S 全 球 运 维 大 会 2019上 海 站目录引言1容器与蓝鲸容器服务BCS2编译与加速编译3基于BCS的编译加速平台4GOP S 全 球 运 维 大 会 2

8、019上 海 站p 目标是将不同编译引擎和集群资源统一管理,为大量项目提供门槛低,效率高,安全稳定编译加速服务,减小重复建设,提升整体资源利用效率p 关键问题 不同项目编译环境差异大,如何适应各种环境 集群资源异构(地域,性能,系统),如何进行管理并合理分配 服务安全稳定 用户接入门槛低 不同编译加速引擎支持编译加速平台目标和核心问题GOP S 全 球 运 维 大 会 2019上 海 站p 编译资源集群 Linux,Windows,上海,深圳.p 编译引擎管理器 DistccManager,FastBuildManagerp 服务网关 任务设置和任务数据p 接入端工具集编译加速平台架构GOP

9、S 全 球 运 维 大 会 2019上 海 站p 通过mesos对集群中异构资源进行管理 Mesos slave 管理集群中单台主机的资源 Mesos master 将集群中资源统一管理并提供给服务调度器使用p 主机属性和资源量 主机属性可以通过mesos slave主动上报,也可以在调度层进行设置 主机资源量由mesos slave实时上报编译加速集群资源管理GOP S 全 球 运 维 大 会 2019上 海 站p 标准化资源单元 屏蔽不同主机的能力差异,减小调度复杂性p 资源配比灵活 CPU/Mem配比标准化基础上动态调整,支持个性化需求p 灵活支持多样化运行环境 clang,gcc等20

10、多个版本 个性化编译环境编译加速集群资源运行时容器化GOP S 全 球 运 维 大 会 2019上 海 站p 初次启动定额分配资源,可配置p 监测每次编译资源使用情况调整配额 正向调整:一次触发,大幅度 逆向调整:长周期观测,小幅度编译加速任务资源配额管理通过监测历史负载情况,将任务的配额调整到合适的水平GOP S 全 球 运 维 大 会 2019上 海 站p 资源配置不合理情况:项目中加入大量的代码 项目长时间没有进行大规模构建导致资源配额收缩p 运行时监测动态调整 容器负载监测,并行任务监测 正向调整编译加速资源配额实时动态调整实时监测负载情况并及时调整,对异常情况下的资源配额能快速弥补G

11、OP S 全 球 运 维 大 会 2019上 海 站p 集群充裕系数 集群中剩余资源和总资源的比例关系 集群资源剩余越多,充裕系数越大,当前配额系数越大p 资源目标使用比 目的是尽量充分利用资源的同时避免资源耗尽 经验值编译加速集群资源充裕情况影响资源配额通过资源充裕系数,兼顾资源利用效率和满足更多用户需求GOP S 全 球 运 维 大 会 2019上 海 站p提前启动容器池,即时使用p以当前使用量为基数按比例冗余p资源紧张时不冗余,恢复即时启动机制编译加速服务预启动机制使用预启动机制,使得编译启动时间从10秒下降到不到2秒,大大提升用户体验GOP S 全 球 运 维 大 会 2019上 海

12、站p 资源申请限制 Token IP,Mac白名单 项目并发限额p 资源使用限制 动态随机端口 连接IP限制 用完即时销毁编译加速安全机制GOP S 全 球 运 维 大 会 2019上 海 站p 编译器支持 Clang GCCp 编译工具支持 Make Cmake Bazel Blade Ninja编译加速平台接入GOP S 全 球 运 维 大 会 2019上 海 站p 对各编译工具对应实现对应的bk系列工具,方便用户快速接入 Bk_make Bk_cmake Bk_bazel Bk_blade Bk_ninja编译加速平台接入使用举例:Bk_make 替换make命令,只需提前对makefile做非常简单的替换GOP S 全 球 运 维 大 会 2019上 海 站p 通过服务网关管理编译加速任务 云端编译环境管理和配置 编译机远程操作支持 安全策略管理 加速开关设置:distcc,ccache,tmpfs等 编译环境参数编译加速平台接入GOP S 全 球 运 维 大 会 2019上 海 站p 公司内各业务线总计接入近300个项目超1000个任务p 目前之前distcc和fastbuild分布式编译加速引擎p 管理集群200左右机器,提供长期稳定的编译加速服务p 大部分项目编译时间缩短60%以上,平均缩短约70%编译加速平台服务效果

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(2019年基于容器的编译加速实践.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部