Project descriptionEverdapt is a web and mobile app developer from France, who wanted IT Svit to provision the AWS infrastructure for running their web app that uses the Neo4j database. The problem the customer encountered was the fact Neo4j does not have native scalability and redundancy features, so this functionality had to be implemented.
Project requirementsIT Svit teamhad to deliver the following list of tasks:
- Design the cloud architecture for deploying a web solution, using a specific database - Neo4j
- Ensure the system scalability and fault-tolerance
- Ensure the system security and redundancy
- Prepare configuration and deployment scripts and guidelines
Project resultsWe have accomplished all the tasks within time and under budget. IT Svit team has achieved the following results:
- We ensured the system scalability by using AWS CloudFront CDN for front-end scaling and AutoScaling groups for back-end cloud infrastructure components
- The system is protected with a bastion host, ensuring the security of access
- The application runs on several nodes located in various Amazon availability zones behind an Amazon Load Balancer to ensure optimal performance
- The system is modular, so even if one component fails, it does not impact the system performance and the faulty component is rebooted automatically
Talk to our expert!
We will be happy to answer your questionsfree consultation
The customer wanted us to analyze the existing system configuration, come up with recommendations on ensuring its stable performance and implement the whole structure. We explored the existing solution and understood the main limitation was the lack of built-in scalability and redundancy features for Neo4j, so this had to be provided externally.
The main challenges were the following:
- Ensuring the redundancy for Neo4j database
- The app itself was under development, so the final number of modules, their size or mode of interaction was unknown
The system had to be scalable, secure and easily configurable
Project implementation and challenges resolved
We knew that application consisted of the following components: Customer-facing UI, API, and a Neo4j database. To implement the required solution we’ve split the application deployment into three parts:
- Amazon S3 storage behind the Amazon CloudFront CDN for Frontend part.
- Several API instances in different Availability Zones behind the Amazon Application Load Balancer (ALB).
- An Amazon Elastic Compute Cloud (EC2) instance for Neo4j database engine with Amazon Elastic Block Store (EBS) volume attached for data persistence.
Both the UI and the API parts operate in private networks, protected by Amazon CDN and Amazon ALB. This way the origin instances where the application is running are not available directly from the Internet. A bastion host is used for management tasks.