You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

1 Días
16 Hrs
47 Min
47 Seg

Arquitectura de microservicios

5/22
Resources

What are services and how did software architectures evolve?

The evolution of software architectures has been a journey full of significant changes and improvements. Services, essential for communication between applications, have gone through various models, from large monolithic applications to agile and efficient microservices. This journey is crucial to understand the adaptation of technologies to the growing demands for quality, speed and independence in development.

How did monolithic applications work?

In the early days of software development, applications were built under monolithic architectures. These solutions were co-dependent, and all elements, such as user interfaces (UI) and backend services (such as orders, products or returns), coexisted in a single space. Some characteristics of these architectures include:

  • High complexity: All code and functionality is in a single repository, complicating management and maintenance.
  • Catastrophic single failure: A failure in any service can cause the complete crash of the application.
  • Difficulty in maintenance: The large amount of code increases the cognitive load of the development team.

What is service-oriented architecture (SOA)?

Evolving from the monolithic approach, service-oriented architectures (SOA) emerged, introducing a more pronounced modularization concept. These architectures provided some separation between frontend (UI) and backend through a centralized "bus":

  • Bus centralization: A central space where services communicated with each other.
  • Functional divisions: Although there was some modularity, the divisions were still considerably large and complex.
  • High failure load: Despite splitting the functions, the central bus remains a critical failure point.

How did microservices emerge?

Continued advancement in software architectures led to microservices, which are a significant evolution of SOA. Microservices promote greater independence by breaking down functions into smaller, highly specialized modules:

  • Module independence: Each microservice operates independently, allowing one failure to not affect the operation of the others.
  • Agile deployment: The independence of the modules facilitates their deployment and maintenance, as they are smaller and more manageable.
  • Specialized segmentation: Specific modules for users, products, orders, etc., each with its own dedicated storage.

Why is gRPC essential in microservices communication?

With the advent of microservices, a new challenge arose: how to ensure efficient communication between these independent components? This is where gRPC presents itself as a central solution:

  • Speed in communication: gRPC is essential to minimize latency between service interactions. This ensures that processes run quickly, improving the user experience.
  • Efficient protocols: Provides communication protocols that are more lightweight and suitable for handling specific tasks.
  • Scalability: Facilitates the growth of distributed applications on larger infrastructure, without losing speed.

gRPC configures vital tools to optimize the functionality of modern architectures and ensure that microservices run as quickly and efficiently as needed. In the next exploration, we will delve deeper into how gRPC achieves this technological feat.

Contributions 4

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

Estilos Arquitectónicos


  • Monolítico
    Consiste en crear una aplicación autosuficiente que contenga absolutamente toda la funcionalidad necesaria para realizar la tarea para la cual fue diseñada.
  • Microservicios
    Consiste en crear pequeños componentes de software que solo hacen una tarea, la hace bien y son totalmente autosuficientes.
  • Service Oriented Arcitecture SOA
    Tecnología que utiliza un conjunto de protocolos y estándares para intercambiar datos entre aplicaciones, desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma.
  • Event Driven Architecture EDA
    Es una arquitectura asíncrona y distribuida, pensada para crear aplicaciones altamente escalables, que promueve la producción, detección, consumo reacción a eventos.
  • Representational State Transfer Rest
    Conjunto de restricciones arquitectónicas que enfatizan la escalabilidad, utilice HTTP para obtener datos o indicar la ejecución de operaciones sobre ellos.
    .

Protobuff:


Los Protocol Buffers, también conocidos como protobuf, son un formato binario que facilita el almacenamiento e intercambio de datos en aplicaciones​. Fue desarrollado por Google Inc. y publicado parcialmente bajo una licencia BSD de 3 cláusulas.
.

gRCP


Es un sistema de llamada a procedimiento remoto de código abierto desarrollado inicialmente en Google. Utiliza como transporte HTTP/2 y Protocol Buffers como lenguaje de descripción de interfaz.
.

Serialización


En ciencias de la computación, la serialización consiste en un proceso de codificación de un objeto en un medio de almacenamiento con el fin de transmitirlo a través de una conexión de red como una serie de bytes o en un formato humanamente más legible como XML o JSON.

ya hacía falta este curso con go

gRPC reduce las latencias de las interacciones entre microservicios.

  • Las aplicaciones era 100% monolíticas, lo que provocaba que 1 solo fallo derrumbara la aplicación.

  • Arquitectura orientada a servicios: aplicación particionada según sector/área, todas las partes conectadas a 1 solo servicio que centralizaba todo.

  • Microservicios: módulos de código con tareas bastantes especificas. Por lo general, contaban con su propio almacenamiento.

Que emocion es ver esto