Продолжаем рассказывать о программных продуктах, которые используются в 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 ускоряет обслуживание покупателей