Microservices Architecture on AWS
Monolithic applications are built using different layers, a user interface layer, a business layer, and a persistence layer. A central idea of a microservices architecture is to split functionalities into vertical layers but by implementing a specific domain.
The user interface (UI) is the point of human-computer interaction and communication in a device. This can include display screens, keyboards, a mouse, and the appearance of a desktop. It is also the way through which a user interacts with an application or a website.
For delivering and storing the content of this website AWS provides the services.
- Amazon Cloudfront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds, all within a developer-friendly environment.
- Amazon S3 is an object storage service that offers industry-leading scalability, data availability, security, and performance.
AWS has various integrated building blocks that support the development of microservices.
- AWS Lambda lets you run code without provisioning or managing servers. You pay only for the compute time you consume. With Lambda, you can run code for virtually any type of application or backend service – all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app.
- AWS Docker containers lets you run your applications on serverless (Fargate) or on servers EC2 instances managed by AWS. With container service, we can focus on building and managing applications – backend /web applications as per business requirement. You can upload your code in AWS containers and AWS will launch them . AWS contains will provide agility, flexible scaling, Resilience, ECS launches your containers in high level of isolation using AWS VPC, IAM , that allows you to build highly secure applications.
The datastore is used to persist data needed by the microservices. Popular stores for session data are in-memory caches such as Memcached or Redis. Putting a cache between application servers and a database is a common mechanism for reducing the read load on the database, which, in turn, may allow resources to be used to support more writes. Caches also can improve latency.For larger data AWS provides relational and NoSQL databases. AWS offer object store S3 which is very popular object store, this can be used to host static websites.
- Amazon Aurora is a MySQL and PostgreSQL-compatible relational database built for the cloud, that combines the performance and availability of traditional enterprise databases with the simplicity and cost-effectiveness of open source databases.
- Amazon DynamoDB to create a database table that can store and retrieve any amount of data and serve any level of request traffic.
This is the complete Microservices Architecture on AWS and its different layers and the amazon services used on those layers.