Jsdelivr — Передовой, Открытый И Общий Cdn

Как разработчик, вы, возможно, знаете о Библиотеки, размещенные в Google .

Google предоставляет быстрый и простой способ включить 12 самых популярных библиотек JavaScript на ваши веб-сайты.

Но что, если вы веб-мастер и хотите воспользоваться преимуществами быстрых CDN при использовании в других, менее популярных проектах? Или вы разработчик и хотите сделать свой проект более удобным в использовании и более доступным для других пользователей.

Вот где это вступает в игру jsDelivr .

jsDelivr — это бесплатный CDN с открытым исходным кодом, созданный в помощь разработчикам и веб-мастерам.

Он не имеет ограничений по популярности и поддерживает все типы файлов, включая библиотеки JavaScript, плагины jQuery, платформы CSS, шрифты и многое другое.



Добавление библиотеки

Чтобы добавить новую библиотеку или обновить существующую, разработчику достаточно клонировать нашу Репозиторий на Гитхабе и применить те модификации, которые он считает необходимыми.

Когда модератор просматривает запрос на включение и объединяет его с основной веткой, файлы сразу становятся доступны на Официальный веб-сайт .

Если модератор онлайн, одобрение займет не более 20 минут, в противном случае может пройти до 10 часов, пока кто-нибудь не выйдет онлайн.

Однако как только наше приложение автоматического обновления будет готово, время проверки сократится.



Надежность

Что действительно делает проект передовым? Идея jsDelivr заключалась не в создании еще одного CDN, а в предоставлении очень быстрой и надежной инфраструктуры, которой разработчики и веб-мастера могли бы доверять и которую могли бы использовать.

Любой веб-сайт, большой или маленький, может использовать его без каких-либо проблем.

Наш сервис чрезвычайно надежен и не имеет ограничений по ширине канала.

Длительное время отклика, тайм-ауты и отсутствие обслуживания невыносимы, поэтому мы разработали уникальную систему для решения этих проблем и предлагаем продукт, которому могут позавидовать даже CDN корпоративного уровня.

Нашими главными приоритетами являются время безотказной работы и производительность.

Мы постоянно следим за всем и всегда ищем новые технологии и провайдеров, которые могли бы улучшить нашу CDN в будущем.



Инфраструктура



jsDelivr — передовой, открытый и общий CDN

В отличие от своих конкурентов, jsDelivr использует уникальную инфраструктуру Multi-CDN, чтобы обеспечить максимально возможную производительность и время безотказной работы.

Его основная магистральная сеть построена на основе сетей CDN, предоставляемых МаксКДН И ОблакоВспышка .

Мы также используем специализированные выделенные серверы там, где сети CDN практически отсутствуют или практически отсутствуют. В общей сложности на данный момент это означает 42 точки присутствия по всему миру.

В будущем мы планируем расширить количество размещений, чтобы обеспечить высокие показатели даже в менее популярных странах.

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

Для системы балансировки нагрузки мы используем услуги, предоставляемые Цедексис .

Одной из их основных особенностей является то, что они собирают данные о производительности в режиме реального времени от всех основных провайдеров CDN. Каждый день до 1,3 миллиарда тестов производительности RUM (RUM — Real User Monitoring/Measurements — измерения, проводимые при посещении веб-сайтов реальными пользователями, а не роботами) обрабатываются и предоставляются всем пользователям Cedexis.

Измерение производительности

Чтобы собрать данные из этих тестов RUM, они развернули собственный код JavaScript на тысячах веб-сайтов.

Каждый посетитель любого из этих веб-сайтов запускает выполнение этого кода, и пока они просматривают веб-сайт, в фоновом режиме начинается тестирование различных провайдеров CDN. Тестирование не влияет на качество серфинга и полностью прозрачно для пользователя.

Вы можете увидеть, как это работает, посетив наш Веб-сайт открыв панель разработчика (F12) и перейдя на вкладку «Сеть».

