Инфраструктура веб-сайта. Что необходимо учитывать?
Инфраструктура – это сервер, веб-приложение и системы, с которыми мы интегрированы.
Сюда же можно отнести компанию сопровождения проекта.
Что должна учитывать ваша инфраструктура проекта:
– масштабируемость и ограничения производительности
– возможность развивать
– легкость внесения изменений
– контролируемость
– стоимость поддержки и развития
Инфраструктру сложно изменить. Думайте об этом заранее
Смотрите нашу большую статью (лонгрид) про историю создания нашей платформы Falcon Space и как мы пришли к идее управления через SQL.
Опубликовано в Старт проекта Меткой Видео, Проработка стартапа
- Демонстрация компонентов Falcon Space
- Смотреть демо веб-платформы Falcon Space
- Подпишись на наш видеоканал в Youtube
Как создать рабочую ИТ-инфраструктуру сайта и не потратить кучу денег зря
Сегодня предприниматели мыслят масштабно и ставят перед собой высокие цели. На самом деле это здорово — все меньше иллюзий сделать «убийцу Амазона» на WordPress. Мы все чаще видим в брифах требование, чтобы сайт выдерживал огромные потоки трафика, «поэтому сразу нужно поднять целый кластер серверов, способных выдерживать колоссальную нагрузку». Ведь продукт по мнению клиента — просто песня, и пользователи выстроятся за ним в очередь, как за колбасой в 90-е или за «Яндекс.Станциями» в 2019-м. Но, к сожалению, так происходит не всегда и не сразу. Сайт запускается, но трафик растет не так быстро, как хотелось бы, а многочисленные купленные сервера пыляться в облаке, посыпая сверху пеплом головы предпринимателей.
Мы в Creonit советуем заказчикам мыслить завтрашним днем, но при этом не гулять «на все деньги» и вместо огромной дорогостоящей инфраструктуры разворачивать простую ИТ-систему, которую можно легко масштабировать в нужный момент.
Возьмем для примера обычный сайт. Он состоит из разных компонентов, основные из которых:
- код – приложение написанное, например, на PHP;
- база данных, где хранится вся информация;
- файловое хранилище, где хранятся, например, загруженные в админке картинки.
Как обычно происходит? Наступает момент релиза, покупается сервер и туда загружается сайт. На нем же устанавливается база данных, загружаемые файлы хранятся там же. Сайт работает, все отлично.
Беда приходит, когда при росте посетителей, он начинает тормозить: страницы грузятся по полминуты, а иногда и вовсе перестают загружаться, и вместо сайта пользователи видят страницы с ошибками из пятой сотни.
Прежде чем увеличивать ресурс нужно убедиться, что:
- программное обеспечение настроено оптимально (иногда не хватает пары строк в конфигурационном файле);
- на сервере установлены быстрые диски (SSD);
- налажена система кеширования данных на сайте.
Но если после всех этих мероприятий, сайт все равно еле шевелится, пора браться за развитие ИТ-инфраструктуры. И вот вам пошаговый план.
Шаг 1. Наращиваем мощности сервера
Самый простой и дешевый способ справиться с возросшей нагрузкой — установить процессор помощнее и/или докупить оперативную память. Это делается несколькими кликами в панели управления хостера. Код дорабатывать не нужно, а обслуживать сайт по-прежнему просто.
Часто на этом этапе проекту даже не нужен постоянный технический специалист. Достаточно айтишника на удаленке или поддержки от разработчиков сайта на пару часов в месяц, чтобы исправлять проблемы, которые могут изредка возникать.
Это отличное решение до тех пор, пока затраты на дополнительные мощности сервера не будут стоить как самолет, или у хостера не закончатся тарифы под ваши потребности. Но до этого лучше не доводить, а когда затраты будут приближаться к дискомфортным, переходить к следующему шагу.
Цена вопроса: 10 000 – 20 000 рублей/месяц.
Шаг 2. Переносим базу данных на отдельный сервер
Раз наращивать мощности вертикально слишком накладно, можно делать это горизонтально: купить еще один сервер и на него перенести один из компонентов нашего сайта — базу данных. База данных и приложение больше не будут делить общие ресурсы, а вы сможете гибко менять мощность каждого сервера по необходимости.
Потребуется система мониторинга для понимания, что нагружается больше всего и что нужно апгрейдить. Плюс понадобится технический специалист, который перенесет базу со всеми данными на новый сервер, а в конфигурации сайта пропишет новые реквизиты для подключения к базе. Код приложения при этом дорабатывать не придется.
Теперь у вас уже два сервера вместо одного и их оба нужно будет обслуживать, но это не должно как-то значительно сказаться на сложности обслуживания.
Цена вопроса: от 12 000 рублей\месяц.
Шаг 3. Поднимаем несколько копий базы данных
Трафик растет, сайт опять начал подтормаживать, а в системе мониторинга очевидно, что база данных «не вывозит». Тогда можно продолжить горизонтальное масштабирование, и если одна база не справляется с потоком запросов, то несколько баз должны.
Можно арендовать еще сервер и развернуть там копию базы данных, а между ними настроить репликацию: данные будут синхронизироваться таким образом, чтобы запросы к базе можно балансировать между двумя серверами, снижая нагрузку. А если этого будет недостаточно, можно поднять еще одну базу, а бонусом вы прокачаете надежность системы.
Если вдруг один сервер с базой данной выйдет из строя, данные не потеряются, ведь есть еще несколько таких баз данных, которые героически примут на себя нагрузку павшего товарища.
Но не все так просто. Помимо того, что у вас становится еще больше серверов которые нужно обслуживать, могут возникнуть проблемы с синхронизацией данных. У вас должен быть специалист под рукой, готовый решать все трудности в ту же минуту, а еще нужен человек способный поднять эту инфраструктуру, да так чтобы все это стабильно работало. Балансировка нагрузки на разные базы данных тоже сама не заработает. Нужно научить приложение распределять запросы на разные сервера, для этого придется лезть в код, к счастью многие фреймворки и CMS поддерживают балансировку запросов к базе. Но не только лишь все. Иногда единственным разумным вариантом будет решить эту задачу не в коде, а на софтверном уровне. Опять же для этого потребуется специалист, желательно с опытом.
Цена вопроса: от 4 000 рублей\месяц за один сервер.
Шаг 4. Балансируем нагрузку между серверами
Сайт снова тормозит, но база данных справляется, а система мониторинга показывает, что сервер, на котором размещено приложение и код сайта, работает на пределе. Значит, пора арендовать еще парочку серверов.
На этот раз балансировать нагрузку лучше к самому веб-приложению. Для начала переносим копию сайта на еще один сервер. Теперь, заходя на сайт, пользователь будет обращаться то на один сервер, то на другой. Конечно сам он ничего не заметит, ну разве только, что сайт перестал тормозить.
Но чтобы это стало возможно, потребуется адаптировать приложение. Раньше все загружаемые файлы хранились на одном сервере и никаких проблем не было, но теперь у нас несколько серверов, и они оба должны иметь доступ к общему хранилищу. Иначе картинка, загруженная в админке одного сервера, не будет показываться на другом. В общем придется лезть в код или решать задачу на софтверном уровне. Все зависит от изобретательности специалистов.
Как и с серверами баз данных, можно поднимать новые сервера приложения при росте нагрузки, и удалять лишние, если нагрузка спала. И лучше для этого иметь инструменты для автоматизации, чтобы не делать это все вручную.
А если база данных не особо напрягалась, и все дело в серверах приложения, можно сразу перейти к их масштабированию и оставить одну базу данных.
На этом этапе вам точно понадобится фултайм специалист или внештатник, который по SLA-соглашению обязан оперативно реагировать на любые возникающие проблемы. К тому же придется адаптировать сайт для горизонтального масштабирования, но не все «коробочные решения» дают такую возможность.
Цена вопроса: от 12 500 рублей\месяц + оплата часов разработчиков.
Шаг 5. Бесконечное масштабирование
Это последний шаг, но по сути он бесконечный. У сайта помимо базы данных, приложения и хранилища, могут быть и другие компоненты: индексация для поиска, сервисы для кеширования, очередь сообщений. Когда трафик растет, их также можно переносить на другие серверы, чтобы распределять нагрузку и ускорять работу сайта. Само собой с увеличением количества серверов будут расти расходы, как на сами серверы, так и на технических специалистов.
Цена вопроса: бесценно.
В целом первые два шага довольно простые, основные трудности начинаются с третьего этапа. Чем сложнее система, тем больше рисков. К примеру, может произойти сбой при репликации, и часть данных не перенесется в копию. Все поправимо, но программисту придется вмешиваться в процесс. Кроме того, чем больше серверов, тем больше времени и денег нужно тратить на их обслуживание. В том числе поэтому нет смысла сразу делать сложную систему, если нагрузка на сайт низкая.
В то же время важно изначально при разработке продукта и сайта прогнозировать масштабирование. Иначе, как только понадобится подключить дополнительные серверы, придется переписывать добрую половину кода, что только усложнит работу, а продвинуться дальше четвертого шага будет проблематично.
Так что если вы планируете делать российский Нетфликс или убийцу Амазона лучше сразу обсудите это с разработчиками, чтобы они обеспечили возможность горизонтального масштабирования. Но не торопитесь разворачивать гигантскую ИТ-инфраструктуру, которая может так никогда и не пригодится, а реально оцените свои возможности.
Совсем недавно пользователь приложения Яндекс Go описал ситуацию, которая очень точно иллюстрирует ошибку неправильного выбора ресурсной базы. Только на примере реального сектора.
Парень заказал себе еды из ближайшего ресторана — 500 метров по прямой, но самому не дойти, некогда. Прождал минут 40: звонит курьер, спрашивает, есть ли свободные парковочные места во дворе. Наш герой выглянул в окно, и сказал, что есть. Еще через 20 минут пришел грустный мужчина с пакетом остывшей еды и сказал, что парковку он не нашел, что вообще-то у него огромная фура, но Яндекс предложил ему зарегистрироваться и брать заказы в приложении. Но никто не предупредил, что это заказы на 500 грамм продуктов, а топлива он сжег в 5 раз больше, чем заработал.
Мораль такова: лучше по чуть-чуть, но долго, чем много и один раз.
Инфраструктура сайта что это
- Список сравнения
- Отложенные товары
Корзина пуста
Инфраструктура сайта
Когда речь идёт о создании сайта, упор делается на программную составляющую: выбор движка, его настройка, разработка функционала, дизайн. И это действительно важно, однако нельзя забывать и о чисто материальной составляющей. Ведь вся эта цифровая информация должна где-то храниться. То есть, необходим сервер. Связаться с менеджером
Как выбрать сервер для интернет-магазина?
Сервер — это отдельный компьютер, предназначенный для выполнения определённых операций без участия человека. На него ставится операционная система, необходимые программы, и дальше он работает сам.

