Рубрика:
Разработка /
Гость номера
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Игорь Сысоев: «Мне нравится работать на стыке профессий системного администратора и программиста!»
|
Игорь Сысоев, родился и вырос в Алма-Ате, Казахская ССР, в семье военного. В 1994 году окончил МГТУ им. Баумана, работал системным администратором в нефтегазовой компании, затем ведущим системным администратором в Рамблере. Одновременно занимался созданием высокопроизводительного веб-сервера nginx. В 2011 году основал компанию Nginx, Inc., призванную развивать и продвигать созданный им продукт. |
Игорь Сысоев родился и вырос в Алма-Ате, Казахская ССР, в семье военного. В 1994 году окончил МГТУ им. Баумана, работал системным администратором в нефтегазовой компании, затем ведущим системным администратором в Рамблере. Одновременно занимался созданием высокопроизводительного веб-сервера nginx. В 2011 году основал компанию Nginx, Inc., призванную развивать и продвигать созданный им продукт.
Начало
– Когда и как к вам пришло понимание, что для решения целого ряда задач нельзя обойтись модернизацией Apache и надо создать нечто другое?
– В 2001 году в Рамблере. На тот момент существовали более масштабируемые серверы – boa, thttpd, mathopd, но все они были слишком простые и со скромными возможностями настройки, работали только со статическими файлами и не умели проксировать. Кроме того, они не использовали многопроцессорность, а на тот момент двухпроцессорные системы уже стали вполне распространенными. Весной 2002 году в Рамблер переехал сайт mult.ru, мультики про Масяню. На нем было особенно хорошо видно, что Apache неэффективно использует ресурсы компьютера.
– И… разрабатываемый вами продукт по значительности превзошел масштаб одной компании, даже такой, как Рамблер!
– Судя по записям на моем сайте, уже весной 2006 года nginx использовался на 10% сайтов Рунета. Точно помню, как меня удивило, что в Google Online Security Blog написали, что, по их данным, nginx используется на 4% сайтов всего Интернета.
– Эдсгер Дейкстра говорил, что студенты, ранее изучавшие Бейсик, как потенциальные программисты умственно изувечены без надежды на восстановление. Однако программист Игорь Сысоев именно с этого языка и начал.
– Я не знаю, что именно Дейкстре не нравилось в Бейсике, возможно, это были оператор GOTO и отсутствие функций. На таком языке действительно сложно делать большой проект. Но лично я не против оправданного применения GOTO. Не исключаю, что это вызвано именно полученным умственным увечьем.
– С изучения какого языка вы посоветуете начать человеку, приступающему к освоению программирования?
– Наверное, стоит начинать с простого Паскаля, а потом переходить к объектно-ориентированному и функциональному программированию. На мой взгляд, важно также иметь представление об ассемблере, устройстве компьютера и операционных системах. Программист не должен писать программу на Паскале, которая будет работать на сферическом коне в вакууме. Например, в моей практике был случай, когда программист считал, что использование неинициализированных переменных в PHP ускоряет работу программы, и его, видимо, не волновало, что на каждую такую переменную выдается предупреждение, которое требует на два-три порядка больше процессорного времени, чем инициализация переменной.
– Вы пришли в Рамблер на должность системного администратора будучи состоявшимся программистом, потом вновь вернулись в разработку. Как, по вашему мнению, соотносятся эти профессии?
– Когда я начал работать в Рамблере, я не был состоявшимся программистом, я был опытным системным администратором, который еще немного программирует. У меня было три относительно крупных и законченных проекта, написанных на TurboPascal под CP/M на Z80, на ассемблере 8086 и на Perl, но профессиональным программистом я себя не считал. Мне нравится работать на стыке этих профессий – администрирование может быть рутинным, но рутину часто можно автоматизировать с помощью программирования.
Технологии
– Все ли Вас устраивает в существующей архитектуре nginx?
– Нет, далеко не все, и именно поэтому я работаю над новой архитектурой.
– Когда nginx только набирал популярность, распространенной схемой работы была установка его в связке с Apache в качестве фронтенда. Сейчас все чаще можно наблюдать nginx, использующий FastCGI, работающий вполне самостоятельно. Как вы считаете, насколько он способен обеспечить работу современных веб-приложений без посторонней помощи?
– Вполне возможно. Например, популярная платформа блогов WordPress.com использует FastCGI.
– Три года назад вы писали, что рассматривали возможность встроить javascript в nginx с помощью Google V8 Javascript Engine, и объясняли, почему отказались от этой идеи. С тех пор как javascript , так и V8 стремительно набирают популярность. Для nginx в этом плане что-нибудь изменилось?
– Пока ничего, но скоро изменится.
– В nginx 1.3 появилась поддержка протокола WebSockets. Как вы считаете, насколько эта технология сейчас готова к использованию? Насколько востребована? Почему реализация WebSockets (например, в node.js) обычно вызывает проблемы (утечки памяти и т.д.)?
– Я думаю, это не утечки памяти, а проблемы со сборкой мусора. В принципе этому могут быть подвержены и другие приложения с долгоживущими соединениями из-за особенностей работы с памятью.
– Какие новые технологии ожидаются в следующих версиях nginx?
– Поддержка трэдов, динамически подгружаемые модули.
– Не боитесь, что легкий и быстрый nginx с реализацией всех «фич» в конце концов превратится в неповоротливого монстра?
– Не боюсь.
Разработка
– Долгое время разработкой nginx занимались вы один, потом с Максимом Дуниным. Как идет разработка сейчас? Сколько человек в ней заняты постоянно и на каких ролях. Как происходит взаимодействие с сообществом пользователей?
– Сейчас над nginx трудится небольшой коллектив талантливых разработчиков. Кроме собственно программистов, в проекте есть человек, отвечающий за QA, системные инженеры, технический писатель. Пользуясь случаем, приглашаю в коллектив программистов с хорошим знанием языка C и опытом разработки для Unix-like-систем, желающих присоединиться к проекту.
– Не страшно ли было отдавать процесс в «чужие» руки?
– Во-первых, не страшно. Во-вторых, руки не чужие.
– Какие вы используете методы организации разработки? Какие методики, инструменты?
– Набор инструментов традиционен для unix: vim, gcc, clang, make, gdb, svn, hg. Кроме этого, используем ряд вспомогательных систем для анализа производительности, багтрекинга, планирования задач. Никакую специальную методику разработки мы не используем.
Программист как коммерсант
– Когда вы приняли решение, что nginx может быть коммерческим продуктом?
– Окончательное понимание коммерческих перспектив пришло в 2011 году, когда я решил создать компанию.
– Каково вам, состоявшемуся в своей профессии разработчику, осваивать роль бизнесмена?
– Я по-прежнему не бизнесмен и не собираюсь им становиться. Хотя и внимательно слежу за тем, что происходит с бизнесом компании, непосредственно вопросами бизнеса не занимаюсь.
– Заработать на Open Source-продукте – это миф или реальность?
– Мы как раз в процессе поиска ответа на этот вопрос.
– Какие способы монетизации nginx дают больше всего финансовой отдачи? Будут ли новые?
– Наш приоритет – развитие платных продуктов на базе Open Source nginx. Кроме этого, мы оказываем услуги профессиональной поддержки, если задачи заказчика связаны с nginx.
Российские программисты
– Есть такой миф: российские программисты самые лучшие, они востребованы ведущими корпорациями и все как один – хакеры, для которых взломать любой сервер Пентагона – плевое дело. С другой стороны, имеется и противоположное мнение, ставящее наших разработчиков на один уровень с их индийскими и китайскими коллегами. Что вы думаете по этому поводу?
– Я не думаю, что российские программисты уникальны. Хороших индийских и китайских программистов тоже много, просто самих индийцев и китайцев в шесть-восемь раз больше, чем нас, поэтому и посредственных программистов у них больше.
Hihgload, что дальше?
– nginx рожден и востребован эпохой высоких нагрузок. Вообще Highload многое изменил в подходах и технологиях. Как вы считаете, что нас ждет дальше? Какие, по вашему мнению, глобальные и не очень изменения ждут мир информационных технологий в будущем?
– Думаю, все глобальные изменения будут связаны с совершенствованием мобильных устройств.
– Какие из уже существующих технологий наиболее перспективны?
– Я думаю, javascript и HTML5.
Чуть в сторону
– Понятно, что настоящий программист живет своей профессией, у вас еще и заботы о бизнесе. Остается ли свободное время? Как его проводите? Хобби, увлечения?
– Читаю книги, сайты и блоги по истории, биологии, социологии и экономике. Смотрю телевизор, обычно каналы «Моя Планета», «Культура», «Дискавери», «Энимал планет» и тому подобное. Люблю гулять по Измайловскому парку. Зимой катаюсь в Австрии на горных лыжах, летом иногда учусь виндсерфингу.
Будущее
– Может ли в наше время разработчик-одиночка создать что-нибудь столь же значительное, как nginx, или в мире веб-разработки «все уже написано»?
– Конечно. Более того, сейчас это сделать проще, чем 10 лет назад, из-за совершенствования средств разработки, как программных, так и аппаратных.
– Какими качествами он должен обладать?
– Терпением.
Беседовал Кирилл Сухов
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|