Welcome to This Is My Architecture.
I am Stefano Sandrini from AWS.
Today, Nicola from Mikamai is with me.
-Hi, Nicola. -Hi, Stefano.
Would you give us some information about your company and what you do?
Yes. Mikamai is an AWS partner
that develops software with cutting-edge technology.
Mostly, we work with web and mobile applications
and we focus on performance, scalability
with particular attention to security.
Today you will show us a solution that you use
to realize projects for your clients.
Exactly. It is a boilerplate that we wrote
like a Ansible playbook
that follows a series of CloudFormation templates
dedicated to the creation of an applicative stack
suitable for most web applications existing today.
I would start showing the first layer,
the persistence offered through a database like RDS
a system of internal cache on ElasticCache
and a system of full-text search on Elasticsearch.
The application that works with these resources
is usually set in a ECS cluster.
So, about ECS, container
what kind of containerized applications do you have in execution?
We managed to generate a boilerplate flexible enough
to allow defined tasks suitable
for an application of microservices as well as for a monolithic one.
Normally, we already have a layer of web components
that work with the help of a load balancer
to provide web functions
and a series of asynchronous components that work on batch processing
image creation and so on.
So, web application and also delivery of static contents.
Exactly. That is why every solution from us
comes with a CloudFront distribution connected to a S3 bucket
in order to provide static assets.
Cloud Front offers its own protection from DDoS
and from the other kinds of attacks.
Sure. About the delivery of the application
I see that you use CodePipeline.
Yes, exactly. We do not provide just an applicative stack.
We also offer features like Continuous Integration
and Continuous Delivery through CodePipeline.
CloudFormation creates a pipeline connected to a repository
so that every push on the repository starts the pipeline
which follows a CodeBuild process
that generates the Docker image that will be deposited on ECR.
When the operation is finished, through CloudFrmation again,
the deploy is executed on ECS.
The deploy through CloudFormation allows us to provide functions
like Zero Downtime Deployment or the automatic rollback for errors.
This allows you to control also several settings.
-Test, production, development. -Exactly.
In order to offer a safe space
the boilerplate works on a dedicated account.
In this way, all the resources are isolated
but its replicability allows us to run it
on those specific accounts that will create those specific spaces
the client wants.
The result is a well-architected application.
It is probably the strong point of your solution.
Yes, indeed. The application can follow the guidelines of AWS
it can provide the best practice of security thanks to the fact that
this boilerplate has a high replicability
hence it is stable, mature
tested and refined over time.
Nicola, Thank you for sharing with us the details of your solution.
Thank you.
Thank you for following us on This Is My Architecture.