The request
Aruba, a well-known European company in the field of hosting and domain registration services, was in the process of launching a cloud virtualization platform. For this platform, a control software (daemon) needed to be created. While communicating with the platform itself, it would implement the configurations of the basic parameters (such as network, logging, package installations) within the virtual machines decided by the user through the web control panel.
The sophistication comes from the versatility of the cloud platform in question, which allows the user to launch a VM (Virtual Machine) on six different operating systems: Ubuntu, CentOS, Windows, Openfilter, FreeNAS, and pfSense.
It was therefore necessary to have extensive experience in system programming on UNIX and non-UNIX operating systems and knowledge of the specificities related to network scripts and to the package managers for each operating system.
Challenges faced
- Testing difficulty due to the high number of platforms
- Necessity to be familiar with the configuration scripts in detail on six different operating systems.
Solutions implemented
- Used Python for basic portability
- Used an automated testsuite to facilitate refactoring and evolution
Requirements
- A daemon running on six operating systems
- Configuration features of the operating systems
- Quick development
Develer’s contribution
- Used Python for portability and writing speed
- Automated tests to test the code on six platforms
- Multi-process plugin system for greater stability
Results
- Excellent stability
- On-time delivery
- No need for modification or bug fixes after initial release
Advantages of our solution
- Using Python guaranteed full code portability and rapid development
- Deciding to use a plugin system through external processes became important to ensure the stability of the main daemon
- A fully automated test system enabled us to quickly test every change on all six platforms with a simple click
Looking for Python experts?
Advantages of our approach
We immediately implemented a vast automated testsuite that covered every requested feature, running the tests simultaneously on the six platforms through the use of the “fabric” library. This operating mode has allowed us to manage some refactor and protocol modification during development (requested by the client) without having to manually test each platform again.
Advantages of open source
We relied on a wide range of open-source libraries available for the Python language in order to make development much faster and more effective.
Client
Leading European company in the field of hosting, domains, and cloud
Staff
“Our system programming expertise on multiple systems, combined with the experience of the powerful Python language, has made us the ideal partner to implement a complex cross-platform configuration system.”