Комплексные и облачные решения от Технологики

Комплексные и облачные решения

Помогаем вашим сервисам быть доступными 24/7, даже с миллионной аудиторией.

Оставить заявку

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

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

Мы имеем большой опыт разработки подобных систем и выполняем полный спектр работ, в том числе проектирование подходящей архитектуры и инфраструктуры (on-premise, облако Amazon/Azure/Google и пр.)

14
лет разработки наш опыт комплексных решений
50+
реализованных проектов
10 000+
объем самого сложного проекта в часах
200 000
активных пользователей в системе

Наши технологии

В решении комплексных задач мы стараемся ответить на следующие вопросы: микросервисная или монолитная архитектура, кроссплатформенный фреймворк или нативная разработка (если решение включает мобильную часть), облачная инфраструктура или on-premise, какие DevOps подходы применять?

Очень многие задачи решаются в on-premise инфраструктуре, но есть пласт задач, для которых лучше подходят “облака”, например Amazon AWS или Microsoft Azure.

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

Microsoft .Net
Microsoft .Net Core
Node Js
Angular
React JS
Microsoft SQL Server
Mongo DB
Amazon Dynamo DB
Azure SQL
Amazon AWS
Microsoft Azure
Docker
Kubernettes
Redis
Rabbit MQ
Elk stack

Выбор архитектуры

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

 

1. Оценка параметров проекта 

Оценка параметров проекта

При проектировании мы оцениваем множество факторов и исходя из них предлагаем архитектуру.

Как правило, на входе нам нужно ответить на некоторые концептуальные вопросы, например:

  1. Публичный сервис или нет?
  2. Количество пользователей
  3. Доступность системы
  4. Каков бюджет на разработку и инфраструктуру?
  5. Каков бюджет на поддержку?
 

2. Выбор архитектуры

Оценив параметры численно, мы понимаем, какая архитектура наиболее уместна. Это может быть как монолитная архитектура, так и микро-сервисная. Или эволюция от монолитного MVP к масштабируемости и микро-сервисам. Наша цель - выбрать архитектуру максимально подходящую под конкретную задачу, бюджет и сроки и избежать ситуации “архитектура ради архитектуры”


Микросервисная или монолитная архитектура

Инфраструктура и DevOps

На основании выбранной архитектуры, мы подбираем наиболее подходящую инфраструктуру и исполнительную среду. Здесь немаловажную роль имеет тип системы - публичная или интранет; манипулирует ли система чувствительными данными или нет и т.д. В зависимости от этих параметров выбор инфраструктуры может варьироваться, например:

  1. Публичное высоконагруженное - микросервисы в инфраструктуре Amazon (AWS) или Microsoft (Azure).
  2. Интранет критичное высоконагруженное - микросервисы on-premise на базе Docker и Kubernettes.
  3. Интранет низконагруженное - монолит на выделенном сервере.
  4. И так далее.

Здесь, как и в случае с архитектурой, мы также ищем “золотую середину” под конкретную задачу.

 

облака или on-premise?

Опыт разработки

Высоконагруженные решения

  • Реализация микро-сервисных решений на инфраструктуре Amazon AWS, Microsoft Azure, Google на 200 000+ активных пользователей.
  • Реализация масштабируемых on-promise решений на базе Docker, Kubernettes, Redis, Rabbit MQ.
  • Реализация вычислений над большими объемами данных с помощью in-memory баз данных.
  • Развертывание как в облачной так и в on-premise инфраструктурах.
  • Обеспечение отказоустойчивости и настройка мониторинга системы (Amazon Cloud Watch, Application Insights, Prometheus)

Хранение и визуализация данных

  • Использование различных вариантов СУБД (MS SQL, MySQL, Postgres, Amazon Dynamo DB, Azure SQL, MongoDB и пр.)
  • Облачное хранение неструктурированных данных и файлов (Amazon S3, Azure BLOB, Google Cloud Storage)
  • Работа с большими объемами данных с использованием ELK стэка (ElasticSearch, LogStash, Kibana)
  • Визуализация данных с помощью инструментов ELK, Grafana, Crystal Reports, Microsoft Reporting Services и пр.

