Используемые технологии в разработке

Мы стремимся использовать современные методологии и технологии в разработке ПО. Это позволяет добиваться лучших результатов и обеспечивает более высокую сопровождаемость проектов.

На бэкенде в большинстве проектов мы используем язык программирования Ruby и фреймворк Ruby on Rails, в качестве слоя хранения —  СУБД PostgreSQL, для поиска — ElasticSearch, а кеширование и очереди реализуем на базе Redis. Эта связка особенно хорошо зарекомендовала себя в разработке высоконагруженных ecommerce-проектов и в создании приложений со сложной бизнес-логикой.

Впрочем, решениями на базе Ruby мы не ограничиваемся, так как выбор технологий должен быть целесообразным и основываться на специфике решаемых задач. В проектах, связанных с машинным обучением и большими данными, мы чаще всего используем Python, так как возможности этого языка и его экосистема более подходящие для этого класса задач.  Для наиболее нагруженного функционала используем язык Go, так как он компилируемый и благодаря этому по производительности обгоняет интерпретируемые Ruby и Python.

Интерфейсы разрабатываем на базе HTML5, CSS3 и JavaScript, используя современные системы сборки и компонентную архитектуру. Как правило, мы делаем приложения в виде Single Page Application Фронтэнд обычно делается на связке React + MobX + MobX State Tree, а на бэкенд большую часть запросов обрабатывает в режиме API, хотя и реализует полноценный Server Side Render для соответствия SEO-требованиям и для ускорения отрисовки страниц при первой загрузке.

На серверах у нас операционные системы семейства Linux, в основном дистрибутивы CentOS. У нас собственные «железные» сервера и виртуализация, построенная на KVM, что позволяет эффективно использовать вычислительные ресурсы и спасает от типичных проблем VPS — «оверселлинга» и «шумных соседей». В качестве веб-сервера у нас используется NGINX, конфигурирование осуществляем через Ansible, а для мониторинга используется Zabbix. В качестве системы контроля версий используем Git, система управления репозиториями кода и платформа CI/CD — GitLab (self-hosted).

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

Мы используем технологии, которые хорошо зарекомендовали себя в «боевых» условиях.

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

Основные технологии

Обычно мы используем в проектах этот набор технологий:

Язык программирования Ruby
Фреймворк Ruby on Rails
PostgreSQL — объектно-реляционная СУБД
Поисковая система ElasticSearch
СУБД Redis
Язык программирования Python
Язык программирования Go
CentOS
Язык разметки HTML
CSS — каскадные таблицы стилей
Язык программирования JavaScript
Библиотека React
Библиотека MobX
Библиотека MobX State Tree
Платформа NodeJS
Система сборки WebPack
Yarn
NPM
SASS
Язык программирования Elixir
Фреймворк Phoenix
Система управления конфигурациями Ansible
Docker
Kubernetes
Язык программирования Erlang
Колоночная СУБД Scylla
Колоночная СУБД Cassandra
Веб-сервер NGINX
CEPH — распределенная система хранения
Websockets
TensorFlow
Red Hat Enterprise Linux

Разрабатываем сайты любой сложности, интернет-магазины и веб-приложения для автоматизации бизнеса.

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

Узнать больше →

К нам обращаются тогда, когда другие говорят, что реализовать задачу невозможно.

Legacy

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

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

В 2013 году мы приняли решение обновить технологический стек для разработки новых проектов на более перспективный с точки зрения возможностей и качества разработки. Но полностью перейти на новые технологии и прекратить работать с прежним стеком в реальном мире невозможно — многие ранее созданные проекты (некоторые даже с начала нулевых годов), до сих пор работают и мы их сопровождаем. Ещё нередко бывают ситуации, когда мы сопровождаем проекты на этих технологиях и платформах просто потому, что у Заказчика эти проекты уже были сделаны до начала работы с нами, изначальные разработчики «бесследно пропали», но проекты должны продолжать работать пока не получится их заменить.

Собственно поэтому мы продолжаем работать с этими технологиями, хоть и не столь активно, как ранее.

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

В основном, это PHP-проекты: сайты на коробочных CMS UMI.CMS и 1С-Битрикс, а также приложения на фреймворках Yii, Laravel и Symfony.

Legacy

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

PHP
Система управления сайтами 1С-Битрикс
Система управления сайтами UMI.CMS
Yii
Symfony
Laravel
Zend Framework
CodeIgniter
WordPress
Реляционная СУБД MySQL
Реляционная СУБД MariaDB
Веб-сервер Apache
Bootstrap
jQuery
Хранилище Memcached
MongoDB