Прелесть этих тестов в том, что они не синтетические.

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

  • показатели производительности для каждого провайдера
  • Метрики доступности для каждого провайдера
  • Информация о браузере
  • Первые три октета IP-адреса пользователя
Теперь у нас есть вся информация, которую мы можем использовать в нашем интеллектуальном алгоритме балансировки нагрузки.

Каждый пользователь получает уникальный ответ в зависимости от его местоположения и поставщика услуг Интернета, которым он пользуется.

Каждый раз, когда пользователь решает загрузить файл через jsDelivr, наш алгоритм собирает данные о доступности и производительности за последние несколько минут, а затем находит лучшего поставщика для этого пользователя на данный момент. И все это за несколько миллисекунд. Прежде всего, он следит за тем, чтобы все провайдеры были доступны.

Для этого он использует метрики доступности RUM и синтетический тест, который каждую минуту проверяет работоспособность каждого провайдера.

Затем интернет-провайдеры ранжируются по производительности относительно интернет-провайдера для данного пользователя и местоположения.

Как только будет найден самый быстрый провайдер, пользователю будет возвращено его имя.

Например, 2 пользователя разных лондонских интернет-провайдеров могут получить 2 разных ответа, поскольку их интернет-провайдеры имеют разные маршруты и разную производительность по сравнению с провайдерами CDN. Эта интеллектуальная система гарантирует максимальное время безотказной работы и высокую скорость загрузки для всех пользователей.

Если провайдер станет недоступен, jsDelivr не заметит никаких проблем и сразу же начнет использовать другого провайдера.

Этот алгоритм также мгновенно реагирует на снижение производительности.

Например, если провайдер CDN подвергся DDoS-атаке в Европе и время его ответа увеличивается, jsDelivr заметит проблему и просто прекратит использовать этого провайдера в Европе, но по-прежнему будет соблюдать его для пользователей в США и других местах, которые не подвергаются атаке.

.

Не полагайтесь на одну единственную CDN в плане надежности и скорости.

Все может выйти из строя, но вероятность одновременного выхода из строя двух CDN и нескольких серверов очень мала.

Вот почему jsDelivr — лучшее решение для любого веб-сайта.

Неважно, насколько он велик.

Я также должен напомнить вам, что MaxCDN, CloudFlare, Cedexis и другие компании поддержите jsDelivr бесплатно.

Приятно видеть, что есть организации, которые могут помочь проектам с открытым исходным кодом и построить быстрый и бесплатный Интернет.

Расширенные возможности

jsDelivr также поддерживает некоторые интересные и очень полезные функции, такие как:

Альтернативные версии

Вместо использования уникального URL-адреса для каждой версии для загрузки проекта с помощью jsDelivr вы можете использовать псевдонимы.

Возьмем, к примеру, проект Абаасо.

Последняя версия на данный момент — 3.10.50, и вы можете загрузить ее как обычно, указав точную версию в своем URL-адресе.

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

  
  
  
  
  
   

//cdn.jsDelivr.net/abaaso/3.10/abaaso.min.js

Используя версию 3.10, вы указываете jsDelivr загрузить последнюю версию проекта из ветки 3.10, в данном случае это 3.10.50. Это лучшее решение для большинства авторов, поскольку они могут загрузить последнюю минорную версию, не беспокоясь о серьезных изменениях, которые могут сломать их сайт. Конечно, вы можете скачать последнюю версию ветки v3, используя следующий URL:

//cdn.jsDelivr.net/abaaso/3/abaaso.min.js

А если по какой-то причине вам всегда необходимо скачать последнюю доступную версию, вы можете использовать:

//cdn.jsDelivr.net/abaaso/latest/abaaso.min.js

Используя «последнюю версию», вы указываете серверу загрузить последнюю имеющуюся у него версию.

Конечно, это опасно и рано или поздно может привести к сбою вашего сайта.

Поэтому используйте эту функцию с осторожностью.



