Design Patterns in the Cloud – Availability


Design Patterns in the Cloud Menu

Design Patterns in the Cloud – Availability
(Spanish Version)

Availability is related to uptime, so cloud applications must be designed to provide the highest possible availability.
SLA agreements are typically in place with cloud providers.
In order to verify availability, it’s necessary to use this patters in cloud design:

Status/Health monitoring of access/entry points pattern (Monitoreo de Estado/Salud de los puntos de acceso/entrada)

In this case, it’s necessary to implement external tools to the applications that control availability and send alerts or allow response to availability. Usually these tools consult entry points of the application and alert a status result or perform an analysis according to the result to verify the actual status.
If we don’t use external tools we could program services that for example connect to the database or try to access a service and with those results record what has happened in addition to sending alerts to subscribers.

Load balancing with queues pattern (Balanceo de carga con colas de trabajo)

In this case it’s necessary to balance the load of tasks of the applications to avoid bottlenecks or interruptions/saturation of the processes.
Usually a process queue is implemented where the application tasks are loaded and taken from the queue to be executed. This allows to smooth the processing in the periods of time, avoiding bottlenecks and the fall of processes or interruption of services by overload.
For example, if we have a service that attends to database queries and it’s consulted by an excessive amount of clients, we could start receiving timeouts, since the load and processing time of the first ones starts to saturate the service. In this way, by implementing a process queue, we can level the load of the processes and respond to each one in a sequential manner.
It’s worth mentioning that different process queue patterns and guides can be used to avoid problems or improve the application. This would imply, for example, asynchronous message patterns, resource competition patterns, patterns that avoid queue bottlenecks, messaging service patterns, etc.
For this pattern also, if we don’t use external tools, we could develop applications or queuing services that manage the tasks according to the needs of the application.

Strangulation pattern (Estrangulamiento)

This pattern is used to prevent resource consumption from generating bottlenecks and allow the application to continue to process properly even when all resources are in use.
For example, it may happen that at a certain moment in time all users access a particular service and it triggers the resource consumption to the maximum allowed. In that case, to avoid this, access limits per user are configured, where when the limit is reached the communication is rejected and the user is notified that the service has passed the limit or is put on hold until the load is released.
With this we avoid absolute concurrence and users who connect first or before the limit continue to have a good performance, without usage problems.
For this pattern also, if we don’t use external tools, we could develop applications or services or configurations that allow the control of users who access the process. We could use solutions like these or also priority queues.

Design Patterns in the Cloud Menu

About the author:

Matías Creimerman

Matías Creimerman
I’m a specialist in design, development and management of software solutions with almost 20 years of experience. Microsoft Certificated Professional (MCP). Expert in dot net and Microsoft technologies. Experience and skills in designing solutions in a wide range of commercial, industrial and production areas. Design of architectures, software applications and processes. Skills in leadership and team management. Tech trainer. Technology researcher. Self-taught and dedicated to continuous learning. Skills in estimation, quotation, projects proposals and solutions design. Entrepreneurial spirit. Strong Tech profile but also customer oriented. I perform roles as fullstack dev, tech consultant, technical referent, development leader, team leader, architect, cross leader, tech manager, tech director, trainer, ramp-up & follow-up teams, software factory manager, DevOps and release manager. Regular chess player and musician.

Professional Website

In

Blogger

Github

About Me

Portfolio

Wordpress - Arquitectura y desarrollo de software

Wordpress - Personal Blog

Microsoft - Youracclaim Badges

Microsoft - Tech Profile

Microsoft - ASP.NET Forum

tw
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License
Creative Commons License
This content is property of Matias Creimerman Any misuse of this material will be punishable
This work is licensed under a International Copyright Law protects «original works of authorship»
including photographs, videos, and blog posts posted on social media sites
The content has no rights to be shared without authorization or citation to the author.
This content cannot be sold be adapted or modified partially or totally.
All content shared outside this blog that doesn’t belong to the author must have citations to the author.

3 comentarios en “Design Patterns in the Cloud – Availability”

Deja un comentario