- Schedule a call
- info@vmengine.net
The client and the context
Ninja Academy is one of the most dynamic and innovative training organizations in the field of online education. It offers highly specialized courses on the most advanced marketing theories and techniques using cutting-edge methods. A company that helps businesses—but not only businesses. Through its highly specialized courses, it aims to train professionals to enable them to navigate social and economic changes by introducing new models, tools, and marketing and communication techniques. The company, which also manages the Ninja Marketing portal, has decided to “migrate” to the Windows Azure Public Cloud by joining Microsoft Italy’s BizSpark program.
Continuous learning is essential in the knowledge economy. Staying constantly up to date on developments in the world of web marketing and technology is an indispensable tool for tackling the challenges of an ever-changing landscape. Ninjia Academy, a leader in e-learning, offers numerous training programs: web marketing, digital strategy, social media marketing, unconventional marketing, and viral marketing are just a few of the many courses the academy successfully offers.
With our wide range of training options, anyone can find the program that best suits their needs: from basic to advanced courses, and from in-person corporate training to distance learning. Every student is guided by highly qualified instructors, whether in the classroom or through e-learning. Thousands of young web marketers have already chosen Ninjia Academy’s communication and marketing courses to become communication professionals.

The challenge
Ninja Academy’s e-commerce and e-learning platform was hosted on a single dedicated server owned by the software company that developed the portal. Thanks to the Ninja group’s enrollment in the BizSpark program and its desire to optimize infrastructure costs, the Ninja group asked us to plan, design, and migrate the portal to the Microsoft Cloud.
The VMEngine Solution
The solution implemented by VMEngine isa multi-tier infrastructure (see figure) consisting of VMs with auto-scaling, load-balanced web servers, NFS, and database servers, all contained within a virtual network with three subnets.
The code changes that the VMEngine team suggested and led were:
The change in the system for displaying uploaded slides to alternative solutions that did not rely on server-side conversion libraries, but instead used simple client-side JavaScript for rendering;
Replacing the local MTA with an external SMTP server managed by a third party;
Replacing PHP sessions stored in files with sessions stored in a MySQL database, to prevent unwanted session losses during users’ normal online activities on the platform;
The addition of lockfile logic to cron jobs to prevent execution overlaps between different web instances.
Initially, VMEngine evaluated and tested deploying the portal on Azure Web Sites, leveraging the synchronized data space between web servers as storage for course files and all shared data, using its partner ClearDB for the MySQL database in this case. However, the following native features of the portal led VMEngine to opt for a purely IaaS solution on Azure:
Development using LAMP technology, while Azure PaaS (WebSites) uses the IIS web server;
The current size of the database (which places a financial burden on ClearDB);
The current size of the data set and its projected growth over time;
The necessary code changes in various places and the migration of existing data to Azure Blob Storage;
The logic behind cron jobs that can only be run by the system;
The tight deadlines.
VMEngine then created a virtual network with three subnets—one for the web servers, one for the database server, and one for the NFS server—and configured the ACLs (a recent feature on Azure VMs for isolation and security) to block external access to the endpoints.
VMEngine then defined a LoadBalancingSet for the WebServers, which automatically update themselves from the Git repository using private read keys, hooks, and other logic—just as they would have done with the WebSites solution.
The VMEngine team proposed migrating all data files to Azure Blob Storage to eliminate a potential point of failure and reduce the use of VMs, in favor of a cloud storage system that is much more reliable and scalable in terms of data storage capacity and concurrent connections. This choice would improve the solution’s performance, as it would relieve the web servers of the burden of distributing course files via HTTP.
Before going live, VMEngine ran load tests to measure performance using sessions recorded on JMeter, which were multiplied to simulate a large number of simultaneous connections. Services such as Apache were optimized through tuning and modules such as mod_pagespeed and mod_mem_cache.
Benefits
The solution proposed and implemented for the client ensures cost-effectiveness, flexibility, security, reliability, performance, and scalability. It offers the classic benefits of cloud computing and the robustness of a cloud provider built by Microsoft.
Automatic deployment of software from a version-controlled repository such as Git also makes new software deployments simpler and faster.