<Назад
Основные типы архитектуры приложений

В этой публикации разберемся с тем, какие бывают архитектуры приложений.


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


Рассмотрим основные архитектуры приложений по типу компонентов и связей. Их легче всего интерпретировать.


1. Архитектура монолитных приложений — приложение все в одном.


Пример: веб-приложение, которое включает в себя логику взаимодействие с БД, бизнес-логику, интерфейс админа и интерфейс пользователя.


2. Архитектура модульных приложений — компоненты приложения разделены на отдельные модули, которые могут функционировать как отдельные приложения.


Пример: возьмем то же самое веб-приложение. Если каждый из 4-х компонентов выполнить в виде отдельного приложения, то у нас получится модульная архитектура.


3. Архитектура микросервисных приложений — компоненты приложения разделены на микросервисы, каждый из которых состоит из небольшого набора компонентов и связей, поддерживаемых отдельно.


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


4. Архитектура кластерных приложений — компоненты и связи распределены по кластеру компьютеров, которые объединены в сеть для обеспечения наилучшей производительности.


Пример: к вашему приложению ежеминутно отправляется большое количество запросов. Вы хотите снизить нагрузку на сервер базы данных. Для этого запускаете БД на нескольких серверах и с помощью балансировки распределяете трафик между ними.


На сам деле, я не зря выбрал такую последовательность архитектур.


Представьте, что вы запустили маленький стартап с небольшим приложением. Вы его разработали в монолитной архитектуре.


После нескольких месяцев пилотирования, у вас начались активные продажи, активный рост. Появилась потребность в расширении функционала. Монолитная архитектура не подходит. Переходим к модульной или микросервисной архитектуре.


Вот уже стартап превратился в серьезное предприятия. Количество активных пользователей в минуту перевалило за сотни тысяч. Пора переходить на кластерную архитектуру.


Заключение


Первоначальный выбор архитектуры — это очень важный этап проектирования, который прямо влияет на различные факторы. Например на то, как поддерживать продукт после запуска. Я рекомендую уже на этапе выбора архитектуры просить развернутое обоснование, почему разработчик выбрал ту или иную архитектуру.

Хэштеги:
#процессразработки
Поделиться:

Самое свежее

Состав команды разработки

В этой статье мы рассмотрим состав команды разработки ИТ решения

#процессразработки

Простыми словами о графах

В этой статье мы начнем знакомство с графами, познакомимся с одним из алгоритмов для работы с графами и реализуем граф на языке программирования Rust.

#графы
#алгоритмы
#rust

В чем отличие аутсорсинга разработки от аутстаффинга ИТ-сотрудника для разработки?

В этой статье разберемся, что такое аутсорс- и аутстафф-разработка.

#процессразработки

UI/UX дизайн: Процесс создания

В этой статье поговорим об основных шагах в процессе создания UI/UX дизайна.

#процессразработки

UI/UX дизайн: Введение

В этой статье мы начинаем знакомиться с UI/UX дизайном. Это важнейший этап в разработке любого визуального интерфейса приложений.

#процессразработки

Agile, Шесть сигм и Отсутствие принципа

В прошлой статье мы начали погружение в процесс разработки. Первый этап этого процесса — планирование. На этом этапе проектный менеджер вместе с другими участниками команды формирует пул задач в соответсвии с какой-то методологией ведения проектов.

#процессразработки

Знакомьтесь, Пентест

Начинаем рассматривать один из основных методов оценки безопасности компьютерных систем и сетей на предмет потенциальных уязвимостей - тестирование на проникновение

#пентест

Сокращаем срок реализации MVP

Разберемся со сроками реализации MVP.

#процессразработки

Выбираем язык программирования

В этой статье мы поговорим о выборе языка программирования для изучения

#хочукодить

Тестирование концепции MVP

Разбираемся с тем, как не потратить бюджеты на разработку MVP впустую

#процессразработки

Проектирование архитектуры приложений: Введение

В этой статье поговорим о процессе создания архитектуры ИТ-решения

#процессразработки

Техническое задание: Структура

В этой публикации мы рассмотрим универсальную структуру ТЗ

#процессразработки

Неверная оценка стоимости услуг ИТ подрядчика

Сегодня мы поговорим о неверной оценке стоимости разработки ИТ решений. Эта боль - одна из основных для предприятий и стартапов, включая самих ИТ подрядчиков.

#консалтинг

Введение в паттерны проектирования в разработке программного обеспечения

В этой статье мы начнем погружаться в мир оптимизации архитектуры приложений с помощью шаблонов проектирования

#шаблоныпроектирования

Выбираем направление разработки для обучения программированию

В этой статье вы узнаете какие бывают направления разработки, чем они отличаются и в каком больше платят.

#хочукодить

Уровни модели OSI

В этой статье мы более подробно рассмотрим каждый из уровней модели OSI

#сети
#osi

10 способов использования Rust Cargo

В этой небольшой статье я собрал 10 способов использования системы сборки и менеджера пакетов языка программирования Rust

#rust
#cargo

Документирование кода в языке программирования Rust

В этой статье рассмотрим то, как происходит документирование в Rust и рассмотрим очень полезную возможность - написание тестов через документирование.

#rust

Знакомство с моделью OSI

В этой статье начинаем рассматривать фундаментальную модель сетевого взаимодействия - OSI

#сети

CSS анимация пульсации

Простой пример того, как реализовать анимацию пульсации, используя HTML и CSS

#css

Для чего нужна ER-диаграмма в процессе разработки?

Обсудим в общих чертах, что такое ER-диаграмма и для чего она нужна.

#процессразработки

От концепции к MVP

В этой статье вы узнаете, на примере, о том, как перейти от концепции к MVP без лишних усложнений в функционале продукта

#процессразработки

Для чего нужны UML диаграммы?

В этой статье мы поговорим о том, что такое UML диаграммы, какие они бывают и где используются

#процессразработки

Введение в написание технического задания

Техническое задание - это важная часть процесса разработки. В этой статье начнем погружение в данный вопрос.

#процессразработки

Введение в разработку

Сегодня большинство компаний сталкивается с ИТ-разработкой и часто не получают то, чего хотят. В этой статье мы начинаем погружение в процесс создания ИТ-решений.

#процессразработки

От идеи к концепции

В этой публикации мы поговорим о том, чем идея отличается от концепции. Сделаем это на примере конкретной цели

#процессразработки

Методологии управления ИТ-проектами: Waterfall, Scrum, Prince2

В этой статье рассмотрим основные методологии управления ИТ-проектами.

#процессразработки

Взвешенные графы

В этой статье мы познакомимся со взвешенными графами, алгоритмом Дейкстры и его реализацией на языке программирования Rust.

#алгоритмы
#графы
#rust

Процесс разработки: Планирование

В этой публикации мы начнем рассматривать процесс разработки. Начнем рассмотрение с процесса планирования.

#процессразработки