Привет! Меня зовут Данил Ахметов, и ещё год назад я не был сотрудником Яндекса. А сейчаc работаю в команде, которая разрабатывает внутреннее IaaS-решение масштаба всего Яндекса. Попал я в неё не сразу — сначала были Курсы информационных технологий и стажировка в одном из самых критичных в смысле отказоустойчивости направлений — баннерной системе.
Так как недавно Яндекс объявил новый набор на КИТ, я решил рассказать вам о том, какой опыт я там получил и что они могут дать вам. Регистрация открыта до 7 октября, и, хотя мест уже не так много, я надеюсь, что кому-то мой рассказ поможет решиться пойти учиться и, может быть, немного изменить свою жизнь.
Пару лет назад я закончил Ульяновский государственный университет по специальности «Прикладная информатика». Дипломную работу писал о кластерах, суперкомпьютерах и перспективах распределенных вычислений. Меня пригласили админить в не очень большую компанию, разрабатывающую юридическую справочно-информационную систему. Работа была интересной, была почти полная свобода в решении имеющихся задач — все шло своим чередом. Вряд ли бы многое изменилось, если бы 18 октября 2013 года тимлид отдела разработки веб-версии справочного продукта не прислал мне ссылку на страницу предстоящего КИТа, четвертого по счету.
Возможно, не все люди относятся к Яндексу одинаково. В целом сервисы Яндекса оставляли у меня приятные впечатления, но, как и подавляющее большинство моих знакомых из сферы информационных технологий, искал я в Google. Браузером по умолчанию со времен ранних бета-версий был Chrome, а почта с первого курса была Gmail'ом в персональном домене. Только мой отец, кандидат химических и доктор педогогических наук, предпочитал Яндекс, а в дискуссиях о моей будущей карьере и планах на жизнь, говорил что в России самые лучшие программисты работают в Яндексе и делают там лучшие в нашей стране сервисы. Он всегда приводил их в пример, утверждая, что для его задач они решительно лучше всех прочих. Я привык доверять отцу, и, наверное, поэтому испытывал к людям, сделавшим Яндекс, уважение. И не только к программистам.
Для регистрации на КИТ предлагалось написать о себе, опционально можно было прикрепить резюме. После успешного сабмита формы я получил тест с вопросами, которые не вызвали сложностей. Наверное, так и было задумано, потому что самое крутое было впереди.
КИТ начался. В огромном и запредельно ярком офисе собиралась полная аудитория КИТят. Каждый новый раз к нам приходили «бойцы» с разных «фронтов» — Почты, Диска, Маркета, финансовых сервисов — и делились историями успеха. Огромное впечатление на меня произвел Виктор Ашик, неизменный ведущий КИТа и наставник многих и многих специалистов, хоть раз встретившихся с ним. С первых минут он вызвал у меня личное уважение.
Я открыл для себя Cgroups, с головой погрузился в спецификации IPv6, закрепил навыки повседневного шифрования данных и соединений открытым и закрытыми ключами и, самое главное, открыл для себя Python как повседневный инструмент системного администратора. КИТ дал мне огромный толчок, которого очень не хватало, чтобы выйти на новый уровень. Но я еще не догадывался, как скоро и круто моя жизнь изменится.
Курсы завершились пиццей и награждением сертификатами об их окончании. Я узнал, что некоторым выдающимся участникам предложили стажировку в компании. Честно говоря, мне тоже очень хотелось быть на их месте, но я не особо рассчитывал на такую возможность, потому что считал, что я многим слабее тех, кто учился на КИТе вместе со мной.
Однако удача мне улыбнулась. 14-го декабря раздался телефонный звонок, и я получил приглашение на стажировку. Следующие три месяца все свободное от основной работы время я проводил в Группе эксплуатации баннерной системы Яндекса. Это было сложное, но удивительное время: моими коллегами стали создатели сервисов, обрабатывающих много миллионов переходов по баннерам в день, и те, на чьих плечах держится все веселье под названием «Яндекс». Кроме того, я работал с человеком, взломавшим SPS3. Работая с ребятами, я добавил во внутрипроектную систему наливки серверов возможность сверхскоростной сетевой загрузки наливаемых машин по едва анонсированному lpxelinux, доработал сетевую файловую систему remotefs для нужд отдела, освоил автоматизацию рутинных задач с помощью jenkins и лучше разобрался в пакетировании своего ПО для Linux.
Когда моя стажировка подошла к концу, вышло так, что я отпочковался от группы эксплуатации баннерной системы в группу развития инфраструктурного облака в роли junior devops. Возможно, ключевую роль сыграло то, что моя дипломная работа в университете была посвящена вычислительным кластерам.
Для многих не будет секретом что у Яндекса уже есть одна облачная технология— Cocaine, но речь идет не о ней. Cocaine — это система, дающая возможность создавать облачные приложения с использованием кокаинового API, — то есть PaaS (Platform as a Service). Команда, в которую я плавно перекатился, разрабатывает IaaS-решение (Infrastructure as a Service) company-wide масштаба, которое использующется в очень многих проектах. Проще говоря, это такой внутренний DigitalOcean, где пользователь (администратор, разработчик или тестировщик из любого отдела Яндекса) может легко развернуть любое количество виртуальных серверов с любыми характеристиками в любой сети и доменной зоне. И, как по волшебству, управлять ими, забыв о том, что есть физические серверы. Только всё это без биллинга и не DigitalOcean, конечно.
В основе IaaS Яндекса лежит доработанный OpenStack, тесно интегрированный с внутрияндексовой авторизацией (маленькой версией Яндекс.Паспорта), мониторингом, междатацентровой инфраструктурой и многими улучшениями, которые претендуют на включение в апстрим исходного OpenStack'a. Облако — это очень и очень сложная штука, состоящая из большого количества компонентов, некоторых из которых нет нигде за пределами компании. У сервиса несколько уровней абстракции, сквозь которые иногда случается с грохотом проваливаться в самый низ, на голое железо, но даже сегодня мы гарантируем внутренним пользователям качество обслуживания, при котором в облаке можно размещать продуктивные серверы.
Корпоративный IaaS, пожалуй, один из самых молодых и многообещающих на сегодня. Постоянно находясь между разработкой средств администрирования и собственно администрированием инфраструктурного облака, работая в паре с разработчиками компонентов IaaS’a, можно видеть проблему с нескольких сторон сразу и решать ее наилучшим способом. Даже шагая по очевидным граблям, приятно понимать, что идешь по ним первым.
Я, когда шёл на КИТ, хотел учиться у лучших и применять то, чему научусь, везде, где бы я ни оказался. Работать в Яндексе и решать повседневные задачи вместе с теми, кто может многому научить — интересно и круто. Я счастлив быть здесь и сейчас. Но это было бы невозможно не только без КИТа, но и без всех тех, кто был рядом со мной все последнее время: научного руководителя в университете, коллег на предыдущей работе, КИТят, с которыми я учился и попал на стажировку, друзей, и, конечно, родители. Спасибо всем!
Возможно, мой рассказ покажется вам слишком личным, но я буду рад, если он поможет кому-то собраться, и, может быть, сделать новый важный шаг в жизни. А подробности про наш внутренний IaaS мы ещё расскажем.
P.S. Кстати, все лекции прошлых Курсов выложены на Хабре, но программа каждый год обновляется. Список предстоящих лекций можно посмотреть здесь.
Автор: dinobot