Denis Yagovkin

Ведущий инженер-эксперт. Отдел сопровождения СУБД и серверов приложений. @ sigma-it.ru
DevOps/SRE
DevRel
Backend
Карьера
Team Lead/Management
Denis Yagovkin
Опыт: 5-10 лет
Цена (за час): Бесплатно
Получили помощь: 5 человек
О себе

$> ps awwwfux

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

Отчетливо, понимаю и принимаю участие в R&D и что это не просто "погуглить" + OSINT "в серой зоне", свободно читаю документацию и код библиотек, способен взять только нужное, дабы уменьшить зависимость и не только по объему или вовсе исключить таковую. Не путаю бизнес и технологии, точно знаю чем и как заниматься нужно, а чем просто можно. А если нужно "просто погуглить", а то есть найти эффективное решение, которого нет на данный момент, способен найти крайне быстро и не менее быстро, адаптировав, применить его.

На данный момент и все еще, и к счастью ))) Занимаюсь DevOps & SRE & DevSecOps, отлично понимаю что такое SLI & SLO & SLA и как с этим жить хорошо, программированием (программирую/пишу) и проектированием, как монолитной, монолитно распределенной (и такое бывает), гибридной, так и SOA и как ее частный случай - микро сервисной архитектуры WEB приложений или просто сервисов, в рамках платформы или без нее. Плюс прототипирование в контексте MVP или иного примера. Все это в рамках Data Intensive App | Highload(русский термин), хотя и не всегда и не повсюду или просто в рамках понятной, прогнозируемой или нет - нагрузки с применением DevOps & SRE практик и IaC (Infrastructure as Code 80-90%).

Обладаю опытом и навыками выстраивания архитектуры с 0 (даже с абсолютного нуля), Build (Сборка) различных Stack'ов и на различных языках программирования, а так же моно репозитории и моно репозитории с микро сервисами внутри (бывает и такое) и подобное, в рамках CI или просто pipelin'ов, + дизайн системы и архитектуры в целом, если нужно. Есть успешный опыт миграции на "отечестнные" в каком то смысле, дистрибутивы, как пример ALTLinux & AstraLinux и построение на них стендов и кластеров куба (Kubernetes) с учетом специфики, а она поверьте, еще как есть )

("Нарезанием" сетей и сборкой серверов (железа) в ЦОД - НЕ занимаюсь !!!)

Первичная настройка железа - IPMI, IPMItool и благо не всегда так "везет", SSH + SSH туннели или просто Ansible или же где есть "нормальный" API то - TerraForm/TerraGrunt. Все очевидно в закрытом контуре и местами в полном вакууме, а то есть - без доступа в интернет. Репозитории и хранилища образов, так же приватные под TLS. + настройка, как пример net.ipv4.* & net.core.* & net.netfilter, при необходимости, меняю настройки cpu governor performance mode и не только.

Контейнеризация, runtime (container engine) и упаковка артефактов - почти всегда была ... Docker в виду depricated in kube и dockershim и не только, теперь containerd | CRI - O. Есть опыт с LXC/LXD как legacy + сборка Podman | Kaniko & BuildX | Makefile.

Виртуализация KVM + Qemu, libvirt & virt-manager как UI, для работы с гипервизором. Есть опыт OLVM(Oracle) & ProxMox.

Infra > Bare Metal & KVM & Kubernetes - настроен как кворум, зачастую, но не всегда, в кластерах используется ingress + IngressController | Gateway API + Operators.

Helm3 as a PM (Deploy, rolling, releasing, build & packing & etc ...) или tool'ы поверх kubectl + Let's encrypt Cert Manager (ClusterIssuer + Certificate).

Registry > Gitlab/native registry | Nexus3 (private) | self hosted.

Оркестрация - Kubernetes (95%), Swarm не менее часто с ним работал, в рамках миграции с него в куб.

GitOps > Argo CD & Git Hooks & pre commit hooks & custom stuff.

CI & CD > GitLab (92%), почти все в нем и на нем + Argo CD.

Все могу и мог настроить сам, а то есть runner'ы, весь pipeline со всеми stag'ами/multi stage, includ' ами, rules, needs, dependencies, sharing state & refs & cache & artefacts + current stable feature + FF {Future Flags} & other ...

Jenkins (8%) + Gradle и его "очень стабильные" в работе плагины + Groovy & Groovy DSL.

DevSecOps > GDB & Ghidra. OWASP Dependency check & ZAP + отчеты OWASP top 10 & CVE.

PMD + Docker Scout & container diff & Dive + DiffOCI. VeraCode & SonarQube.

WireShark + Nessus & Burp Suite.

Trivy + база уязвимостей. WAF как модуль.

Secrets > GnuPG & Ansible-vault & Vault & Consul (HashiCorp) & OpenSSL

IDM & SSO > KeyCloak & Free IPA.

Брокеры, очереди + event driven streaming > RabbitMQ & RabbitMQ Streams + CLI rabbitmqadmin & rabbitmqctl & rabbitmq-plugins. И ZeroMQ как основа для сервиса. + NNG (nanomsg).

Apache Kafka, как платформа, брокер шина или даже хранилище. + Kafka Connect(или custom clients) & Kafka Streams & SerDe (or custom) & API Global KTable/KTable/KStream + KSQL (SQL движок поверх) + TimeStampExtractor & StateStore DSL (Java 8 - lambda). Kafka (KRAFT) without Zookeeper | RedPanda.

XaaS | Облака >

Yandex Cloud (Миграции стендов (Stage | Test) в куб).

AWS {EKS, FarGate, EC2, Lambda, ECR, S3, VPC, Elemental & etc}