Виртуальный хостинг
Это самый дешёвый, порой даже бесплатный вариант. Однако у него слишком много недостатков, и для интернет-магазина он нежелателен. Дело в том, что в этом случае на одном сервере размещается несколько разных сайтов.
Из-за этого падает безопасность вашего сайта, так как приходится делить один IP с другими ресурсами, иногда даже с конкурентами. Большой вопрос и с производительностью, ведь ресурсы сервера распределяются между всеми арендаторами, и не всегда равномерно. Скачок посещаемости на любом из веб-сайтов грозит обвалом всех соседей.
Виртуальный сервер VPS\VDS
Этот вариант дороже, но и качество предоставляемых услуг намного выше. В этом случае дисковое пространство одного сервера разбивается на отдельные виртуальные сервера. И уже на них размещаются сайты заказчиков. Вы получаете строго определённое место на диске, отдельный IP и так далее.
Тем не менее, для работы крупного и успешного интернет-магазина этот вариант тоже недостаточно хорош. Однако его можно использовать на начальных этапах, когда товаров ещё немного, покупателей тоже, и ресурсов виртуального сервера вполне хватит.

Выделенный сервер
Заказчику предоставляется сервер целиком. У него не будет соседей, ему не придётся делить ресурс с другими сайтами. Он самостоятельно выбирает производительность оборудования, размер диска, количество оперативной памяти.

