云原生下的开发测试之困与阿里的解决之道
【以下为分享实录,有删节】 测试环境管理之困与阿里巴巴的解决之道 在云原生时代下,软件的迭代速度越来越快,对测试的要求也越来越高,很多开发者开始使用Kubernetes来管理测试环境。在这个过程中,开发者会遇到很多困难,其中最主要的两个问题是:一、本地环境与Kubernetes集群网络不通问题;二、共用测试环境时,相互干扰的问题。 在阿里巴巴内部,我们主要通过扁平的内网IP和项目环境两个机制来解决以上痛点。扁平的内网IP主要是基于CNI(Conteinre Network Interface) 机制改造Kubernetes的IP逻辑实现的,可以使集群中的每个Pod分配到的IP与本地机器分配到的IP处于一个大的网络环境下,这样就可以解决本地环境和集群之间互通的问题。项目环境是基于RPC、消息中间件的虚拟环境,从表面上看,每个项目环境都是一套独立完整的测试环境,由一系列服务组成集群,而实际上,除了个别当前使用者想要测试的服务,其余服务都是通过路由系统和消息中间件虚拟出来的,指向公共基础环境的相应服务。这样操作的好处是,第一不会占用大量的开发资源;第二,不会影响公共基础环境的稳定性。 阿里巴巴的这种测试环境带来的测试体验非常爽,本地与集群双向互通,每个子项目都可以独占一个“项目环境”,彼此不会干扰。但是这种测试环境管理方式实施起来比较复杂,只适合大型的集团公司,我们希望将这种测试体验以