当前互联网行业,内部IT基础资源云端化是主要趋势。云平台将资源管理抽象出来,比如云主机、云DB等,以服务的方式提供给用户,按需使用,从而带来更大的灵活性与经济性。YY游戏早已建立面向内部业务使用的云平台,例如升龙系统一、二,云DB,游戏云等。
随着主机、DB、缓存、存储等独立服务抽象出来,那么必然有一个大的容器,将这些个体服务整合成一个整体。这个容器就是VDC,即虚拟数据中心。在传统IT环境里,主机、DB、缓存、存储服务器,都位于物理DC(数据中心)里。在云端化进一步发展后,物理DC也将抽象出来,形成VDC,在更高的层次上为用户提供基础服务能力。
VDC不是很新的概念,Amazon AWS很早就提出了VPC(虚拟私有网络)。VDC跟VPC没有本质的不同,VDC是建立在VPC之上。也就是说,只有VPC得以实现,VDC才能产生。在VDC里,网络由用户自己定义,包括二层网络、三层网络(子网)、路由、安全策略、负载均衡等,都是用户控制。比如张三在他的VDC里,自己声明了一个192.168.1.0/24地址段,所有主机都使用这个段的IP。李四也在他的VDC里,声明一个相同的、或不同的地址段,并分配IP地址给主机。
VDC内部资源包括各个抽象化的具体服务,如云主机、云DB等,如下示意图:
这些抽象化的个体服务,位于虚拟私有网络里。用户接入VDC后,访问它们就如同在物理DC里一样方便。第三方的管理服务,比如部署系统、研发管理系统、监控系统、QA系统,都实例化运行,在每个VDC里发挥作用。我们的升龙部署系统有点类似于AWS的OpsWorks,是一套综合部署与运维平台。
VDC发展趋势必然是跨物理DC。在分布于各地的物理DC基础上,抽象出面向用户的VDC服务。而用户甚至无需关注物理DC的分布,只需要按正常方式使用VDC资源,由VDC自身来保证服务的架构、性能、扩展性。如下图所示:
用户的项目,或者项目组,接入专属的VDC。VDC之间彼此隔离,并不能直接通信,如果需要通信可以走VPN。位于办公室的用户,也通过VPN的方式接入生产网VDC。在我们的游戏云平台上,每款游戏接入一个独立的VDC。
使用VDC的好处至少包括:
- 安全。每个VDC彼此隔离,一个VDC里的安全问题,不会影响到其他VDC。比如某个主机被黑,黑客难以渗透到这个主机所在VDC之外的其他VDC。
- 资源使用灵活。VDC里每个资源,甚至包括VDC自身,都以服务的方式提供。用户可以通过控制面板,或者API的方式来使用这些资源。相比物理DC来说,存在极大的灵活性。
- 经济性。VDC里的资源按需使用,对成本管控无疑有利。我们的云平台成本节省比率大概在40%左右。
- 容量管理。对大而杂的物理DC而言,最大的问题是容量管理。每个物理DC里混合了多个业务,在统计它们的容量时很头痛。而VDC与项目挂钩,每个项目使用一个独立的VDC,在容量管理方面就容易很多。可以统计出历史容量报表,并根据业务发展趋势(PCU、DAU等),自动做好容量规划。容量管理对象包括CPU、内存、磁盘、带宽等。
随着技术的发展,物理DC的硬件条件,包括空调、电力、安防、监控等,也可以逐步抽象成服务,为用户的VDC提供更完善的基础服务。我想在不久的将来,互联网公司的VDC发展将全面取代物理DC,实现更灵活高效的IT基础服务。