Nexus is the UK’s largest outsourced key holding company that has been constantly growing.

In 2016 it has become apparent that Nexus has outgrown their current hosting infrastructure and a long term plan was needed. Empire Elements researched all the possible options, and then a decision was made to use Amazon Cloud Services (AWS) for future growth.

The migration

AWS just recently announced new datacenter region in London, confirming its commitment to UK businesses. The case for AWS was sound, with plentiful of features, rock solid reputation and relentless pace of innovation.

We planned Nexus migration project carefully and split it to several milestones. Continuously testing, deploying one feature at the time fully embracing DevOps principles and practices.

AWS Cloud Architecture

DevOps team at Empire Elements created cloud architecture blueprint, listing all AWS services that Nexus will need. Amazon Cloud Storage S3, Elastic Compute Cloud EC2, Elastic Load Balancers, CloudFront, Lambda Functions, Simple Email Service were the top services.

Moving away from a monolithic environment to micro-services was a bit of a challenge and required innovative thinking to separate storage from computing and other services.

Nexus AWS Cloud architecture

Having new production and development processes in place has helped us to test each feature, and decoupling services then became a straightforward task with a realistic set of milestones.

S3 Storage

First and perhaps most important was the storage. Nexus application had to be modified to allow for external storage, as the old version used local storage only which is not possible to use when autoscaling. AWS S3 storage offers virtually unlimited object storage that can scale to trillions of objects worldwide. The first problem addressed with fast, scalable and reliable storage. Nexus web application now encrypts the newly uploaded data from users by default, with separate lifespan policy with automatic archiving. The data is therefore never lost.

Auto Scaling

Another fundamental problem to address was horizontal scaling of the Nexus PHP application. During the predicted and unpredicted traffic peaks, this was becoming a severe problem on the old platform. After evaluating several options, we chose Docker and AWS Load Balancer with Autoscaling Group using AWS Elastic Compute Cloud.

Containers

Docker is a world’s leading software container platform and a relatively new technology. The idea is that using Docker we build the application, it's all dependencies and deliver it to any environment. Apart from controlling the application in detail, there is another inherited benefit. Production and Development pipelines are therefore both in-line, and Docker application can be tested in development as if it was a production. To put it simply, developing the web application further just got a lot easier.

Nexus Docker containers

Results

Amazon EC2 service has auto scaling set up. When the load hits a predefined threshold, a new unit is created and destroyed when not needed.

So far we have implemented just three things and validated the reasons to move to AWS beyond a doubt. Scaling application is something that would be out of the reach for most businesses just five years ago. Now with the power of Amazon Web Services Nexus web application can expand.

AWS allows for virtually infinite growth


And a lot of businesses are moving to AWS, the benefits are too attractive, features plentiful, pricing model affordable and it allows businesses to grow, rapidly!

Infrastructure is now in place for both web applications to horizontally scale on demand.
Docker is now an essential tool.

Amazon Web Services