Между Строк Требований|Блог системного аналитика
191 subscribers
25 photos
3 videos
7 links
О системном и бизнес-анализе, ИТ-архитектуре, технологиях и работе.
Собственно я: @tekhazanov1
Download Telegram
#Devops для аналитиков
Решил я немного погрузиться в основы деплоя и раскатки ПО. Во-первых, у нас на проекте свои полноценные Devops-практики с блекджеком GitLab и CI/CD, да к тому же одна из моих задач сейчас связана с разработкой софтины по мониторингу работоспособности камер, а также с некоторыми сервисными операциями по восстановлению работоспособности отдельных камер. Среди нужных фичей там актуализация Docker-образов, перезапуск контейнеров и всякое такое... Короче, предлагаю сегодня в связи с этой темой посмотреть, какие файлики должны быть в папке с проектом, чтобы задеплоить и развернуть твой print("Hello World") с оркестрацией и релизным пайплайном. 😄
Итак, что у нас может быть в папке с проектом.

👩‍💻 Docker файлы
Dockerfile — инструкция для сборки Docker-образа;
docker-compose.yml — запуск нескольких контейнеров вместе;
docker-compose.dev.yml — версия для разработки;
.dockerignore — что НЕ копировать в Docker-образ.

👩‍💻 CI/CD (GitLab)
.gitlab-ci.yml — пайплайн автоматической сборки, тестов, деплоя;
k8s-cronjob.yaml — задания по расписанию в Kubernetes.

👩‍💻 Git и документация
.gitignore — какие файлы игнорировать в Git;
.gitattributes — настройки обработки файлов в Git;
README.md — документация проекта;
.ipynb — Jupyter notebook с примерами/анализом.

🛠 Конфигурация
config.yml — общие настройки приложения;
.local.env.tests, env.tests — переменные окружения для тестов;
lockalhost_local_start.sh — скрипт для запуска локально.

👩‍💻 Python
.python-version — какая версия Python используется;
.pylintrc — настройки линтера (проверка качества кода);
mypy.ini — настройки статической типизации;
pip.conf — настройки менеджера пакетов pip;
logging.conf — настройки логирования;
.pyarmor_config — настройки обфускации кода.

👩‍💻 Rust (ну раз уж он у нас тоже на проекте есть)
Cargo.toml - зависимости и настройки проекта (как requirements.txt);
Cargo.lock - точные версии зависимостей (генерируется автоматически).

🎯 Что все это дело дает для деплоя:
1. Сборка → Dockerfile + docker-compose;
2. Тестирование → .gitlab-ci.yml + env.tests;
3. Деплой → .gitlab-ci.yml + k8s-cronjob.yaml;
4. Настройка → config.yml + переменные окружения.

In conclusion: у каждого в команде своя роль и своя специализация, но системный аналитик должен разбираться во всех этапах разработки ПО и ввода его в эксплуатацию (в том числе иметь представление, как работают Devops-инженеры).

#DevOps #системныйанализ #работа #docker #python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍21
🔛 Фича-флаги: что делать, чтобы не класть весь прод разом
Честно скажу, я совсем недавно узнал, как это на самом деле называется: Feature Flag. Я, в общем-то, всегда звал это просто — рубильник. 💩 Ну да ладно, короче, к сути.

Фича-флаг, он же Feature Toggle, а также Feature Flag (как же чертовски круто это все звучит) — это переключатель, который позволяет включать или выключать функциональность в работающем приложении без перевыпуска кода.

Ну грубо говоря как-то так:
if feature_flag.is_enabled('new_payment_system'):
use_new_payment()
else:
use_old_payment()

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

Зачем вообще это все нужно?
🟣Безопасные релизы. Увидели проблему? ➡️ Выключаем тумблер ➡️ Фича не работает, хотя код уже в проде.
🟣Dark Launches. Можно задеплоить код в прод, но не показывать его пользователям (пока не пришло время).
🟣Условный доступ: включить фичу только для внутренних тестировщиков/конкретной группы пользователей.
🟣Для A/B-тестов, но это для PO, наверное, интересно, я за такое вообще не шарю. 🤷 Просто знаю, что так делают.

