Would you like to know how a cloud management platform is built? What is its architecture? What modules and technologies are used to build the platform and for intra-platform communications?
Last year we had to face some serious scalability and robustness issues with our platform: how could we manage multiple datacenters with remote services, storage systems, hypervisors and network configurations in a scalable way? How could we configure our platform to be distributed through a (probably) highly complex architecture? All of these problems along with a pack of new features led to our most important version so far: Abiquo 2.0 (codenamed Tao Pai Pai)
After many meetings and discussions, we designed a new architecture and refactored some of our core modules, especially what we call the virtualfactory. We also introduced some new technologies we hadn’t used before, such as Redis, Akka or RabbitMQ. And we went through a demanding integration and QA process until we were all happy with the result. Our main challenges were implementing an actor-based programming model (codenamed Tarantino), designing and completing our RESTful API, and using asynchronous operations wherever possible.
Take a look at these slides introducing our platform architecture and its modules!
Meanwhile, we’ll be writing some posts explaining certain sections more deeply so stay tuned for more!