Skip to content
This repository has been archived by the owner on Dec 26, 2024. It is now read-only.

Add guides #610

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions data/posts/en/2023-06-22-serverless.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: What are Serverless?
description: Understanding the Concept and Benefits
author: Алексей Селиверстов
---

In today's world of technology, where digital transformation and cloud computing are becoming increasingly prevalent, the serverless paradigm stands out as one of the most innovative and sought-after solutions. Serverless offers a new approach to application development and execution, freeing developers from the burden of infrastructure management and allowing them to focus on creating functionality. In this article, we will explore what serverless is, its key principles and advantages, as well as its applications and challenges that developers encounter when using this paradigm.


## General

Serverless is a model of application development where developers create functions that run on a cloud platform, while the infrastructure and resource management are handled entirely by the cloud provider. The key principles of serverless include:

* Infrastructure Abstraction: Developers can create and deploy functions without the need to manage servers, network infrastructure, or scalability. The cloud service provider automatically handles all aspects of the infrastructure, including resource allocation, scaling, and ensuring high availability.

* Event-Driven Architecture: Serverless functions are triggered in response to events such as HTTP requests, file uploads, or database changes. This enables the creation of reactive and scalable applications that respond to user actions or system changes.

* Pay-Per-Use Pricing: A distinctive feature of serverless is the payment model based on actual resource usage and function execution time. This helps reduce infrastructure costs as developers only pay for the code that is actually executed.


## Features

Serverless offers several advantages that make it an attractive choice for developers and organizations:

* Simplified Development: Serverless allows developers to focus on creating application functionality without being distracted by infrastructure setup and management. This accelerates the development process and improves team productivity.

* Scalability: Cloud providers automatically scale serverless functions based on the number of requests or workload volume. This enables flexible scalability of applications according to changing needs.

* Cost Efficiency: Paying only for actual resource usage and function execution time helps reduce infrastructure costs. Serverless can be particularly cost-effective for small and medium-sized projects, where server expenses and maintenance can be significant.


## Applications

Serverless is applied in various areas of application development, including:

* Web Development: Serverless enables the creation of web applications that respond to HTTP requests and process them using functions. It can be used to build scalable websites, APIs, and multifunctional applications.

* Event Processing: Serverless functions are well-suited for event processing, such as handling database changes, file uploads, or sending notifications. This can be used to create data processing systems, background tasks, and message queue processing.

* Integration and Service Composition: Serverless can be used for integrating various services and applications, enabling the creation of more flexible and extensible systems. This can include integration with external APIs, managing data flows, and automating business processes.


## Challenges and Limitations

While serverless offers numerous advantages, it also has its challenges and limitations:

* Dependency on Cloud Providers: When using serverless, developers become dependent on a specific cloud service provider that offers this service. This may limit application portability and flexibility.

* Function Execution Time Limitations: Serverless functions typically have a time limit for execution, which can restrict the execution of certain tasks or processes.

* Debugging Complexity: Debugging serverless functions can be more challenging compared to traditional servers, especially when dealing with distributed and event-driven systems.


# Conclusion

Serverless represents an innovative paradigm for application development and cloud computing, that frees developers from infrastructure management and allows them to focus on creating functionality. It provides advantages in terms of simplified development, scalability, and cost efficiency. However, serverless also comes with challenges and limitations that developers need to consider when choosing this paradigm for their projects. With serverless, developers can build modern and scalable applications, optimize infrastructure costs, and accelerate the development of new functionalities.
39 changes: 39 additions & 0 deletions data/posts/en/2023-06-22-websocket.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: What are Websockets?
description: Websockets are a communication technology that enables a persistent, bidirectional connection between a web browser and a server.
author: Алексей Селиверстов
---

The traditional approach to web development, based on the request-response model, has its limitations, especially when it comes to updating data on a web page without reloading. Technologies such as AJAX and Long Polling were previously used to address this issue, but they have their drawbacks, including increased request overhead or data update latency.

## General

Websockets were developed as a new technology to overcome these limitations and provide continuous interaction between the client and server. Websockets are based on the HTTP protocol but have a more efficient data transmission mechanism.

The main idea behind websockets is to establish a persistent connection between the client and server that remains open throughout the session. This allows the server to send data to the client in real time without waiting for a request from the client. Additionally, the client can send data to the server at any time without the need for reinitializing the connection.

## Features

One of the notable features of websockets is their ease of use. To establish a connection, the client needs to send a special HTTP request known as a handshake, which goes through regular HTTP mechanisms. Once the connection is established, data can be transmitted between the client and server in the form of packets without the overhead of HTTP headers.

Another advantage of websockets is their support for various protocols and programming libraries in different languages, making them flexible and accessible to developers. Many web applications and games widely utilize websockets for real-time data updates, chat functionality, video streaming, and other scenarios requiring instant data transmission.


## Types

Websockets support different protocols and provide various capabilities for interaction between the client and server. Here are some of the common types of websockets:

* Standard Websockets: This is the most common type of websockets based on the WebSocket API standard. It is supported by most modern browsers and provides bidirectional communication between the client and server.

* Socket.IO: Socket.IO is a library that provides an abstraction over standard websockets. It offers a higher level of abstraction and additional features such as automatic reconnection, support for rooms and namespaces, making it easier to develop real-time multiplayer applications.

