Как GoDaddy развернула свой сайт с ребрендингом за 1 час с помощью Node.js и других материалов от Чарли Роббинса

Чарли Роббинс (он же @indexzero) был одним из первых пользователей Node.js. В настоящее время он работает техническим директором по платформе UX в GoDaddy, а также является членом совета директоров Node.js. Он и его команда используют Node.js для клиентской и серверной работы, а недавно за час развернули глобальный ребрендинг своего сайта благодаря помощи Node.js.

В этой корпоративной беседе (которую вы можете просмотреть на YouTube здесь) Чарли рассказывает Майкулу о том, как GoDaddy использует Node.js, почему он ввел термин изоморфный JavaScript, а также о том, что области, которые его действительно волнуют в связи с будущим Node.js (подсказка: рабочая группа по отслеживанию, Node.js Live и интерфейсные операции).

Майкал: Добро пожаловать в корпоративные обсуждения с Фондом Node.js. Ко мне присоединился Чарли Роббинс, технический директор по платформе UX в GoDaddy, а также член совета директоров Node.js.

Давай сразу начнем. Расскажи мне немного о своей роли в GoDaddy и о своей истории с Node.js в целом.

Чарли: Я использую Node.js вскоре после выступления Райана Даля на JSConf в 2009 году - примерно в декабре 2009 года. С тех пор я использую его. Думаю, что с точки зрения продолжительности использования я один из самых давних пользователей.

В GoDaddy я руковожу командой разработчиков платформы UX. Мы отвечаем за всю сквозную инфраструктуру пользовательского интерфейса. Если вы являетесь пользователем GoDaddy, вы могли видеть, что недавно мы провели довольно большой ребрендинг сайта и развернули его примерно за час. Все прошло очень гладко, и во многом благодаря Node.js.

Майкл: Не могли бы вы рассказать нам немного о своей роли в Фонде? Как это произошло?

Чарли: Покупка GoDaddy Nodejitsu была действительно представителем GoDaddy, желающего участвовать во многих сообществах с открытым исходным кодом, в том числе Node.js. Работая вместе, мы решили профинансировать фонд Node.js и сделали это на золотом уровне. Для тех, кто не очень хорошо разбирается в том, как работает Фонд, каждый платиновый член получает место в правлении. Для каждых 3 золотых членов есть выборы, чтобы избрать члена правления, который будет представлять этих членов, и я думаю, что место в совете достается каждые 10 серебряных членов. Правильно, Майкл?

Майкал: Совершенно верно. Есть также два места в совете директоров, которые достаются членам сообщества - они избираются сообществом.

Чарли: Меня выбрали другие золотые компании-участники, NodeSource и Modulus. Помимо того, что я сижу в совете директоров, я вхожу в финансовый комитет. Я смотрю на бюджеты и убеждаюсь, что у нас все хорошо. У Фонда все отлично. Я с нетерпением жду того, что мы сможем сделать в 2016 и 2017 годах.

Майкл: Как давно GoDaddy использует Node.js? Я знаю, что вы сказали, что они приобрели вашу компанию, и вы вошли в нее, но использовали ли они Node.js до этого? Или это было в основном после того, как вы пришли?

Чарли: Они получили это. Прямо перед приобретением Nodejitsu они использовали Node.js в одном из своих первых крупных продуктов. Этот продукт был основной частью их продукта для создания веб-сайтов. Весь этот продукт теперь основан на Node.js и React.

История GoDaddy перекликается с историей многих других компаний, использующих Node.js, а именно: если они не запускали его в производственной среде, они, вероятно, использовали Node.js как часть вашей системы сборки внешнего интерфейса. Таким образом, это стало необходимым с 2013 года.

Очевидно, до моего пребывания в должности прошло довольно много времени, но, занимаясь антропологией кода на «Github Enterprise» за последние пару лет, я отслеживал коммиты и читал вещи, и я думаю, что это началось в 2013 году.

Майкл: Верно. Теперь вы используете React, который также является цепочкой узлов.

Чарли: Иногда мне интересно, продвинулись ли мы вперед или назад, когда дело касается транспиляторов. Думаю, это отдельный разговор.

Майкл: Вы когда-нибудь придумали термин, имеющий отношение к этому?

Чарли: Я придумал термин так, как Джордж Лукас сказал, что роботы существовали в Звездных войнах. Я просто объявил об этом, и кто-то решил зацепиться за это и использовать все время. Если вы вернетесь и посмотрите на ту запись в блоге 2011 года, то это сноска во введении, и почему-то она стала повсеместно используемой фразой изоморфный JavaScript. Если ты слушаешь, можешь винить меня, и я не уверен, извиняюсь ли. Я думаю, что да, но я не уверен.

