Не так давно, при работе над проектом, о котором речь шла в предыдущих статьях, я столкнулся с таким чудом, о существовании которого даже не подозревал. Решение этого "чуда" буржуйской техники рождалось в течение полутора суток почти постоянной работы.
Спустя еще пару дней я получил жалобы от пользователей Kazapa на ту же проблему и в бирже. Здесь уже, конечно, решение было внедрено буквально за минуту, но после этих двух ситуаций я зарекся пользоваться CDN'ами от Google, Яндекса и иже с ними.
Именно об этом я бы хотел поговорить сегодня.
Читая, в свое время, забугорных программистов и веб-разработчиков, я довольно часто обнаруживал рекомендации от них по поводу того, что javascript и изображения лучше размещать где-то за пределами своего сервера. Наиболее предпочтительным у них описывалось размещение этих частичек сайта на CDN'ах Google, Yahoo, Amazon и т.д.
Решил доверчивый я последовать их примеру, и большую часть яваскриптов переложил на плечи сильного и отважного гугля. Было все нормально (именно нормально, а не хорошо) - пользователи периодически жаловались мне на то, что у них переставала работать та или иная часть сайтов. Вот просто так - БАЦ! и не грузится. Вначале я не придавал этому особого внимания, списывая все на криворукость пользователей, будучи уверен в том, что мои перлы не могут ни с того, ни с сего перестать работать. Затем несколько раз я и сам сталкивался с подобными проблемами, но продолжал списывать проблему... на каналы - я ведь не криворук :)
И вот, проблема стала повторяться все чаще и чаще, когда я ежедневно занимался разработкой своего долгостроя. При этом ужасно замедлялась загрузка страниц, периодически отказывали элементы управления или эффекты. После проверки различными Webo и PageSpeed я понял одну страшнейшую вещь. CDN'ы, об устойчивости к нагрузкам и загрузкам которых так много написано в сети, подвержены все тем же, знакомым каждому, падениям: каналов, серверов, ДНСов и т.д.
Львиную долю времени, затрачиваемого браузерами на загрузку страниц проекта, отнимала загрузка яваскриптов с CDNов гугла. Перенеся их на Яндекс, я все еще не был в восторге - особых изменений не наблюдалось. Снова падения, снова проблемы. Помимо всего прочего, при моих проверках скрипты отдавались бес сжатия, т.е. как есть, в то время как большинство браузеров на сегодня очень хорошо относятся к GZIP и другим методам сжатия.
Так вот, о чем я подумал. Сегодня траффик хостинговых компаний не столь дорог, как лет эдак 5 назад, а часто и вовсе ограничен лишь шириной канала. Каналы довольно широкие и доступные. Так зачем тратить свои силы и нервы на обнаружение таких проблем, как недоступность CDN'ов, если можно просто отдавать эти же скрипты со своего сервера?
Ведь если упадет ваш сайт, то и загрузка скриптов с CDN'a не поможет - незачем их грузить будет. Да и объем загружаемых скриптов можно уменьшить, установив на свой сайт какой-нибудь кешер-упаковщик для этих файлов - и пользователю удобнее, и сервер разгрузится.
Что думаете Вы, мой уважаемый читатель, о моей мысли в этом плане?
И, кстати, простите меня - засранца - за столь позднее поздравление, но все же,
С НОВЫМ ГОДОМ ВАС, ТОВАРИЩИ! Пусть год пришедший принесет вам много-много удачи, счастья и радостных улыбок, а работа всегда будет только в удовольствие себе!