Маркетинговые инструменты

  • Интеграция инструментов аналитики (AppsFlyer, MixPanel, Google Analytics и пр.)
  • Реализация массовых рассылок (PUSH, Email, SMS)
  • Интеграция инструментов трэккинга и анализа сценариев использования приложения конечными пользователями. Выявление наиболее используемых функций, определение UX проблем и пр.
  • Интеграция с рекламными кампаниями Facebook и Google.

Интеграция с сервисами

  • Реализация чатов на базе Twillio. 
  • Интеграция с Shopify для систем электронной коммерции.
  • Интеграция с финанансовыми системами (Stripe, PayPal, QuickBooks, 1С).
  • Интеграция с соц. сетями (Facebook, Instagram, Twitter, Google, LinkedIn).
  • Интеграция с продуктами Microsoft Office, реализация плагинов.

Работа с документами

  • Разработка систем документооборота с широкими возможностями для настройки бизнес процессов.
  • Реализация систем хранения документов как в интранет так и в облаке.
  • Разбор и генерация документов Microsoft Office, PDF по шаблонам.
  • Интеграция с инструментами OCR для распознавания документов.
  • Работа с электронными подписями.

PUSH, Email, SMS

  • PUSH уведомления на iOS и Android.
  • SMS уведомления.
  • Массовая рассылка писем с возможностью персонализации писем (контента).
  • Интеграция с крупными почтовыми сервисами (Microsoft, Google, Amazon и пр.).

Наши разработки

Процесс работы

Мы выполняем весь комплекс работ по созданию продукта от предпроектного анализа до технического сопровождения. Наша команда укомплектована всеми необходимыми специалистами - это аналитики, UX/UI дизайнеры, разработчики, DevOps и QA инженеры.

Процесс разработки мы разделяем на следующие стадии:

Анализ требований

Первый шаг – анализ и исследование. Цель – получить согласованное видение проекта между вами и нами. На данном этапе мы исследуем ваши требования с точки зрения бизнес задачи и технической реализации. Мы изучаем предметную область, задаем вопросы о ваших идеях, целевой аудитории, количестве пользователей и других параметрах.

Результаты этапа:

  1. Документ, отражающий наше совместное видение проекта.
  2. Предварительные сроки и стоимость реализации.
ТЗ и UX дизайн

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

Результаты этапа:

  1. Техническое Задание на проект.
  2. Уточненные сроки и стоимость реализации.
UI дизайн

Далее мы вдыхаем жизнь в разработанные прототипы пользовательского интерфейса – разрабатываем финальный UI дизайн приложений. Если система подразумевает наличие мобильных приложений, то UI дизайн разрабатывается с учетом гайдлайнов для конкретной платформы (iOS/Android).

Результат этапа - готовый к реализации UI дизайн.

Разработка

Следующий и самый трудоемкий этап - разработка. Разработка разбита на итерации по 2 – 4 недели. В рамках каждой итерации мы выполняем все необходимые работы по реализации запланированных сценариев, включая тестирование, стабилизацию и демонстрацию рабочего результата вам. После каждой демонстрации вы сможете внести корректировки для следующей итерации. Таким образом, мы минимизируем риски «уйти не туда».

Результаты этапа:

  1. После окончания всех итераций - готовое к приемочному тестированию решение.
  2. Пользовательская документация (если необходимо).
Приемочное тестирование

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

Результат этапа - готовое к внедрению решение.

Запуск

Далее мы выпускаем/внедряем решение, а именно:

  1. Разворачиваем и настраиваем серверные компоненты.
  2. Разворачиваем веб приложения.
  3. Публикуем мобильные приложения в Apple App Store и Google Play (если такие были реализованы в рамках проекта).

Результат этапа - готовое к использованию конечными пользователями решение.

Поддержка

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

Результат этапа - успешно работающий продукт.

Хотите обсудить разработку приложения?

Сделаем оценку вашей идеи мобильного приложения, а также поможем в разработке концепции мобильного приложения. Просто напишите нам!