Облако Selectel - это огромный набор микросервисов и подсистем, слаженная работа которых позволяет управлять виртуальными машинами, кластерами Kubernetes, базами данных и связывать их сетями.
Ядро облака - виртуальные машины, диски и сети. Это базовые компоненты, которыми наши клиенты пользуются напрямую и из которых мы строим собственные PaaS-сервисы.
Команда Сетевых функций облака - кросс-функциональная команда, которая занимается развитием и поддержкой сервисов для управления сетями, виртуальными роутерами и балансировщиками нагрузки. Всё направление виртуализации сетевых функций - от Open vSwitch до панели управления - мы развиваем сами.
Сейчас мы ищем Backend-разработчика, который вместе с нами будет делать новые сетевые возможности для облачной платформы. Быть частью нашей команды - значит работать осознанно, не бояться обращаться за помощью к коллегам и самому быть готовым помочь.
А ещё - развивать облако Selectel на базе OpenStack, одно из крупнейших в России.
Основные задачи- Разрабатывать сетевые сервисы на Python и Golang, такие как DNS-as-a-service, высокопроизводительные балансировщики и др.
- Обновлять сетевые компоненты Openstack (octavia, neutron), писать патчи, фиксить баги в upstream
- Ревьювить код, писать unit и функциональные тесты
- Проводить исследования, проектировать архитектуру новых компонентов
Мы ожидаем- Хорошее знание Python (Flask, SqlAlchemy, Сelery, Oslo, Taskflow) и другими, специфичными для OpenStack
- Опыт работы как с небольшими микросервисами, так и с масштабными монолитными проектами
- Знание сетевых технологий, их возможностей и ограничений: понимать отличие VLAN от VXLAN, как работает маршрутизация трафика, что такое BGP, умение снять tcpdump и разобраться в нём
- Опыт работы с MySQL/PostgreSQL/ClickHouse, RabbitMQ, Redis
- Опыт проектирования API и архитектуры приложения, в том числе микросервисной архитектуры
- Опыт работы с ОС семейства Linux, то есть для вас не должно быть проблемой: написать bash скрипт, "погрепать" логи, выйти из Vim, настроить IP адреса и сетевые интерфейсы
- Опыт работы и понимание принципов CI/CD и IaC: у нас используется GitlabCI, Puppet, Jenkins
- Опыт работы с Docker и Kubernetes: мы активно используем эти технологии на всех этапах разработки и внедрения наших систем, так что с ними вы столкнетесь в первые же дни
Будет плюсом- Опыт разработки на Golang
- Опыт работы с OpenStack (другие облака) минимум на уровне пользователя, а лучше как разработчик/администратор
- Знания сетевых технологий облаков: оверлейные сети, плавающие адреса, security groups, использование NAT, OpenFlow, Open vSwitch, OVSDB, балансировка трафика
- Практический опыт работы с сетевым оборудованием
- Навыки автоматизации управления сетевым оборудованием (Netconf, SSH, OVSDB)