Сегодня я расскажу об одном предприятии и его достаточно убогом сайте. Имя предприятия называть не буду, но общий смысл попробую донести без потерь.
Сначала предыстория (как всегда).
Сначала предыстория (как всегда).
Когда в мексиканском заливе случился прорыв скважины государственные сайты в пострадавших штатах начали появляться как грибы, т.е. буквально на следующий день, когда стало понятно, что наступила глобальная задница, у каждого штата в зоне экологической катастрофы появился relief-сайт, на котором с первого дня без тендеров, без длительных споров, что надо и что не надо публиковать, сразу же был приемлемый дизайн, верстка, лента новостей, этот сайт с первых же дней принял на себя дикую нагрузку, потому что его показали по ТВ, о нем рассказали на сайте Белого дома и т.д. и нагрузка становилась все больше, потому что через неделю трафик начал давать гугл, яху и прочие. С первого же дня сайты были интергрированы со всеми социальными сетями, фейсбуком, твиттером, социальными закладками, на сайтах публиковались ролики из ютуба.
Так случилось, что у меня был выделен вполне определенный интервал времени, который я должен был посвятить именно изучению американских сайтов. Поэтому я их шерстил в хвост и в гриву исключительно ради изучения самого феномена — государственные сайты в развитом государстве. За время изучения американских сайтов я многое узнал, осталось применять на практике.
Так случилось, что у меня был выделен вполне определенный интервал времени, который я должен был посвятить именно изучению американских сайтов. Поэтому я их шерстил в хвост и в гриву исключительно ради изучения самого феномена — государственные сайты в развитом государстве. За время изучения американских сайтов я многое узнал, осталось применять на практике.
Вернувшись в нашу реальность, я вспомнил о сайте предприятия, услугами которого хотя бы раз в жизни воспользовался взрослый украинец среднего и высшего достатка.
В прошлом году, благодаря стечению обстоятельств этот сайт лег. Обстоятельства сложились так, что сайт лег из-за нагрузки, схожей с хабраэффектом. Вернее, до хабраэффекта там было далеко. Вместо обычных 9000 хостов в день на сайт пришло 15000 и сайт начал тупить, каждый в сердцах нажал F5, думая, что тупит его браузер. Но тупил сайт, который получил еще один дополнительный запрос от 15000 человек. И сайт слег. Наглухо, намертво, на долго.
В прошлом году, благодаря стечению обстоятельств этот сайт лег. Обстоятельства сложились так, что сайт лег из-за нагрузки, схожей с хабраэффектом. Вернее, до хабраэффекта там было далеко. Вместо обычных 9000 хостов в день на сайт пришло 15000 и сайт начал тупить, каждый в сердцах нажал F5, думая, что тупит его браузер. Но тупил сайт, который получил еще один дополнительный запрос от 15000 человек. И сайт слег. Наглухо, намертво, на долго.
Люди, которые должны были получить по голове за плохую настройку сайта, по голове не получили, а получили деньги на покупку второго сервера. Пока шла защита расходов на второй сервер, наплыв посетителей мог бы повториться в любой момент, слава богу, что не повторился.
Совершенно случайным образом после всей этой истории удалось сделать аудит всей системы, в которую уже входил второй сервер. Вывод был неутешительный, и он был доказан стресс-тестом рабочей системы. При повторении событий зимы прошлого года слег бы уже не один, а два сервера причем, они бы слегли при том уровне посещаемости, которую влет отрабатывает любой другой сервер без каких-либо супер-настроек. 13000-15000 хостов в день по 10 хитов на один хост на одном сервере — это же детский сад, скажет любой системный администратор и будет прав.
Но деньги уже за сервер выплачены, сервер поставлен на колокейшен, и надо было как-то исправлять ситуацию. Проведение аудита подразумевало наличие прав администратора, с этими правами мы немного пошалили и были внесены изменения в конфиги двух служб на одном из серверов, две строчки в конфигах повысили устойчивость к нагрузкам в 1000 (ТЫСЯЧУ!) раз, второй сервер можно было уже выбрасывать, он оказался не нужен, о чем было заявлено открыто, после чего человек, который сделал благо и правильно задействовал ресурсы сервера, стал врагом, т.к. вскрыл нарыв некомпетентности людей, принимающих решения на предприятии.
И вот тут мне подумалось, что будь там человек, который принимает решения, поумнее, он бы ситуацию с выходом из строя сайта повернул бы в свою сторону.
Что надо было делать:
Надо было собирать кластер. Ставить аппаратный балансировщик нагрузки, ставить программный балансировщик нагрузки на веб-серверах, настраивать кластер MySQL'я, поднимать кеширование в memcached, писать сессии в memcached, ставить сервер бекапов, ставить сервер для syslog'а, ставить сервер для мониторинга, разносить инфраструктуру по датацентрам, поднимать сеть отдачи контента (CDN), разрабатывать новый сайт с нуля (а это немалые деньги), короче, делать бронебойное решение, которое выдержит не 10000, а миллион хостов в сутки.
Человек, который поднял подобную конфигурацию в государственной компании, будет бессмертен, неувольняем ни под каким соусом, ни в какой кризис, потому что за поддержку такого решения любой интегратор возьмет дикое количество денег разово, а потом еще и не менее дикое количество денег ежемесячно, я это могу заявить ответственно, т.к. знаю, каким образом формируется цена на услуги крупных интеграторов.
Теперь чуть отвлечемся от конкретного сервера, т.к. провели аудит и забыли о нем, я расскажу о ситуации вцелом.
Когда Артемий Лебедев общался с Игорем Манном на форуме CRM'щиков, он сказал, что как правило, к разработке сайта в большинстве компаний привлекается серая бурлящая масса людей, которым абсолютно пофиг, что творится на сервере и на сайте. Эти слова верны и для гос.структур, и для коммерческих организаций. Один-два человека, которым не пофиг, ситуацию не могут исправить, т.к. просто тонут в болоте, в конце концов побеждает тотальный пофигизм и отсутствие мотивации, преходящие в преступную халатность.
И вот тогда-то мы начинаем видеть сайты, которые при любой возможности тупят по полной, раскрывают данные своих пользователей, на которых нет дизайна, нет верстки, нет кнопочек "I like it" от фейсбука, нет кнопочек от твиттера "Retweet", мы видим сайты, которые взламываются за 30 минут через sql-injection, видим сайты огромных стратегических для страны предприятий, которые бегают под управлением древней версии Joomla'ы, которая ложится под смешной нагрузкой, обидно видеть, что за установку этой пресловутой Joomla'ы взяли столько денег, что 3 месяца можно кормить целый отдел по разработке высоконагруженных проектов.
Обидно, досадно видеть вполне перспективные и реально полезные сайты в упадке. Обидно, что люди, принимающие решения, движимы либо алчностью, либо пофигизмом.
Как исправить ситуацию глобально? — это вопрос вам, читатели.