APIfication using API First
Success story implementing the API First methodology to achieve objectives
Introduction
Development of product architecture for the energy sector to digitally transform part of its processes in the area of bid generation. The design and development was carried out by Waimatech, and CloudAPPi was responsible for designing the cloud architecture and the architecture of the front-ends and microservices. We needed an elastic, secure, low-maintenance architecture that could handle hundreds of thousands of requests per hour. The project was a complete success and enabled the company to generate and process significantly more offers in the solar sector.
Project
Initial state of the problem
Current systems did not allow them to scale.
Project objective
The challenge was to design a scalable, secure, powerful and low-maintenance architecture.
AWS Architecture
The entire architecture was designed on Amazon Web Services (AWS) to make it as scalable as possible. To reduce maintenance, we chose Amazon ECS as our container system, which allows us to scale with low-maintenance containers.
As always, we deployed everything in a private section and only left the minimum in the public section, where we used S3 as a static bucket. Cognito, Amazon’s IDP, was used for identity management.
Finally, to ensure security, we used AWS Firewall Manager, which allows us to have a dedicated firewall for the product.
The CI/CD system used was Jenkins, which was used under the continuous integration paradigm.
The entire architecture, both for the front-end (Vue) and the microservices (Spring Boot), was designed by our architecture teams. Microservices architecture is a key approach that divides an application into a set of small, autonomous, specialised services, facilitating maintenance, evolution, and independent scalability of each component. Together with the API First methodology, which ensures the consistency and alignment of APIs with business requirements, these approaches enable smooth and consistent interaction between different modules and systems.
Conceptual diagram of the architecture
Modules developed
As part of CloudAPPi’s API First approach to API development, the following modules were developed to achieve the established objectives:
Módulo de cálculo
Módulo de simulaciones
Calculation module
Simulation module
Módulo de ofertas
Módulo de documentos
Offers module
Document module
Want to know more?
Results obtained
The final result of the project was the development of a series of decoupled APIs, each corresponding to a specific module. These APIs are highly integrable and can be consumed from various entry points, providing flexibility and scalability to the solution. The new infrastructure allows for better management of simulations and offers, optimising the generation process and ensuring greater accuracy and speed in responding to customers.
In addition, the adoption of an agile methodology and the use of modern technologies have significantly improved the development cycle, allowing the team to respond more effectively to changes in requirements and market demands. Integration with AWS has ensured the scalability and security of the solution, while the microservices architecture has facilitated the maintenance and future evolution of the system.
In summary, the project not only solved the initial problems, but also laid the foundation for continuous and adaptable development.
Scope of application
From the project described, several highly reusable patterns and methodologies can be abstracted for use in other projects, which not only solve specific problems but also establish a solid foundation for the development of scalable, maintainable, and adaptable solutions.
Microservices architecture is a key approach that divides an application into a set of small, autonomous, specialised services, facilitating maintenance, evolution, and independent scalability of each component. Together with the API First methodology, which ensures the consistency and alignment of APIs with business requirements, these approaches enable smooth and consistent interaction between different modules and systems.
Infrastructure as code (IaC) is another fundamental pattern that automates infrastructure management and provisioning, ensuring consistency, minimising human error and enabling automated scaling. In this context, cloud deployment using services such as AWS provides scalability, security, and flexibility, allowing businesses to adapt quickly to changing demands. In addition, continuous integration and deployment (CI/CD), implemented through automated pipelines, improves the speed and quality of software delivery, reducing errors and facilitating the adoption of changes.
Containerisation with Docker ensures the portability and consistency of applications across different environments.
All these elements, combined with an agile methodology that promotes adaptability, collaboration and continuous improvement, form a set of practices and tools that can be applied in a wide variety of projects to create modern, flexible and future-proof systems.