G CORE Cloud Для стриминга и развертывания окружения и прочего.

Selectel, как хостинг, провайдер, облако.

А так же могу профессионально настроить и запустить стрим как в G Core, так и в AWS Elemental -> MediaPackage & MediaLive. (Вдруг кому то нужно, ведь "стримить всякое такое" бывает нужно - многим и для многих)

Объемы для понимания (Они разные и в разное время) >

Объемы таковы 4 ЦОДа (Гео распределенные) - опыт в рамках Аэрофлота. В среднем и сейчас это работа с десятками кластеров и не только куба, частично/местами Bare metal + self hosted решения, вплоть до прототипов (дальше не пошло) private cloud + API. И cloud solution, как пример Yandex Cloud для куба и не только.

Logging >

Vector & (Fluentd & Fluent Bit | FileBeat & ELK).

Observability & Monitoring >

OpenTelemetry & в частности Prometheus (Time Series) + exporters + TeleGraf & VictoriaMetrics. Или же ZABBIX или Nagios (опыта с ними не очень много) + написание собственных Exporter'ов/agent'ов/executors и операторов в куб, но в редких случаях. Redash & Grafana как UI в том числе и для бизнес показателей.

Storages & State >

PostgreSQL + PGBouncer + Patroni & (ETCD | Consul ) | Stolon.

IMDB > Redis & KeyDB | Erlang Mnesia. S3 > MinIO. + ETCD & Consul.

Tранспорт > TCP & UDP | Sockets + был опыт с MQTTв контексте IoT (сегмент ЖКХ и ТЭК и умный дом)

IPC > Sockets | http | MQ | RPC | gRPC | msgpack & bencode | TAXI )

+ Protocol Buffers + WebSockets/uWebSockets.

Other >

Angie - fork NGINX.

Clamav

BPM > Camunda BPM & Jira

Языки и платформы >

JVM достаточно много работал и настраивал в последнее время, как пример данные аргументы.

-Xms -Xmx & -XX:MaxMetaspaceSize & -XX:NewSize -XX:MaxNewSize & -XX:+UseSerialGC -XX:+UseParallelGC -XX:+USeParNewGC -XX:+UseG1GC & -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles -XX:GCLogFileSize -Xloggc & -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath -XX:OnOutOfMemoryError -XX:+UseGCOverheadLimit и подобное по вкусу.

Java к слову знаю плохо, возможно, и не пишу на ней и не буду. Но пишу на других языках на JVM.

GraalVM + reflection и если до него дошло, то думаю вы понимаете, что случилось, а точнее что не случилось, хотя теперь вы возможно, знаете почему ... и конечно знаете что многое есть или скоро будет флаг ).

BEAM & Erlang/OTP & Elixir.

Ruby | Truffle Ruby | YJIT.

GoLang - плотное взаимодействие в рамках проекта Знания + profiling/tracing & debug + opts & build

А так же и по классике ...

PHP(^7.2) & 8 JIT & Node JS (FFB).

C++ > (Если оператор определен) - STL.

Про клиент ... Тут все по классике, почти, стандарта EcmaScript ^6 и выше.

SPA+CSR+(SSI(иногда)) или RIA/PWA & hydration или же просто(или далеко не просто) SSR в наше время.

Пишу на LISP/SBCL & Clojure & Erlang/OTP & Elixir.

Было дело и давно ... писал клиент на PureScript и server-side на Haskell в контексте построения крупной CRM (Авто бизнес). Сервер - Snap, Scotty и Cabal, Stack для сборки.

Работа в срезе, как она есть ...

В разное время работал, как программистом(c 2015(ранее около трех лет "так же в IT")), так и руководителем направления разработки ПО, Team Lead'ом. Есть серьезный опыт работы в Start up'ах (У кого его нет ))) А я серьезно...), средних компаниях, выстраивании рабочих процессов с нуля с внедрением необходимых, современных методик и практик в разработку и запуск продукта, а так же проведение тех.аудита и работа и взаимодействие с удаленными командами и заказчиками. Существенный опыт подбора и формирования команды, утверждение Stack'а разработки, инструментов и технологий. Проектирование архитектуры. А так же "онбординг", распределения бюджета, сметы, закупок, решение адм.вопросов(в рамках ДИТ и не только), ведение переговоров и курирование + внедрение DevOps & SRE и конечно инженерной культуры в целом практик и здравого смысла )))

Опыт руководства командой разработчиков(client/server & ops & devops) более > 5 человек в разное время.

Из личных качеств полагаю нужно отметить |>

Сильные hard & soft skills.

Коммуникативен, общителен, точно знаю что хочу.

Не боюсь ответственности, сам принимаю решения, довожу их до конца.

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

Понимаю и осознаю специфику процесса в целом.

Изучение нового не вызывает проблем и отторжения.

Обладаю хорошим абстрактный мышлением и декомпозированием процессов.

Мотивирован, относительно условий, конечно.

Нет предвзятости к чужому коду и ходу мысли .

С чем помогу

Помогу разобраться в доступном и развернутом виде с Kubernetes, CI & CD любой сложности, с брокерами и очередями, с асинхронным и отложенным взаимодействием, Kafka & RabbitMQ. Помогу с Redis & Keydb и их кластаризацией и репликацией, а так же в целом в IaC. Могу помочь, как только начинающим специалистам или совсем начинающим с 0 - абсолютного, так и просто junior & middle. И конечно же Senior инженерам.

Компетенции
GNU/Linux, KVM, Kubernetes, Apache Kafka, RabbitMQ, CI & CD, Redis & Keydb, SOA & microservices, Data Intensive App, распределенные системы, высоко нагруженные системы. IPC, Unix Sockets, server & client side, VIM