* SignalR: SignalR is a library designed for the .NET platform that provides support for websockets and other technologies to enable bidirectional communication between the client and server. It allows developers to create scalable and reactive real-time web applications.

* SockJS: SockJS is a JavaScript library that provides an abstraction over websockets and other transport protocols. It allows the use of websockets where available and automatically falls back to alternative protocols like Long Polling or Server-Sent Events for compatibility with older browsers.

These are just some of the types of websockets available today. Depending on specific project requirements, developers can choose the most suitable library or implementation to ensure efficient real-time interaction between the client and server.


## Conclusion

In conclusion, websockets are a powerful technology that allows web applications to establish a persistent connection between the client and server, facilitating real-time data exchange. This technology has numerous applications and continues to evolve, opening up new possibilities for developers in the field of web development.
56 changes: 56 additions & 0 deletions data/posts/ru/2023-06-22-serverless.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: Что такое serverless?
description: Инновационная парадигма разработки и облачных вычислений
author: Алексей Селиверстов
---

В современном мире технологий, где цифровая трансформация и облачные вычисления становятся все более распространенными, парадигма serverless (безсерверная архитектура) выделяется как одно из наиболее инновационных и востребованных решений. Serverless предлагает новый подход к разработке и выполнению приложений, освобождая разработчиков от заботы о инфраструктуре и позволяя им сосредоточиться на создании функциональности. В этой статье мы рассмотрим, что такое serverless, его основные принципы и преимущества, а также области применения и вызовы, с которыми сталкиваются разработчики при использовании этой парадигмы.


## Основное

Serverless - это модель разработки приложений, где разработчик создает функции, которые выполняются на облачной платформе, а сама инфраструктура и управление ресурсами полностью находятся в ответственности облачного провайдера. Основные принципы serverless включают:

* Абстракция инфраструктуры: Разработчики могут создавать и развертывать функции без необходимости управления серверами, сетевой инфраструктурой и масштабированием. Провайдер облачных услуг автоматически обрабатывает все аспекты инфраструктуры, включая выделение ресурсов, масштабирование и обеспечение высокой доступности.

* Событийно-ориентированная архитектура: Serverless функции запускаются в ответ на события, такие как HTTP-запросы, загрузка файлов или изменение в базе данных. Это позволяет создавать реактивные и масштабируемые приложения, которые откликаются на действия пользователя или изменения в системе.

* Платежи по факту использования: Особенностью serverless является оплата только за фактически использованные ресурсы и время работы функций. Это позволяет снизить затраты на инфраструктуру, поскольку разработчики платят только за реально выполняемый код.


## Особенности

Serverless имеет несколько преимуществ, которые делают его привлекательным выбором для разработчиков и организаций:

* Упрощенная разработка: Serverless позволяет разработчикам сосредоточиться на создании функциональности приложений, не отвлекаясь на настройку и управление инфраструктурой. Это ускоряет процесс разработки и улучшает производительность команды.

* Масштабируемость: Облачные провайдеры автоматически масштабируют функции в зависимости от количества запросов или объема работы. Это позволяет эластично масштабировать приложения в соответствии с изменяющимися потребностями.

* Экономическая эффективность: Оплата только за фактическое использование ресурсов и времени выполнения функций позволяет снизить затраты на инфраструктуру. Serverless может быть особенно выгодным для небольших и средних проектов, где затраты на серверы и их обслуживание могут быть значительными.


## Области применения

Serverless применяется в различных областях разработки приложений, включая:

* Веб-разработка: Serverless позволяет создавать веб-приложения, которые реагируют на HTTP-запросы и обрабатывают их с помощью функций. Это может быть использовано для создания масштабируемых веб-сайтов, API и многофункциональных приложений.

* Обработка событий: Serverless функции идеально подходят для обработки различных событий, таких как изменения в базе данных, загрузка файлов или отправка уведомлений. Это может быть использовано для создания систем обработки данных, бэкграундных задач и обработки очередей сообщений.

* Интеграция и связывание сервисов: Serverless можно использовать для интеграции различных сервисов и приложений, что позволяет создавать более гибкие и расширяемые системы. Это может включать интеграцию с внешними API, управление потоком данных и автоматизацию бизнес-процессов..


## Вызовы и ограничения

Хотя serverless предлагает множество преимуществ, он также имеет свои вызовы и ограничения:

* Зависимость от провайдера облачных услуг: При использовании serverless, разработчики становятся зависимыми от конкретного облачного провайдера, который предоставляет эту услугу. Это может ограничить переносимость и гибкость приложений.

* Ограничения времени выполнения функций: Serverless функции обычно имеют ограничение по времени выполнения, которое может ограничивать выполнение некоторых задач или процессов.

* Сложность отладки: Отладка serverless функций может быть сложнее, чем в случае с традиционными серверами, особенно при наличии распределенных и событийно-ориентированных систем.


## Заключение

Serverless представляет собой инновационную парадигму разработки и облачных вычислений, которая освобождает разработчиков от заботы о инфраструктуре и позволяет им сосредоточиться на создании функциональности. Он обеспечивает преимущества в упрощении разработки, масштабируемости и экономической эффективности. Однако, serverless также имеет вызовы и ограничения, которые разработчики должны учитывать при выборе этой парадигмы для своих проектов. С serverless, разработчики могут создавать современные и масштабируемые приложения, оптимизировать затраты на инфраструктуру и ускорить разработку новых функциональностей.
Loading