Какие есть способы дернуть рубильник?
🔴Таблица в БД: плюс в том, что возможно динамическое изменение без перезапуска. Минусы — нужна соответственно инфраструктура (сама БД).
🔴Переменные окружения. Переключение через .env файл достаточно просто реализовать, но из минусов — переключение флага скорее всего потребует перезапуска.
🔴Конфигурационные файлы (JSON, YAML, TOML, .properties) — примерное те же минусы и плюсы, что в случае с переменными окружения.
🔴Специальные сервисы фича-флагов (их, оказывается, много всяких есть): LaunchDarkly, Split, Flagsmith, Unleash, CloudBees Feature Management. Тут и гибкость в настройке, и изменения в режиме реального времени, но с другой стороны зависимость от еще одного сервиса.

Что важно учитывать:
⚠️ Постараться Не забывать убирать флаги после полного внедрения фичи;
⚠️ Постараться Документировать флаги — какие есть, для чего, кто отвечает;
⚠️ Постараться Не превращать систему в спагетти-код из условий.

In conclusion: Фича-флаги — это не просто технический инструмент, это стратегия безопасной поставки изменений.

#SystemAnalysis #FeatureFlags #Разработка #python #IT #businessanalysis
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Интересные варианты использования VS Code для системного аналитика

🌲Приветствую всех в новом 2026 году! 🎁 Пока у нас протекают зимние праздники, а я балуюсь со своими pet-проектами, я поймал себя на мысли, что ни разу не упоминал VS Code как инструмент в этом паблике. Возможно кто-то помнит, у меня некоторое время назад был пост про инструменты, которые я чаще всего использую в работе: тут. 💬 Я там лишь вскользь упомянул Visual Studio и вообще ни слова не сказал про VS Code, но учитывая, как часто я использую его в последнее время, думаю, стоит посвятить этой IDE небольшой пост.

👩‍💻 VS Code, как и 👩‍💻 Visual Studio, является продуктом компании 😮‍💨 Microsoft и фактически является облегченной Visual Studio, которая в свою очередь (еще по студенческим временам помню) запускается со звуком взлетающего вертолета (это я про куллеры в компе) и дольше, чем все продукты Adobe вместе взятые. У VS Code такой проблемы нет, зато есть возможность инсталлировать разные расширения (extensions) для очень разных целей начиная от AI анализа кода и заканчивая коннектом к БД, работе с API, dosc-as-code и черте-чем еще... (Ну и конечно же возможностью менять разные темки в IDE).

📼 Например, вот такой use case, видео с которым прикрепил к посту: у нас есть какая-то кодовая база и мы хотим понять при каких условиях и где идет обращение к БД (где и когда какие данные считываем, когда и что записываем, апдейтим и так далее). Просим AI ассистента (вроде Copilot на видео) проанализировать кодовую базу и найти все места обращения к БД, дальше получаем ссылки на конкретные места в коде и пояснения к ним, после чего можем уже быстро понять, что происходит. В некотором смысле, это продвинутое средство поиска по коду.

😬 Какие еще интересные варианты использования можно придумать:
🔘Найти все вызовы API и их эндпоинты;
🔘Выявить интеграции с другими сервисами (очереди сообщений — Kafka, RabbitMQ; кэши — Redis; облачные хранилища — S3);
🔘Трассировка выполнения конкретного сценария (грубо говоря, показать все методы, вызывающиеся при создании какого-нибудь объекта в системе);
🔘Поиск всех мест, где изменяется состояние какой-нибудь сущности (какой-нибудь user.status, типа того);
🔘Что угодно еще, whatever you want, вариантов использования можно придумать много.

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

#systemanalysis #системныйанализ #vscode #инструментарий #python #rust
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤‍🔥11