Это изделие из нашей серии Обращения клиентов. Мы делимся историями о том, как люди используют npm на работе. Хотите поделиться своими мыслями? Напишите нам.

В. Привет! Можете ли вы назвать свое имя, чем вы занимаетесь и чем занимается ваша компания?

Люк Снирингер, Швеция: Наша компания - Google.

Как насчет этого: чем конкретно вы занимаетесь? Чем занимается ваша команда?

LS: Я отвечаю за создание и поддержку облачных клиентских библиотек на Python в Node.js.

Джастин Беквит, менеджер по продукту: По сути, у Google есть более 100 API и сервисов, которые мы предоставляем разработчикам, и для каждого из этих API и сервисов у нас есть набор библиотек, которые мы используем для доступа к ним. Люди из этой команды помогают создавать клиентские библиотеки. Некоторые библиотеки создаются автоматически, в то время как другие создаются вручную, но для каждой службы API, которая есть в Google, мы хотим иметь соответствующий модуль npm, который упрощает использование пользователями Node.js.

Как твой день?

JB: У меня отличный день! Мы на конференции Node, это лучшее время года. Вы можете видеть всех своих друзей и общаться с людьми, которых можете видеть только здесь, в Node.js Interactive и на Node Summit.

Сегодня мы анонсировали публичную бета-версию Firestore и, конечно же, опубликовали пакет npm. Cloud Firestore - это полностью управляемая база данных NoSQL, предназначенная для простого хранения и синхронизации данных приложений в глобальном масштабе.

Расскажите мне историю npm в вашей компании. Какая конкретная проблема была решена с помощью частных пакетов и организаций?

JB: Google - крупная компания, выпускающая множество продуктов, охватывающих множество различных областей, но мы хотим, чтобы все наши разработчики могли публиковать свои пакеты единым и последовательным образом. Что еще более важно, нам нужна какая-то организационная сеть для обслуживания этих пакетов. Например, если Али однажды публикует пакет, а завтра он покидает Google, нам нужно убедиться, что у нас есть соответствующая организация, чтобы несколько человек имели правильный доступ.

Али Шиех, Швеция: Мы используем функции npm Organization для управления нашими модулями, и у нас есть группы для управления каждой отдельной библиотекой, которая у нас есть.

JB: Мы также пользуемся некоторыми метриками, которые вы производите. Мы используем количество ежедневных установок для каждого модуля, чтобы измерить принятие наших библиотек и выяснить, как они работают не только по сравнению с другими модулями npm, но и с другими языками, которые мы поддерживаем на платформе.

Как вы это потребляете? Просто заходите на сайт?

JB: Нет, мы выполняем HTTP-вызов, получаем ответ и помещаем его в BigQuery. Затем мы анализируем эти данные в BigQuery и визуализируем их на наших информационных панелях.

Чем вам могут помочь частные пакеты и организации?

Дж.Б .: В Google каждый раз, когда мы выпускаем продукт, мы проходим четыре этапа выпуска, и первый - это то, что мы называем EAP, то есть «предварительная версия раннего доступа» для некоторых сто клиентов. Когда мы распространяем эти EAP, может быть сложно получить пакеты в руки клиентов. Мы не хотим раскрывать информацию о готовящемся продукте, потому что мы еще не анонсировали его, но нам все еще нужна проверка и отзывы людей о том, что мы создали правильный API и у нас есть правильные вещи. В дальнейшем мы хотели бы использовать частные пакеты именно таким образом.

Какие улучшения с нашей стороны вы бы хотели увидеть? Или что-то, что вы хотели бы увидеть в будущем?

LS: Что-то, что нам было бы интересно увидеть в разработке npm, - это возможность сделать определенные версии общедоступного пакета частными. Допустим, у нас есть 1.0, а есть версия 2.0, разрабатываемая в частном порядке, которая является EAP ... Я не думаю, что у вас еще есть концепция частной версии общедоступного пакета.

Наряду с этим улучшено управление конфиденциальностью пакетов. Управление EAP для пяти человек сильно отличается от управления EAP для 300 человек. Еще одна вещь, которая была бы хороша, - это возможность сразу предоставить другой npm Org доступ к модулю.

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

JB: До сегодняшнего утра вы хотите знать, каким был бы мой первый ответ?

2FA?

JB: 2FA! да.

LS: Также, пожалуйста, Fido U2F. Это стандарт ключей безопасности.

Вы бы порекомендовали другой организации использовать npm Orgs?

ДБ: Ну да, и еще, это провокационный вопрос ... есть ли альтернатива?

LS: Я собирался сказать; ты единственная игра в городе.

Есть ли еще что-нибудь интересное, что вы хотели бы продвигать?

JB: Запуск Firestore, конечно, но другое дело - агент Google Stackdriver Debugger. Мы выпустили эту службу под названием Stackdriver Debugger, которая позволяет выполнять пассивную отладку в производственной среде. Вы отправляете свой код в App Engine, Kubernetes или Compute Engine. Пока он работает, вы можете устанавливать точки останова, и при попадании в этот код он сделает снимок и визуализирует его, не блокируя запрос. Это пассивный производственный отладчик.

Вы только что "еще кое-что" о нас добавили? "Да еще, посмотрите на эту удивительную вещь"!

ДБ: Вообще-то, это своего рода темная магия. Это немного смешно.