ПОРТФОЛИО

Мой опыт работы в IT сфере более 20 лет. За эти 20 лет IT мир прошел эволюцию от i386 с Windows 3.11 до современных кластеров и облачных технологий и я прошел этот путь вместе с этим миром. На данный момент основной стек моего окружения это: Unix/Linux, Docker/Kubernetes, GitLab CI/CD, Prometheus/Zabbix, Ansible/Chef, Logstash/Graylog, ELK/Grafana, PostgreSQL/MongoDB В разработке использую Python для написания небольших инструментов а так же автоматизации процессов. Путь развития операционных систем и инструментов позволил узнать многие процессы ещё в начале их разработки что помогает в работе и саморазвитии. Я предпочитаю так называемый «путь параноика», создавая какой-то проект первоначальные ступени это:

  1. Безопасность. Изначально все закрыто от мира, открываем только необходимое и только доверенным. В этом нам помогает контроль целостности и модифицирования файлов, iptables (netfilter), контроль acl, key-based авторизация а так же двухфакторная авторизация. А так же утилиты которые получили широкое распространение, такие как auditd и fail2ban. Даже если это локальное окружение. Тот кто владеет информацией — владеет всем миром. (с) Натан Ротшильд
  2. Масштабируемость и рост. Любой проект начинается с Dockerfile… Но рано или поздно он вырастет до Kubernetes. Так я считаю. Начиная любой проект нужно закладывать в архитектуру возможность масштабировать его как вертикально так и горизонтально, по этому, все что может быть кластеризировано, должно быть кластеризировано. Уменьшение точек отказа — главная задача. И здесь на помощь придут следующие технологии которые я могу применить, а именно: BGP Routing, HAproxy, Pacemaker, Etcd, Nginx Upstream. Все что можно реплицировать должно быть реплицировано.
  3. Автоматизация. Время один из самых важных ресурсов во всех сферах. Чем меньше времени мы тратим на создание окружения или развертывания тем лучше. По этому я всегда стремлюсь автоматизировать процесс. Использую следующие инструменты в этой работе: Ansible/Chef, Python/Bash. Разрабатываем рецепты и playbook, специфические процессы автоматизируем Python. Так же сократить трудозатраты поможет Terraform.
  4. Обработка системных данных. Я должен знать все что происходит с приложением от создания кода до его работы на production-окружении. Сбор логов и их ротация и агрегация на всех уровнях. И здесь мне на помощь приходят следующие инструменты которые я использую: GitLab CI/CD, GitLab Runner я вижу все что происходит с кодом, разделяю его на devel/stage/prodiction окружение, собираю образы в локальное docker registry, что позволяет в считаные минуты получить привычное для разработчика окружение в любом месте. Подключаем сбор метрик и логов с помощью Logsrash/GrayLog, важно понимать что происходит внутри приложений. Если что-то не укладывается в шаблон на помощь придут regexp (регулярные выражения).
  5. Мониторинг. Я всегда хочу быть в курсе что происходит с железом и процессами, окружениями и разработкой и здесь я не брезгую использовать все доступные инструменты. Понимать «здоровье» инфраструктуры это как следить за своим собственным здоровьем. Prometheus всегда в первых рядах, почему? Быстрая интеграция практически с любым языком разработки, мы получаем из «коробки» любые метрики на которое только хватит фантазии разработчика. Для «железного» окружения в помощь Prometheus придет Zabbix. Сделаем централизованное хранилище событий с помощью Telegram Bot и мы всегда в курсе что произошло и где. Повторюсь, лучше быть параноиком, мониторить каждый порт, каждое событие, каждую ступень.
  6. Контроль задач и документация. Я считаю что — бизнес не должен зависеть от персонала. Подразумевая под этим что нельзя завязывать бизнес-процессы или инфраструктуру или что либо ещё на одном или нескольких людях. В какой-то момент они захотят уйти и что будет дальше? Всегда должна вестись документация. По всем процессам от настройки и выкладки, как это было сделано, что для этого нужно, кто разработчик, как протекает процесс. Что бы новый член команды мог быстро стать её частью или же заменить того кто хочет её покинуть. Здесь я использую такие инструменты как Redmine/Confluence.

Я уверенно чувствую себя с такими операционными системами как FreeBSD, CentOS, Ubuntu&Debian-like, я отлично знаю Windows но специфика моей работы делает её практически неприменимой. Но если вам нужно создать лес доменов, развернуть GPO,AD,Exchage и прочее, пожалуйста.

Отлично владею сетевым стеком. Нужно анонсировать сеть в другой дата-центр? Защитить канал через IPSec? Необходим VPN сервер? Без проблем. Если что-то пошло не так всегда есть tcpdump. Необходимы интернет сервисы? Собственный DNS сервер? Или же почтовый? В моем docker registry уже есть все необходимые образы. Нужно что-то изменить? Пожалуйста Ansible Playbook и Dockerfie/docker-compose к вашим услугам.

Если мы говорим о больших проектах, где уже не обойтись docker-compose или даже swarm, значит пришло время вставать у штурвала Kubernetes. Открываем консоль и вызываем kubectl…

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

  1. Три DNS инстанса: ns1.yakunin.dev, ns2.yakunin.dev, ns3.yakunin.dev В качестве бекэнда PowerDNS с базой данных SQLite. Они не рекурсивны, обслуживают только мою зону.
  2. Система мониторинга в связке Grafana + Prometheus + Prometheus AlertManager + TelegramBot AlertManager https://mon.yakunin.dev
  3. Zabbix для «железного» мониторинга в связке Zabbix + PostgreSQL https://zbx.yakunin.dev
  4. Хранение конфигурации, деплой и другие функции GitLab https://git.yakunin.dev если вы потенциальный работодатель, то я готов открыть для вас гостевой доступ к репозиториям.
  5. Jenkins, его все ещё часто можно встретить в массе компаний впрочем мог бы быть и TeamCity, но с появлением в GitLab полноценного CI/CD в формате gitlab-ci.yml впрочем https://jenkins.yakunin.dev
  6. Docker registry (необходима авторизация, все-таки это частный репозиторий) https://reg.yakunin.dev
  7. Почтовый сервер на борту Postfix, Dovecot, Spamassasin, DrWeb, RoundCube, Postfixadmin. (это не openrelay) https://mail.yakunin.dev

Что ещё? Можно скачать мое резюме, оно так же доступно на hh.ru https://www.yakunin.dev/resume.pdf