Майкл: Какое влияние Node.js оказал на вашу компанию и вашу команду и как все устроено внутри?

Чарли: Это был отличный уравнитель для многих вещей. До Node.js в первую очередь был .net, а также переход на Java. У меня есть опыт работы в Microsoft; Я начал работать там 10 лет назад - почти сразу после школы. Microsoft делает большую работу по поддержке разработчиков .net. Последние пару лет они сделали .net открытым исходным кодом, и это здорово. Следуя по стопам Мигеля де Икаса и Mono Project.

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

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

Майкл: Кроме того, в результате этих компонентов намного больше, верно? Потому что это побуждает сообщество создавать эти вещи. В то время как, если бы он не поставлялся со средой выполнения .net, вы вряд ли сможете найти его в экосистеме. В то время как в Node.js он определенно существует в экосистеме. Их, наверное, шесть. Вам просто нужно выяснить, какой из них использовать.

Чарли: Верно. Этот процесс оценки - это навык, которому нужно научиться. Это не что-то врожденное для инженерии. Было забавно наблюдать, как этот навык развивается, а также помогает людям развивать его быстрее, основываясь на знаниях и опыте, которые я получил и моя команда приобрела во время работы с Nodejitsu.

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

Чарли: Экономист сказал бы, что предельная склонность к переходу увеличилась.

Такого еще было в большом количестве, верно… Предыдущая версия конструктора веб-сайтов была серверной частью .net, но по-прежнему являлась клиентской частью JavaScript, потому что это было очень большое сложное нокаут-приложение на основе JS. Те же инженеры .net, которые писали внутренний код, писали внешний код JavaScript. В этой команде было несколько инженеров, которые не хотели писать JavaScript. Теперь каждый инженер в этой команде делает и то, и другое. Я бы сказал, что он перешел от «да, некоторые инженеры были полноценными инженерами» до «большинство инженеров были полноценными инженерами».

Майкл: Интересно. Вы давно знакомы с Node.js. У вас огромная история с этим проектом. Очевидно проект изменился. Фонд Node.js многое изменил. Что вам больше всего нравится в их будущем на год или два?

Чарли: То, что меня волнует в Node.js, решается в основном рабочими группами. Я очень воодушевлен рабочей группой по отслеживанию и тем, что из этого выйдет, чтобы построить инструментальную систему с открытым исходным кодом для эко-инструментов. Я думаю, что все это проприетарно опасно, потому что стирает грань между узлом и не узлом, верно?

Мы часто видели это с помощью зондов detrace, когда в основном работали на Solaris и SmartOS. Попасть туда, например, зондирования Linux было непросто. Я знаю, что эта работа сейчас ведется, и это меня невероятно волнует. Это возможно только в Node in the Foundation. Итак, слава Фонду.

Другие вещи, которые меня волнуют, - это рабочая группа по инклюзивности и события Node.js Live. Мне действительно интересно посмотреть, как выглядят сообщества Node.js в странах, где мало английского. Например, в таких местах, как Китай, где большинство инженеров по-прежнему в основном говорят по-китайски. Кроссоверов не так много. Есть узел C, где все это общение происходит на китайском языке, и я не хочу говорить обособленно, потому что это предполагает, что это сделано намеренно, а просто отделено из-за языкового барьера. Это естественный барьер; в этом нет ничего плохого. Я рад видеть, как эти препятствия начинают разрушаться, а события развиваются.

В GoDaddy меня особенно радует выпуск некоторых вещей, над которыми мы работаем. Мы довольно широко использовали Cassandra. Когда мы оценивали Cassandra, более высокого уровня ORM, библиотек типов ODM для Cassandra, которые использовали бы все его нюансы и возможности, на самом деле не было. Итак, мы работали над одним из них около 8 месяцев. Сообщение об этом будет опубликовано на следующей неделе в инженерном блоге GoDaddy (вот оно, если вам интересно).

Кроме того, мы проделали много работы над интерфейсными операциями, которые вы выполняете после публикации чего-либо в npm или в общедоступном реестре. Это то, над чем моя команда очень много работала последние 6 месяцев. Я с нетерпением жду возможности получить кое-что из этого и поделиться тем, что мы узнали в ближайшие месяцы.

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

Чарли: Ага. Я очень хочу поговорить с Адамом Кристианом о возобновлении этой конференции, потому что это должно произойти.

Майкл: Определенно. Что ж, это был отличный разговор с вами. Было действительно интересно услышать некоторые из ваших мыслей, истории и всего остального. Спасибо, что пришли.