  Serverless technologies, also known as FaaS (Function as a Service), are
promoted as solutions that provide dynamic scalability, speed of development,
cost-per-consumption model, and the ability to focus on the code while taking
attention away from the infrastructure that is managed by the vendor. A
microservices architecture is defined by the interaction and management of the
application state by several independent services, each with a well-defined
domain. When implementing software architectures based on microservices, there
are several decisions to take about the technologies and the possibility of
adopting Serverless. In this study, we implement 9 prototypes of the same
microservice application using different technologies. Some architectural
decisions and their impact on the performance and cost of the result obtained
are analysed. We use Amazon Web Services and start with an application that
uses a more traditional deployment environment (Kubernetes) and migration to a
serverless architecture is performed by combining and analysing the impact
(both cost and performance) of the use of different technologies such as AWS
ECS Fargate, AWS Lambda, DynamoDB or DocumentDB.
