The architecture design of cloud data centers is an art by itself. It’s very similar to composing a new musical notation not only with melody, harmony and rhythm but also with the vision to scale for the notes used. When we say cloud data center, it’s mainly a number of virtual Data centers that sits on top of physical infrastructure in one or multiple locations. Here are my five main rules for designing a next generation cloud data centers.
Rule#1 – Know the context of your applications and their related SLAs: Business Applications, PCI apps, web apps; applications written in Java, C, PHP, Python or Ruby might have different requirements so knowing your application requirements and how they look like on the wire are the basic starting points for designing your virtual cloud data center. Mission critical applications require .99999 availability or 5 minutes downtime a year and even .999999 or 30 secs of downtime a year; so make sure that you meet these SLAs in moving your applications to the cloud.
Rule2 – Carefully design your IP Backbone Network: First, Know the number of IP addresses required, pick a unique IP range that is not used somewhere else and don’t conflict with existing IP ranges. Second, create public and private subnets and divide it by functions such as Application subnet, Database subnet, cloud management and analytics subnet, etc. Third, define your routing tables for your public subnets towards your public gateway and for your private subnets towards your VPN gateway. Fourth, Define your virtual NAT Network address translation for instances that run on private subnets and finally define your VLAN and VLAN tags to route traffic between your virtual data centers on the same fiber connection.
Rule #3 – Designing a platform for today with the capability to scale for tomorrow: This can be achieved by having an auto scaling system with monitoring capability that can keep an eye on your virtual environment and can automatically scale up and down based on load requirements. With auto scaling, you don’t need to order anything, you just call the APIs. During peak hours, the monitoring system can call for additional computing resources while contracting resources during low traffic periods. The basic tip here is to define the right set of rules that adjust the min and max number of servers based on either schedules or CPU utilization.
Rule #4: Build a highly available virtual Data Center across the stack from the Database tier up to the application tier. In addition to designing a redundancy on the infrastructure (both server and link redundancy), Define a master and slave DB with synchronous replication between master and slave so that your applications will keep running if you lose your master keeping the time to promote the master to slave and spinning a new VM as low as possible. On the networking side, make sure that your virtual routers and switches are redundant and also many many applications depend on NAT Network address translation, so make sure you design a highly available NAT from the early beginning. On the application tier, replicate your applications on multiple virtual Data centers, make it highly available and eliminate any single point of failure in your cloud platform. Also, do stress testing for your applications and APIs with thousands of concurrent connections before moving your apps into the cloud.
Rule #5 – Security: Look at the compliance, regulatory and data privacy requirements in the countries where you want to launch your data centers. On the networking layer, define your virtual Firewalls; apply Access security rules to your subnets and inbound and outbound policies to your virtual instances. On the management layer, Use Identity and Access Management IAM to allow the right people to make changes to your virtual Data center configuration.