New Amazon Web Services infrastructure project for Nopio

9 March 2020

New infrastructure for Nopio

New infrastructure in Amazon Web Services for Nopio has proven to be the best solution to ensure proper availability of their client's applications and solving problems with releasing subsequent versions of the said application.

Introduction

Nopio is a Krakow-based software development company with over 8 years of experience in creating websites and web applications for companies and start-ups around the world. Apart from producing high quality code, they are also proactive consultants. Nopio approached Hostersi to assist on a project for their Customer - Underwear Expert - the world's largest and most respected subscription based retailer offering a selected assortment of men's underwear, for whom they developed the programming part of the online service. Hostersi's task was to design and organize the infrastructure in Amazon Web Services.

Problem

The client's existing AWS cloud infrastructure contained components that became inadequate to its growing needs and scale of operation. These shortcomings could lead to temporary application availability issues for end users and cause problems releasing subsequent versions of the application. The CI/CD pipeline was based on AWS Beanstalk (Automatic Application Deployment Service) and had to be replaced with an autoscaling service. Problems related to the release of subsequent versions of the application were solved by implementing AWS CodeBuild, AWS CodePipline and AWS CodeDeploy services.

Solution

In the first stage of the project, we analyzed the existing architecture. Based on the outcome it was decided that the best solution would be to create and implement a highly scalable and reliable infrastructure based on Amazon Web Services. To ensure an adequate level of reliability, Hostersi also designed the solution created in Amazon Web Services, to allow maintaining high availability of resources (HA), easy scalability and a high level of security. As part of the work, the deployment process and implementation of subsequent application versions were also improved.

AWS services:

RDS - the infrastructure uses MySQL database engine

EC2 - the infrastructure core consists of WEB instances serving the application

QuickSight - additional BI service

ElastiCache - the infrastructure uses Redis as a job queue system for workers and storage for sessions

ElasticSearch - standalone database used to store large amounts of data

Load Balancer - routes the traffic to the auto scaling application group

S3 - used to store static files

CodeBuild - a tool that creates the application package and installs dependencies to reduce workloads on CodeDeploy and deployment time

CodeDeploy - managed through Terraform, creates one application for each environment and several deployment groups depending on the number of stacks

CodePipeline – used as data ingestion point, links build and deployment pipelines

CloudWatch - within Terraform, CloudWatch alerts are created, integrated with Nagios and used to monitor key metrics

ASG - Auto Scaling Group created as IaC (Infrastructure as Code) using Ansible / Packer / Terraform

Additional services:

Jenkins - used for running tasks directly in the worker layer of the environment

Packer - prepares the docker image used for building the application

Cloudflare - infrastructure CDN layer

MongoDB - the client uses the NoSQL MongoDB database

 

Results

The client gained flexibility - both in scaling production servers and in the areas of application and new solution testing. The solution enabled quick and convenient scaling on a number of levels - from launching new virtual servers, changing parameters, adjusting the configuration of AWS services, current load to capability for geographical scaling. Thanks to the implemented deployment-centric tools, the process of publishing a new version of the application is faster and more secure.

 

ANY QUESTIONS? CONTACT US

Read also: