Проект для поддержки бизнеса или производства - это не просто отдельное веб-, мобильное приложение или система документооборота на базе существующего продукта. Зачастую такие системы состоят из набора различных компонент и приложений, реализующих уникальную логику.
Это включает в себя веб приложения, мобильные приложения, API, бэкенд с базой данных и пр. Часто такие системы подразумевают высокую нагрузку и должны быть легко масштабируемыми. Соответственно, они должны иметь подходящую архитектуру и инфраструктуру.
Мы имеем большой опыт разработки подобных систем и выполняем полный спектр работ, в том числе проектирование подходящей архитектуры и инфраструктуры (on-premise, AWS/Azure, SberCloud/Yandex Cloud и др.)
В данной статье мы хотим рассказать про свой подход в проектировании систем.
В решении комплексных задач мы стараемся ответить на следующие вопросы: микросервисная или монолитная архитектура, кроссплатформенный фреймворк или нативная разработка (если решение включает мобильную часть), облачная инфраструктура или on-premise, какие DevOps подходы применять?
Очень многие задачи решаются в on-premise инфраструктуре, но есть пласт задач, для которых лучше подходят “облака”, например SberCloud или Yandex Cloud.
Под каждую задачу мы подбираем оптимальный стек технологий, соответствующий общей архитектуре и инфраструктуре решения.
Для сложных решений выбор подходящей архитектуры играет ключевую роль. Стоимость ошибки на этом этапе может оказаться достаточно высокой. Это касается как “недопроектирования”, так и “перепроектирования”, что сказывается на стоимости разработки и поддержки.
Мы создаем надёжные решения под нужды клиентов. Свяжитесь с нами, чтобы начать разработку вашего проекта сегодня!
Чтобы выбрать правильную программную архитектуру для проекта, мы должны учесть различные факторы, которые могут повлиять на успех проекта. Таким образом, при проектировании мы оцениваем множество факторов и исходя из них предлагаем архитектуру.
Как правило, эти факторы касаются двух параметров: размера и сложности проекта, а также требований к масштабируемости.
Поэтому на входе нам нужно ответить на следующие концептуальные вопросы:
Оценив параметры численно, мы понимаем, какая архитектура наиболее уместна. Это может быть как монолитная архитектура, так и микро-сервисная. Или эволюция от монолитного MVP к масштабируемости и микро-сервисам.
Наша цель - выбрать архитектуру максимально подходящую под конкретную задачу, бюджет и сроки и избежать ситуации “архитектура ради архитектуры”.
На основании выбранной архитектуры, мы подбираем наиболее подходящую инфраструктуру и исполнительную среду. Здесь немаловажную роль имеет тип системы - публичная или интранет; манипулирует ли система чувствительными данными или нет и т.д. В зависимости от этих параметров выбор инфраструктуры может варьироваться, например:
Здесь, как и в случае с архитектурой, мы также ищем “золотую середину” под конкретную задачу.