Компьютерра: Вот, допустим, какой-нибудь старый проект с "античной" архитектурой и необходимым приложением, у которого "течёт" память. Ваши специалисты с таким работают?
Дмитрий Лоханский: Да, конечно. У нас был и остаётся с давних времён клиент – Eva.ru, достаточно известный проект, женская социальная сеть, работает с 1999 года. Он был написан на доисторических технологиях: Java-машина, которая раздувается и жрёт всю память, память течёт... В итоге мы спокойно перевели проект к себе, заменили некоторые куски кода, например, выкинули базу данных Firebird, которую уже никто практически не развивает, и заменили на MySQL. Сделали её прозрачно, без остановок в работе. Саму Java-машину перевели на новый кластер JBoss, перестала течь память. Постепенно производим рефакторинг, чтобы использовались современные технологии.
Проблемы могут быть самые разные. Например, раньше у каждого сайта была папка "/images", в которую отправляют все картинки. А когда этих картинок становится миллион, диски начинают умирать, потому что они не были приспособлены к тому, чтобы одна папка содержала такое огромное количество файлов.
Мы отслеживаем такие вещи, перепроектируем, разносим, используя современные кластерные файловые системы, раскладываем так, чтобы система быстрее находила и отдавала результаты.
Компьютерра: Надо полагать, это всё делается за отдельные деньги?
Дмитрий Лоханский: Нет, суть именно в том, что всё в пакете.
Компьютерра: Проблема с некоторыми облачными сервисами заключается в том, что они используют только свои API, так что перейти на них и уйти, если потребуется, оказывается проблематично. Как обстоят дела с этим у вас?
Дмитрий Лоханский: Такая проблема есть и у нас, но только с переездом от нас.
Андрей Артищев: Перенос информации к нам осуществляет наша техническая поддержка.
Дмитрий Лоханский: Я думаю, облачных провайдеров заставлять работать по единому стандарту уже нет возможности. Amazon работает по-своему, и де-факто считается на Западе стандартом. При этом появляется множество новых команд, которые делают API на более современном уровне. Мы тоже пошли по этому пути, сделали свой API более современным, но есть сторонние разработчики, которые создают общие библиотеки, которые позволяют приложению общаться с облаком, а дальше уже не важно, что "сзади" – Amazon, "Оверсан-Скалакси" или кто-то третий.
Компьютерра: "Облачные вычисления" – достаточно грубая калька с английского. Как вы считаете, есть ли более адекватный перевод этого термина на русский язык?
Андрей Артищев: "Резиновый хостинг". Обычно говорится, что данные пользователей хранятся в "облаках", которые как-то там масштабируются. Сложно объяснить обычному человеку, что "облако" может увеличиваться и сжиматься в размерах, обычно люди такими образами не мыслят. Основная суть Cloud Computing заключается в том, что сайты могут масштабироваться "вверх" и "вниз", динамически растягиваться как жевательная резинка.
Дмитрий Лоханский: Тут ещё стоит добавить, что cloud computing сам по себе, это всего лишь один из наших инструментов. Мы долго думали, как называть себя. Первым облачным хостинг-провайдером? Или говорить в связи с компанией о cloud computing? Решили не использовать западную терминологию.
Когда мы разрабатывали сервис "защита от всех атак", мы сначала анализировали проблемы и выделили три главные. Первая связана с ростом трафика и с нагрузкой. Вторая проблема – развитие ботнетов, а значит, нужна надежная система защиты. Третья проблема – от которой болит голова у всех владельцев ресурсов - надёжность. Так называемая high-availability (высокая доступность). Но тут есть своя специфика. Сделать её нормально – дорого. То есть, даже пару лет назад 99% админов на рынке интернета не знали, как это делать. Знали только западные. Только сейчас все это раскрутилось, люди знают, что можно поставить два сервера, зарезервировать между ними один ip-адрес – и в случае падения одного, другой поднимается. Это все достаточно дорого, нужно арендовать два сервера, один из них при этом будет стоять только для подстраховки – то есть ничего не делать. Если система, к примеру, из пяти серверов (такой средненький проект), то уже десять машин нужно. И так далее. Причём в серверах может отказать что угодно. Редкий случай, когда покупают себе сервера с двумя блоками питания, поэтому бывает, что выключается блок питания, и раз – всё сдохло.