Загрузка нескольких файлов в одном HTTP-запросе

jsDelivr — первая CDN, поддерживающая такую функциональность.

Вы можете загрузить несколько файлов с помощью одного HTTP-запроса.

Это похоже на объединение и сжатие файлов JavaScript на вашем собственном сервере, только на этот раз они кэшируются в огромной умной сети jsDelivr. Все, что вам нужно сделать, это создать собственный URL-адрес с проектами и файлами, которые вы хотите объединить, и их версиями, если это необходимо.

Например, чтобы загрузить последнюю версию проектов abaaso, ace и alyui, вы используете следующий синтаксис:

//cdn.jsDelivr.net/g/abaaso,ace,alloyui

Имейте в виду, что загрузка последней версии не рекомендуется и рано или поздно приведет к сбою вашего сайта.

Вот почему вы должны указывать точные версии или использовать псевдонимы версий:

//cdn.jsDelivr.net/g/[email protected],[email protected]

Итак, [email protected] загрузит 2.1.0, а [email protected] загрузит 1.2.14. Но по приведенной выше ссылке можно загрузить только основные файлы каждого проекта и ничего больше.

Если вы хотите загрузить несколько файлов одного проекта, вы можете сделать следующее:

//cdn.jsDelivr.net/g/[email protected],[email protected](angular.min.js+angular-resource.min.js+angular-animate.min.js+angular-cookies.min.js+angular-route.min.js+angular-sanitize.min.js)

Если вы хотите загрузить CSS, выберите файлы CSS в указанном выше формате.

Если все файлы в группе URL-адресов имеют расширение .

css, сервер автоматически ответит строкой «Content-Type: text/css» в HTTP-заголовке.

Во всех остальных случаях (для URL-адресов /g/) используется строка «Content-Type: application/javascript».

Далее вы просто включаете URL-адрес на свой веб-сайт, и все готово.

Меньше DNS-запросов, меньше TCP-соединений, меньше HTTP-запросов = более быстрый веб-сайт. Вы даже можете использовать эту функцию и предложить своим пользователям конструктор, который позволит им генерировать URL-адреса с необходимыми им модулями, а затем загружать их с помощью быстрого CDN.

Реальный API

jsDelivr полностью функционален API , который разработчики могут использовать на своих веб-сайтах для создания пользовательских модулей и всего остального, что вы только можете себе представить.

Вы можете запросить именно то, что вам нужно, используя наш API, не загружая огромный пакет JSON. И он также поддерживает cdnjs и Google. Таким образом, у разработчиков есть все необходимое для создания своих приложений.



Автоматические обновления

jsDelivr libgrabber — это утилита, которая готовится к запуску на наших серверах и сможет автоматически обновлять все размещенные проекты, если эта функция настроена.

Самое главное, что авторам не нужно ничего менять в своих репозиториях.

Все изменения производятся на стороне jsDelivr. Все, что вам нужно, — это создать файл update.json внутри вашего проекта с некоторой базовой информацией, которую вы хотите автоматически обновлять в репозитории jsDelivr. Этот файл также поддерживает множество источников для новых версий.

Такие как, например, npm, Bower и непосредственно репозитории Github. Функционал пока находится в разработке, но его планируется запустить в ближайшее время.



Помогите нам – попробуйте это!

jsDelivr — очень интересный проект, который мне нравится развивать и улучшать.

Это также во многом зависит от помощь от сообщества .

Рассмотрите возможность использования его на своих веб-сайтах и размещайте на нем свои проекты.

А если вы заинтересованы в помощи нам, мы всегда можем принять любую помощь, просто присоединяйтесь к разговору на GitHub .

Не стесняйтесь оставлять свои комментарии и задавать мне любые вопросы, которые могут у вас возникнуть.

Спасибо Теги: #JavaScript #cdn #jsdelivr #с открытым исходным кодом #Разработка веб-сайтов #JavaScript

Вместе с данным постом часто просматривают: