Рубрика:
Гость «СА»
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Евгений Некрасов: «Я научился кодить на слух»
На вопросы «Системного администратора» отвечает преподаватель курсов DevOps-инженерии ИТ-компании TAGES, инженер DevOps-кластеров и нейронных сетей.
В возрасте 14 лет с Женей случился несчастный случай, едва не стоивший ему жизни. Результат: несколько недель в коме, ампутация правой кисти, потеря 99% зрения, обоняния и частичная потеря чувствительности левой руки. Но это не помешало ему закончить бакалавриат и учиться на общих основаниях, параллельно работая над несколькими ИТ-проектами. Сегодня Евгений Некрасов достиг такого уровня развития, что запустил свой собственный курс обучения новичков хитростям DevOps-инженерии в ИТ-компании TAGES
– Как ты вообще работаешь, как тебе это все удается?
– Ну как, нормально! Ручками! (Смеется). Я научился кодить на слух. Я вообще все делаю на слух. В повседневной жизни я использую программу экранного доступа. На английском она называется Screen reader. Это ПО позволяет считывать весь допустимый текст, который только можно считать и преобразует его в аудиопоток. Я просто надеваю наушники и использую клавиатуру.
Я в принципе не использую мышку, потому что мышь плавает по экрану, а мне нужна четкая фиксация фокуса. Поэтому я использую только навигацию при помощи клавиатуры, и весь текст, который программа может считать, она транслирует мне в речь, а я уже на высокой скорости (до 1000 слов в минуту) его считываю.
Вот так я и работаю. У меня нет каких-либо графических оболочек сред для разработки, они мне не нужны. У меня только консоль, потому что это максимально удобно: деревянно, но удобно. Работает безотказно, 100%, как швейцарские часы.
– Код ты (пишешь) тоже на скорости тысяча слов в минуту?
– Когда я пишу самостоятельно – да. А, допустим, когда провожу код-ревью, я снижаю скорость до 600-800 в минуту, потому что это все-таки чужой код.
– Почему ты выбрал именно программирование?
– Я занимаюсь разработкой со школьной скамьи. Ровно после того, как получил травму, я и стал заниматься разработкой. Многие задают вопрос «Почему?».
Суть в том, что до травмы я хотел быть пилотом самолета-истребителя. Но моя мечта не сбылась, и, лежа на реанимационной койке, я понимал, что у меня не было выбора. Я думал, кем я стану, и понял, что должен подчинить себе машину. То есть машина должна работать на меня, а не я на нее. И я заставлю ее работать на меня. Вот и поставил себе цель стать разработчиком независимо вообще от каких-либо своих физических ограничений. Ушел в разработку, потому что мне это было интересно. Суммарно сейчас мой опыт составляет 6 лет коммерческой разработки и в общем – 8 лет с обучением.
– Почему тебя заинтересовал DevOps?
– DevOps я занимаюсь 5 лет. В 2016-м году я пришел у нас во Владивостоке на конференцию Google DevFest, проводимую Сергеем Мелехиным, руководителем местного сообщества Google. На этом мероприятии один из спикеров рассказывал про Kubernetes – что это и как оно работает. Я тогда уже работал с виртуальными машинами и понимал, как все это действо выглядит. Вот я и думаю: надо ж приложения создавать, нужно их паковать.
А я в тот момент активно переезжал с «Винды» на Linux, с Linux на другие ОС, и у меня постоянно возникали какие-то сложности: нужно было постоянно это дело деплоить, разворачивать, автоматизировать. И с виртуальными машинами это выглядело не очень классно. Использование сторонних модулей для скриптов автодеплоинга тоже было некрасиво.
Я углубился сперва в Docker, понял, насколько это четко и круто: ты берешь свое написанное приложение, пакуешь в контейнер и доставляешь куда тебе нужно. Docker заводится безотказно 100% везде, на любой ОС. Это решило кучу моих проблем. Я смог сразу раскидывать зависимости, отсылать ребятам то, что делал.
Но потом я перешел в область автоматизации – нужно было это дело как-то автоматизировать. Не хотелось постоянно залезать на сервер, выполнять кучу monkey job. Дальше я начал ковырять Continuous Integration (CI), потом думаю, нужно же и это дело как-то деплоить. И когда уже работал над коммерческим проектом, начал ковырять практики Delivery и Deployment. И вот тогда я и ушел активно в DevOps, параллельно специализируясь еще и в разработке высоконагруженных систем.
После конференции я узнал про Kubernetes, разобрался, как он работает, что собой представляет, поучаствовал в нескольких научных исследованиях и теперь двигаюсь в этом направлении. Недавно провел стартовый курс по DevOps для своих сокурсников и студенческого сообщества Google, а потом меня пригласили в TAGES прочитать аналогичный курс для джунов. В целом вышло замечательно, так что мы планируем этот курс продолжить – обучать новеньких.
– Что такого есть в DevOps, что тебя покорило?
– В общем, именно как раз доставка и отказоустойчивость приложений, которые люди пишут, меня очень заинтересовали. Когда ты можешь просто написать код, у тебя сидит команда из тысячи человек, условно говоря, пилит этот код, все это дело пушит и в итоге система автоматом все прогоняет, тестирует, смотрит, и тут же, если нужно, деплоит куда-то в тестовый кластер. И, если нужно, она же потом и разворачивает это в продакшн. Все бесшовно, все здорово, и тебе не нужно ждать специально обученного человека, который всем этим займется. Автоматизация на высшем уровне.
– С какими коммерческими проектами ты работал?
– Я начал с британского проекта lobbido.com – это доска объявлений, ориентированная на рынок Запада и стран ЕС. Автоматизировал процессы сборки бэкенда, фронта и разворачивание этого всего на серверах. Сначала все в Docker, такой простецкий вариант. Потом был крупный кластер для обучения моделей нейронных сетей, который я делал в университете в Центре проектной деятельности.
Следом был проект WETER венчурной крауд-инвестинговой компании, которая занимается разработкой перспективный зданий с автономным энергообеспечением. Там я занимался поднятием кластера.
Сначала мы поднимали кластер, апсайзили, потом даунсайзили, потом вообще была практика выпиливания всего, что было в кластере. Как со standalone-приложением, разворачивали отдельно на серверах, потому что бюджеты подрезали – кластер было держать невыгодно. Было очень интересно.
После этого был наш местный проект Sopki. Мы занимались разработкой, я пилил бэкенд, а также автоматизировал его сборку.
И еще был проект Plizi.fun – разработка новой социальной сети, который, к сожалению, не выстрелил. Но мне удалось поработать с высоконагрузочным тестированием. Там было облачное решение от Amazon – создание крупных кластерных решений, отказоустойчивых решений, обработка кучи миллионов запросов сообщений за секунды. Нам надо было запроектировать все так, чтобы, помимо того, что ты все это дело собираешь и разворачиваешь, оно не просто работало, а выдерживало огромную нагрузку.
Сейчас я преподаю в TAGES и параллельно работаю в компании SparklingTide с заказной разработкой, занимаюсь DevOps-инженерией.
– Какие у тебя планы на будущее?
– Я закончил 4 курс ДВФУ и поступил в магистратуру ИТМО, собираюсь переезжать в Питер. Я сдал все вступительные испытания на 100 из 100 баллов, которые там были. И все, теперь я радуюсь жизни!
Меня зачислили, и теперь я являюсь студентом Научно-исследовательского университета информационных технологий механики и оптики. Направление – программная инженерия. Я очень хотел поступить на технологии интернета вещей (IoT). Оно, ведь, как минимум еще лет десять, если не больше, будет в тренде. Оно будет очень перспективным, и я выбрал именно его.
Ключевые слова: DevOps-инженерия, доставка, отказоустойчивость, автоматизация, приложение, виртуальная машина, разработка
Подпишитесь на журнал Купите в Интернет-магазине
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|