Most CDNs are based on a physically distributed network of servers and data centers which are centrally maintained, or a decentralized P2P architecture. We investigate how network coding can be used to combine both architectures by circumventing individual file partitioning, enabling files to be distributed over both data centers and P2P nodes. We formulate the file allocation problem with performance and demand constraints as a convex program.