Diseño e Implementación de una Arquitectura Serverless para una Plataforma B2B Orientada al Comercio Electrónico
Design and Implementation of a Serverless Architecture for an E-Commerce Oriented B2B Platform
Autor
Herrera, Steel Milan
Garcia, Luis Alfonso
Galviz, Luis Fernando
Fecha
2020-05-31Resumen
El presente proyecto consiste en la implementación de una arquitectura serverless orientada a microservicios en una plataforma de tipo B2B (business-to-business) para su uso en el comercio electrónico o ecommerce, cuya principal finalidad es resolver la problemática que se presenta a nivel lógico y de hardware generada por la alta concurrencia de usuarios en un ecommerce, en los que la cantidad de usuarios realizando peticiones puede pasar de 100 a 20000 en un mismo segundo (Villamizar, Garcés, Castro, Verano, Salamanca, Casallas ,& Gi, 2015).
Se abordó esta problemática con el diseño y la implementación de una arquitectura serverless en una plataforma B2B con un enfoque hacia la escalabilidad, con un modelo de datos flexible el cual se ajuste a las reglas de fulfilment definidas por el comercio y del mismo modo, implementar una aplicación web que permita la realización de cambios sobre los distintos estados de los pedidos y ofrecer una correcta visualización de estos.
Para lo anterior, se plantearon todas las tareas necesarias para el desarrollo de la solución. Estas se separaron en 3 grandes grupos: Order, Inventory y Security. Una vez divididas, se procedió a realizar sprints de cada uno de estos grupos. Durante la realización de estos sprints se llevaron a cabo Scrum diarios donde se verifica el avance que hubo el día anterior, lo que generó un mejor control sobre el avance general del proyecto.
Se demostró la eficiencia de la arquitectura serverless para soportar una alta concurrencia de usuarios por medio de simulaciones de peticiones. Se realizaron 10, 50 y 100 peticiones simultáneas y se logró observar un tiempo de respuesta muy cercano en cada uno de los casos. En adición, se puede observar que gracias a que es una arquitectura autoescalable y orientada a microservicios, en casos de alta concurrencia sólo son escalados aquellos microservicios de mayor uso y, por ende, no se generan costos extra. Esto mejora significativamente el modelo de costos. The present project consists of the implementation of a serverless architecture oriented to microservices in a B2B (business-to-business) platform for its use in electronic commerce or ecommerce, whose main purpose is to solve the problems that are presented at a logical and hardware level generated by the high concurrence of users in an ecommerce, in which the number of users making requests can go from 100 to 20000 in the same second (Villamizar, Garcés, Castro, Verano, Salamanca, Casallas ,& Gi, 2015).
This problem was faced with the design and implementation of a serverless architecture in a B2B platform with a focus on scalability, with a flexible data model which adjusts to the fulfilment rules defined by the business and, in the same way, to implement a web application which allows changes to be made on the different states of the orders and offers a correct visualisation of these.
For this, all the necessary tasks for the development of the solution were raised. These were separated into 3 main groups: Order, Inventory and Security. Once divided, we proceeded to perform sprints of each of these groups. During the execution of these sprints, daily Scrum was carried out where the progress made the day before was verified, which generated a better control over the general progress of the project.
The efficiency of the serverless architecture to support a high concurrence of users was demonstrated by means of request simulations. 10, 50 and 100 simultaneous requests were made and a very close response time was observed in each case. In addition, it can be observed that thanks to the fact that it is a self-scalable architecture and oriented to microservices, in cases of high concurrence only those microservices of greater use are scaled and, therefore, no extra costs are generated. This significantly improves the cost model.