"资深架构师牛路在《京东虚拟化实战应用分享》中深入探讨了京东如何利用开源技术构建其虚拟化云平台,选择了Openstack、Centos和KVM作为核心技术栈。分享涵盖了从决策过程、安装部署到集群方案、稳定性和性能优化等多个方面。"
在京东的虚拟化实践中,牛路首先提出了“中国梦,我的梦”的理念,旨在打造中国第一的电商云服务。在这个过程中,团队面临了一系列关键决策,包括是否自主研发还是基于开源项目,以及在Eucalyptus、CloudStack和Openstack之间选择。经过评估,他们最终选择了基于开源的Openstack框架,因为它提供了丰富的功能和强大的社区支持。操作系统选择了Centos,因其稳定性强且与Openstack兼容性好,而虚拟化技术则采用了KVM,因为它是Linux内核的一部分,性能出色且易于集成。
在安装和部署阶段,京东经历了从手动安装到自动化部署的过程。早期版本C版采用源码搭建,随着D版引入Shell安装脚本,部署逐渐自动化。到了F版,通过引入集群安装和部署工具Chef,进一步实现了包括安装、部署、升级和回滚在内的全面自动化,并开发了ChefWebConsole以提升管理效率。在多主机环境和多网络控制器的配置下,京东确保了网络的高效运行,如将br100和public网络分开管理。
在集群方案的设计上,京东云平台采用了复杂的分布式架构,包括RabbitMQ用于消息传递,MySQL作为数据库,ControllerNode进行控制,LoadBalancer实现负载均衡,ComputeWorker处理计算任务,以及使用KVM作为Hypervisor提供虚拟化能力。此外, nova-scheduler负责资源调度,nova-api提供API接口,glance-api和glance-registry管理镜像,keystone处理身份验证,以及Linux Networking和Dashboard提供网络管理和用户界面。整个集群通过RESTAPI和AMQP进行通信,确保了高可用性和可扩展性。
在稳定性与可靠性方面,京东云平台通过Keepalive和Haproxy等技术确保服务的持续可用,同时通过精细的监控和故障恢复机制增强了系统的容错能力。在易用性上,通过不断迭代的ChefWebConsole和优化的用户界面,使得运维人员能够更便捷地管理和维护云环境。
在性能方面,选择KVM作为虚拟化技术的一大原因是其出色的性能表现。通过优化配置和调度策略,京东确保了虚拟机的性能接近物理机,满足了高并发、大数据处理等电商场景的需求。同时,通过不断测试和调优,京东的云平台在处理新功能和特性时也能保持高效运行。
京东的虚拟化实战应用展示了如何结合开源技术,构建大规模、高可用、高性能的云平台,对于其他寻求虚拟化解决方案的企业具有重要的参考价值。