唯品会PaaS实践:基于容器的持续集成与部署

需积分: 10 5 下载量 2 浏览量 更新于2024-07-15 收藏 925KB PPTX 举报
“唯品会PaaS平台是基于容器技术,特别是Docker,构建的持续集成和部署系统。该平台旨在解决唯品会在大规模电商运营中遇到的复杂部署、测试环境管理以及物理机资源低效利用等问题。” 在唯品会的现状中,面临的主要挑战包括多个应用对应独立的域,导致依赖关系复杂,部署与发布难度大;缺乏统一的持续集成和部署流程,以及多套测试环境的管理和升级问题。此外,物理机数量超过1万台,但资源利用率普遍较低,即使在高峰期也仅为10%左右。 唯品会PaaS平台选择了Kubernetes作为基础架构,因为K8s的虚拟IP概念与唯品会的应用模型相吻合,功能丰富,减少了开发工作量,并且拥有活跃的社区支持。唯品会的团队成员甚至直接参与了K8s社区的代码贡献。 平台的功能点主要包括:dashboard管理界面、安全性控制、镜像管理、资源配额、日志收集(通过fluentd+kafka+ELK)、云框架、K8s提供者、Swarm提供者、任意云提供者、消息系统(GNATS)、监控系统(Prometheus)以及服务发现(skydns)等。API服务器、服务网关(如nginx+tomcat)也是关键组件。 构建和部署流程中,唯品会采用了K8s集群配合Jenkins进行自动化操作,包括构建包、制作镜像、K8s集群内构建、Jenkins K8s插件的使用、镜像上传到VIP registry和Cider,以及测试(VTP)等步骤。通过标签对包和镜像进行管理,确保部署过程的高效与稳定。 为了适应唯品会的需求,平台进行了定制化开发,例如在Docker网络方面,创建veth pair并配置IP,确保容器停止后重启时IP不变。对于Kubernetes Jenkins插件,优化了jenkinsslave的容器调度策略。同时,针对不同环境的外部域名负载均衡,使用了gorouter网络替换Flannel+VXLAN,并修改kubelet以直接使用Docker网络方案,如OVS+VLAN,以提升网络性能和稳定性。 唯品会PaaS平台通过采用Docker和Kubernetes,实现了大规模应用的高效持续集成和部署,解决了资源管理和利用率问题,同时通过定制化开发优化了网络策略和自动化流程,提升了整个系统的灵活性和可扩展性。