Найти в Дзене
X5 Group

Какие бывают фреймворки и зачем они программистам

Продолжаем рассказывать о программных продуктах, которые используются в X5 Технологии. В одном из прошлых выпусков «Цифровой бакалеи» мы говорили о популярных языках программирования. Сегодня рассмотрим более узкие, но не менее полезные, фреймворки и сервисы. Фреймворк — это система, которая позволяет создавать программы не с нуля, а с опорой на заранее разработанные блоки.
Можно привести пример со строительством. Вместо того, чтобы строить дом из кирпича, выкладывая каждый кирпичик вручную, строители собирают его из панелей и готовых элементов, которые заранее созданы на заводе. Так скорость сборки (и программирования) увеличивается многократно, попутно уменьшается число ошибок. Kubernetes Вкратце. Kubernetes — это платформа с открытым исходным кодом, которая позволяет запускать приложения в «контейнерах». Эти контейнеры позволяют быстро разворачивать новые IT-решения без настройки серверов, гибко перераспределяя вычислительные мощности между ними. Раньше программы запускались на се
Оглавление

Продолжаем рассказывать о программных продуктах, которые используются в X5 Технологии. В одном из прошлых выпусков «Цифровой бакалеи» мы говорили о популярных языках программирования. Сегодня рассмотрим более узкие, но не менее полезные, фреймворки и сервисы.

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

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

Kubernetes

Вкратце. Kubernetes — это платформа с открытым исходным кодом, которая позволяет запускать приложения в «контейнерах». Эти контейнеры позволяют быстро разворачивать новые IT-решения без настройки серверов, гибко перераспределяя вычислительные мощности между ними.

Раньше программы запускались на серверах. Нужно запустить новую программу — настраивай физический сервер. Со временем это приводило к проблемам. Например, если на сервере уже работал какой-то сервис и отнимал мощность, то производительность других программ падала. Кроме того, масштабироваться было трудно — не будешь ведь покупать и настраивать 1000 серверов!

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

Для чего используется. Для быстрого разворачивания IT-решений. Разрабатывать решения в контейнере можно быстро, приложения отделяются от инфраструктуры. Kubernetes позволяет добиться единой среды при разработке, тестировании и релизе — на ноутбуке программиста всё работает также, как и в облаке.

Плюсы.

  • Балансирует нагрузку на лету.
  • Позволяет автоматически развёртывать и отказывать решения.
  • Kubernetes сам перезапускает зависшие контейнеры.
  • Позволяет хранить в контейнерах конфиденциальную информацию.
  • Работает со всеми операционными системами.

Минусы.

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

Keycloak

Вкратце. Keycloak — это открытое ПО, которое используется для идентификации и контроля доступа. Создан компанией Red Hat. Позволяет создать в крупной компании целые пространства безопасности со своими пользователями, ролями, ключами и способами авторизации.

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

Плюсы.

  • Поддерживает множество способов идентификации и аутентификации.
  • Можно гибко управлять правами.
  • Поддерживает REST API и Java API, может работать с JS.

Минусы.

  • Если Keycloak «упадёт», то вместе с ним упадут все возможности входа.

Git

Вкратце. Технология управления разными версиями ПО. Один из стандартов в мире IT, который знают совершенно все разработчики. Создана Линусом Торвальдсом, основателем Linux. А ещё на английском сленге слово Git означает «самовлюблённый мерзавец».

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

Представим что Анна, Сергей и Алина работают над одним текстом. Каждый из них на своем компьютере вносит правки в документ, а Git собирает из правок каждого общую версию.

Вдруг Алина решает удалить абзац, над которым работает Сергей. Тогда Git замечает это (на языке разработчиков подобная ситуация называется конфликтом), и останавливает создание общего текста — пока все его авторы не разберутся между собой.

Плюсы.

  • Простое, понятное решение.
  • Есть много воплощений технологии Git, в том числе бесплатный GitHub.
  • Основа технологии опенсорс.

Минусы.

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

Docker

Вкратце. Открытая платформа для разработки, доставки и эксплуатации приложений. Docker разработан для более быстрого выкладывания приложений.

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

Позволяет разработчикам использовать локальные контейнеры с приложениями и сервисами. Например, разработчики делятся своим кодом и стеком разработки (набором docker-образов) с коллегами. Когда всё готово, код отправляется на тестовую площадку, где запускаются любые тесты. С тестовой площадки они могут отправить код и образы на продакшн.

Плюсы.

  • Код выкладывается и разворачивается в несколько раз быстрее.
  • Хорошо работает с высоконагруженными приложениями.
  • На одном сервере могут работать сотни контейнеров с кодом.

Минусы.

  • Требует тонкой и аккуратной настройки.
  • Удалять контейнеры сложно и долго.
  • С новыми версиями Docker могут не работать старые решения.

Tableau

Вкратце. Система обработки и визуализации данных, которая не требует навыков программирования и дизайна. Де-факто стала стандартом визуализации бизнес-процессов в сотнях компаний: от Apple до X5.

Для чего используется. На входе Tableau получает данные в любом формате: от Excel до CSV, XML, и др. Система обрабатывает данные и строит интерактивный отчёт по ним. При этом работать с данными можно в привычном интерфейсе, также их можно выгружать в рассылки и веб.

Плюсы.

  • «Переваривает» миллионы строк данных. Имеет большое количество встроенных инструментов, которые позволяют добавлять данные из разных источников.
  • Платформа идеальна для новичков. Благодаря понятному интерфейсу даже неопытный пользователь может легко найти все фильтры, разобраться в операциях, а нужное действие сможет сделать «в 2 клика». Кроме того, есть огромное количество руководств, гайдов и онлайн-уроков, поэтому вероятность не освоить сервис практически нулевая.
  • Отлично визуализирует. Здесь можно строить облака слов, пузырьковые и древовидные диаграммы, гибкие дашборды. Всё это поможет пользователю понимать свои данные и принимать правильные решения на их основе.

Минусы.

  • Данные должны быть предварительно структурированы. И несмотря на широкие возможности визуализации, некоторые опции могут оказаться слишком узконаправленными, не для широкой аудитории.

Благодарим экспертов  Х5 Технологии, которые помогали в подготовке материала:

Евгений Шляхов, руководитель направления BI-платформа

Сергей Колесников, начальник управления автоматизации разработки

________

«Цифровая бакалея» — регулярная рубрика от Цифровой академии Х5, в которой о сложных технологиях мы рассказываем максимально просто.

Наши материалы:

Зачем магазинам искусственный интеллект

Какие бывают языки программирования и зачем они нужны

Люди и роботы. Как Х5 автоматизирует рутину (видео)

Кто такие девопсы (подкаст)

Фронтенд vs Бекэнд — чем занимаются два лагеря разработчиков (подкаст)

Классные кассы. Как Х5 ускоряет обслуживание покупателей