Распаковка готового сайта
на арендованном сервере
На самом деле, на диск сервера устанавливается не одна версия сайта,
а как минимум четыре или более:
1) рабочая, которая открыта клиентам для посещения;
2) тренировочная, на которой сотрудники обучаются работать с системой;
3) для разработки, где программисты реализуют новый функционал, а дизайнеры оттачивают внешний вид;
4) тестовая, где пробно устанавливаются различные обновления.

Рабочая
Это основная версия ресурса, которая имеет прямой выход в интернет. Здесь покупатели изучают витрину, складывают нужные товары в корзину, оформляют покупки. Для этой версии важна круглосуточная работоспособность. Если что-то происходит, из-за чего она выходит из строя, вернуть всё в рабочее состояние нужно как можно быстрее. Каждый час простоя — это потерянные деньги. Для того, чтобы обеспечить постоянную работу сайта, нужны тестовые версии.
Тренировочная
Прежде чем пустить нового сотрудника на рабочую версию, его нужно обучить тонкостям работы с CMS. Иначе он неловким действием может что-то испортить. Не всегда это вредит работоспособности сайта, но любые ошибки в заполнении карточки товара или других местах могут привести к потере клиентов.
Обучение происходит на тренировочной версии, которая полностью повторяет основную, но не имеет прямого выхода в интернет. На неё могут попасть только сотрудники магазина. И любые действия на ней останутся только там. Исправить ошибки намного проще, да и убытков они не принесут.
Разработка
Время от времени сайт нужно обновлять: добавлять функционал, менять дизайн, вносить какие-то изменения в код. Заниматься этим могут как собственные сотрудники, так и сторонние специалисты. Какими бы опытными и квалифицированными они ни были, люди могут ошибаться. Да и любая работа требует времени. Так что процесс разработки нельзя проводить прямо на рабочем сайте.
Для этого существует отдельная версия, где можно вносить изменения в код и смотреть, что происходит. Если что-то идёт не так, всегда можно снова поменять код, исправить всё и привести к должному виду.
Тестовая
Любая CMS, которая имеет поддержку разработчиков, время от времени обновляется, движок на сайте тоже желательно обновлять. При этом могут возникнуть проблемы с работой модулей, написанных сторонними разработчиками. Он могут не учитывать изменения, которые внесены в основной код. В результате они могут стать несовместимыми с новой версией.
Лучше уточнить вопрос совместимости у разработчика модуля, однако связаться с ним не всегда выходит. Связь с программистом-фрилансером может быть потеряна.
Если возможности убедиться в совместимости модулей нет, то их работоспособность нужно сначала протестировать, убедиться, что всё нормально, или устранить неполадки. Для этого и нужна тестовая версия сайта, на которую ставятся все обновления и тестируются перед тем, как устанавливать их на основную.
Этот процесс можно сравнить с ремонтом в обычном магазине. Если в какой-то момент откроется дверь, и в зал ворвутся рабочие с инструментами, стремянками, материалами, начнут сдвигать полки с товарами, сбрасывать их на пол и бормотать: «Извините, подождите, мы сейчас быстро отремонтируем, и всё будет хорошо», покупатели развернутся и уйдут, не задумываясь о том, что это делается для их же блага. Да и какое благо? Бардак же форменный.
Гораздо разумнее сначала тщательно распланировать ремонт, купить материалы, обсудить всё с бригадой и сделать ремонт, пока клиенты спят. Так происходит и с обновлением сайта.
Что такое ІТ-Инфраструктура? Основы и Бизнес-кейсы
В этой статье мы дадим определение IT-инфраструктуре, расскажем об основных элементах этой системы, назовем самые распространенные виды IT-инфраструктуры и сравним преимущества каждого из них с точки зрения бизнеса.
Основы IT-инфраструктуры
IT-инфраструктура – это комплекс вычислительной аппаратуры и программных средств, который обеспечивает работу IT-инструментов компании. Среди таких инструментов – корпоративный сайт, ERP- и CRM-системы, базы данных, удаленные рабочие столы сотрудников, сервисы для клиентов и другое. Современный бизнес не может функционировать без этих средств, поэтому построение IT-инфраструктуры – одна из ключевых стратегических задач любой компании.
Аппаратная часть IT-инфраструктуры состоит из серверов, сетевого оборудования и персональных рабочих девайсов. Серверы предоставляют вычислительные мощности для работы программ, сетевое оборудование объединяет машины и обеспечивает доступ пользователям, а компьютеры сотрудников используют для непосредственной работы с IT-инструментами.
Программная часть включает в себя операционные системы, гипервизор, системы управления базами данных, ПО для удаленной работы, брандмауэры, антивирусы, инструменты для резервного копирования данных и т.д. Список программ зависит от потребностей конкретной компании – тут приведены только базовые инструменты, которые нужны для работы IT-инфраструктуры как таковой.
Дата-центр, или центр обработки данных – это среда, в которой находится оборудование IT-инфраструктуры. ЦОД не только выполняет роль физического пространства для аппаратуры, но и обеспечивает ее бесперебойную работу. Для этого нужны резервные источники питания, альтернативные каналы связи, системы охлаждения серверов, многоуровневые системы безопасности и другое. Компания может организовать локальный дата-центр самостоятельно или арендовать место в профессиональном ЦОД.
«Серверная инфраструктура – не обязательно локальная: к ней также можна подключиться удаленно.»
Какие бывают IT-инфраструктуры?
IT-инфраструктуры можно разделить на три основных типа – серверные, облачные и гибридные. Они отличаются принципами построения и способами организации ресурсов. Мы рассмотрим самые фундаментальные отличия этих инфраструктур с технологической точки зрения.
В материалах на тему разницы между серверами и облаками часто предполагают, что серверная инфраструктура – это то же самое, что локальная инфраструктура в офисе компании, а облачная – это удаленная система в дата-центре провайдера. Однако серверную инфраструктуру точно так же можно заказать у поставщика услуг и разместить в профессиональном дата-центре – архитектура никак не влияет на возможность удаленного доступа.
В традиционной серверной инфраструктуре пользователь работает с мощностями отдельных машин – физических или виртуальных. Как правило, в качестве рабочих единиц создают VPS, то есть виртуальные сегменты конкретных серверов. У каждого VPS есть фиксированный набор параметров – процессорные ядра, ОЗУ, хранилище. Такие сегменты используют для разделения мощностей между процессами.
Ключевой принцип облачной инфраструктуры – объединение серверных ресурсов в абстрактный пул, то есть набор мощностей всех серверов. На базе этого набора также создают виртуальные машины – разница в том, что в облаке можно создать ВМ из ресурсов всей системы, а не на основе конкретного сервера. При этом конфигурацию ВМ можно менять в любой момент.
Гибридная инфраструктура – это система из нескольких типов инфраструктур. Например, она может состоять из двух видов облаков или из облачной и серверной инфраструктур. Такая система нужна для того, чтобы пользоваться преимуществами разных архитектур в зависимости от задач. Например, можно разместить процессы со стабильной нагрузкой в серверной инфраструктуре, а те, которые требуют гибкости – в облаке.
«IT-инфраструктура напрямую влияет на эффективность вашего бизнеса.»
Что требуется от хорошей IT-инфраструктуры?
При построении IT-системы важно учесть ряд факторов, которые напрямую влияют на эффективность работы компании и зависят от архитектуры решения – способность адаптироваться к новым нагрузкам, устойчивость к отказам оборудования, защита данных. Мы рассмотрим эти факторы и оценим, какие типы IT-инфраструктур лучше справляются с каждым из них.
Отказоустойчивость
Стабильная работа – основное требование к любой IT-системе. Для этого недостаточно пользоваться качественным “железом” – как и любая аппаратура, оно тоже не застраховано от поломок. Каждому элементу системы нужны резервные компоненты, чтобы инфраструктура продолжила работу в случае отказа оборудования, а также надежные условия в дата-центре. При этом в различных видах IT-инфраструктур отказоустойчивость организована на уровне архитектуры.
В случае с серверной инфраструктурой отказоустойчивость часто обеспечивается за счет кластеризации. Кластер – это система, в которой нагрузка автоматически распределяется между несколькими серверами. Если один сервер выйдет из строя, все процессы продолжат работу на другом сервере.
Отказоустойчивость в облаке работает по схожему принципу, однако у этой архитектуры есть ряд преимуществ. Как правило, облака – гораздо более масштабные системы, поэтому резерв ресурсов на случай отказов значительно больше. Кроме того, облако может задействовать мощности нескольких серверов одновременно – процесс не зависит от исправности конкретной машины.
Гибридная инфраструктура – наиболее отказоустойчивое решение за счет распределения мощностей. Например, она может состоять из серверного кластера и облака в разных дата-центрах – даже если кластер полностью выйдет из строя, облако продолжит работу. При этом стоит учитывать, что гибридные инфраструктуры – недешевые и непростые в управлении системы. Их стоит рассматривать в качестве решения только по совокупности факторов, а не только ради стабильной работы IT-систем.
Масштабируемость
С практической точки зрения, масштабируемость IT-инфраструктуры для бизнеса – это способность быстро задействовать ресурсы для новых нагрузок. Это нужно как для повседневных задач, так и для долгосрочного роста. По мере роста компании нужно больше вычислительных мощностей для ERP- и CRM-систем, рабочих столов сотрудников, приложений, DevOps-площадок и других инструментов.
Серверная инфраструктура масштабируется только за счет покупки или аренды нового оборудования. На это нужно время, а серверы также нужно интегрировать в существующую систему. Любой проект IT-инфраструктуры стоит планировать так, чтобы иметь резерв ресурсов – в случае с серверами, важно соблюсти баланс, чтобы иметь долгосрочный запас и не переплачивать за простаивающие серверы. Если баланс не соблюсти, вполне возможно, что они начнут окупаться только в перспективе нескольких лет.
Архитектура облака позволяет подключать и отключать ресурсы в любой момент. В случае с публичным облаком, размеры инфраструктуры можно менять в течение нескольких минут, а стоимость оплаты при этом изменится соответственно. Для этого не нужно арендовать машину с фиксированной конфигурацией – можно создать произвольную ВМ исходя из требований задачи. За счет этой особенности публичные облака лучше всего подходят для быстрой адаптации к новым нагрузкам без лишних затрат.
При помощи гибридной инфраструктуры можно разделять задачи с предсказуемой нагрузкой и те, которые требуют гибкости. Например, в серверной инфраструктуре лучше разместить внутренние инструменты компании, которые будут использоваться в долгосрочной перспективе – в таком случае единоразовое вложение в оборудование будет выгоднее, чем аренда ресурсов в облаке. При этом облаками можно пользоваться для временных проектов или для расширения мощностей в периоды пиковых нагрузок.
Безопасность
DDoS-атаки, вирусы, фишинг, хакеры – угрозы, с которыми должен считаться каждый бизнес, особенно если компания работает с данными клиентов. Защита от таких опасностей состоит из процедур внутреннего менеджмента, программных и физических средств. В контексте этого раздела мы предполагаем, что инфраструктура размещена в профессиональном дата-центре – организация сравнимого уровня защиты на базе локального ЦОД требует вложений, которые нецелесообразны для большинства компаний.
Средства защиты данных, которые используются в серверной инфраструктуре, применимы и к другим инфраструктурным решениям – распределенное хранение данных, брандмауэры, аппаратное шифрование дисков, антивирусы, VPN-туннели, разграниченные уровни пользовательского доступа и другое. Однако в случае с серверами большинство этих средств придется подключать самостоятельно – арендуя или покупая серверы, вы получаете “голое железо”.
Арендуя облако, компания избавляется от необходимости организовывать базовые меры безопасности своими силами. Например, по умолчанию можно разграничить доступы между сотрудниками, настроить VPN при помощи встроенных инструментов и фильтровать трафик. При этом пользователь также может применять любые другие инструменты защиты данных.
Вдобавок к мерам безопасности в каждом из элементов гибридной инфраструктуры, защите данных способствует принцип распределения. Конфиденциальные данные можно разместить в частном облаке – самом безопасном типе облачных решений, а менее чувствительные – в публичном. Даже если злоумышленник обойдет системы безопасности одной платформы, он не получит доступ к другой части инфраструктуры.