Какие бывают хостинги

Каж­дый сайт в интер­не­те хра­нит свои основ­ные фай­лы на хостин­ге — спе­ци­аль­ном хра­ни­ли­ще для веб-страниц. Наста­ло вре­мя рас­ска­зать об этой тех­но­ло­гии во всех дета­лях. Будет полез­но тем, кто хочет делать мно­го раз­ных сай­тов.

Чем хостинги отличаются друг от друга

Любой сайт нуж­но где-то хра­нить — все фай­лы, кар­тин­ки, CSS-стили и код на JavaScript. При­чём это нуж­но делать так, что­бы все исполь­зу­е­мые на стра­ни­цах тех­но­ло­гии рабо­та­ли пра­виль­но.

Допу­стим, у вас есть сайт со сво­ей базой дан­ных, где хра­нит­ся инфор­ма­ция о поль­зо­ва­те­лях. Зна­чит, вам нужен такой хостинг, кото­рый уме­ет рабо­тать с этой базой. А ещё на этом сай­те кру­тит­ся форум, где все обща­ют­ся, — зна­чит, нуж­на под­держ­ка php, что­бы форум мог нор­маль­но рабо­тать. Полу­ча­ет­ся, что одно из тре­бо­ва­ний к хостин­гу — под­держ­ка нуж­ных тех­но­ло­гий.

Часто быва­ет так, что на стар­те сайт цели­ком зани­ма­ет не очень мно­го места — 200–300 мега­байт. Но через пару лет он вырас­тет до 2–3 гига­байт — это в 10 раз боль­ше, чем в нача­ле. Нагруз­ка тоже вырас­та­ет: чем боль­ше посе­ти­те­лей — тем силь­нее нагруз­ка на хостинг. Если вычис­ли­тель­ной или дис­ко­вой мощ­но­сти не хва­та­ет, сайт будет тор­мо­зить.

Ино­гда быва­ет так, что стан­дарт­ных веб-технологий для сай­та недо­ста­точ­но и нуж­но при­кру­тить к нему что-то осо­бен­ное. Напри­мер, доба­вить модуль для филь­тра­ции спа­ма или вклю­чить под­держ­ку экзо­ти­че­ско­го язы­ка про­грам­ми­ро­ва­ния. Если хостинг это­го не раз­ре­ша­ет делать, то сайт пол­но­цен­но тоже рабо­тать не будет.

Полу­ча­ет­ся, что хостин­ги отли­ча­ют­ся:

Виртуальный хостинг

Что­бы было понят­нее, давай­те про­ве­дём ана­ло­гию меж­ду хостин­гом и едой.

Вир­ту­аль­ный хостинг — это кафе. Меню состав­ле­но зара­нее, есть опре­де­лён­ный выбор блюд. Если что — повар может поло­жить в бур­гер поболь­ше зеле­ни или заме­нить сыр на вет­чи­ну, но это всё рав­но оста­нет­ся бур­ге­ром. Если вы при­шли в суши-бар, вам вряд ли пода­дут там тарел­ку бор­ща, пото­му что это­го нет в меню.

С вир­ту­аль­ным хостин­гом всё то же самое: есть набор сер­ви­сов, кото­рые даёт хостинг, выде­ля­ет­ся часть места на дис­ке и немно­го про­цес­сор­но­го вре­ме­ни. Всё это упа­ко­вы­ва­ет­ся в одно целое и полу­ча­ет­ся тариф­ное пред­ло­же­ние. Раз­ные тари­фы — раз­ный набор сер­ви­сов и ресур­сов. Нужен про­стень­кий лич­ный сайт — поку­па­ешь тариф «Про­стень­кий». Захо­чешь вырас­ти — поку­па­ешь тариф «Боль­шой» и рас­тёшь. Но если потре­бу­ет­ся что-то боль­ше, чем тариф «Боль­шой», — ну, про­сти­те.

Обыч­но вир­ту­аль­ные хостин­ги берут под про­стые сай­ты, лен­дин­ги и те кор­по­ра­тив­ные сай­ты, кото­рые не тре­бу­ют осо­бен­ных тех­но­ло­гий для рабо­ты. Стан­дарт­ное меню совре­мен­но­го вир­ту­аль­но­го хостин­га: доме­ны, мно­же­ствен­ные сай­ты, php, база дан­ных, поч­та, сер­ти­фи­ка­ты без­опас­но­сти.

Почему виртуальный?

Есть боль­шой насто­я­щий мощ­ный сер­вер — с насто­я­щим жёст­ким дис­ком и про­цес­со­ром. На нём хра­нят­ся фай­лы десят­ков, сотен или тысяч кли­ен­тов.

На этом сер­ве­ре есть спе­ци­аль­ная про­грам­ма, кото­рая рас­пре­де­ля­ет ресур­сы сер­ве­ра меж­ду поль­зо­ва­те­ля­ми. Она выде­ля­ет каж­до­му нуж­ное коли­че­ство памя­ти, даёт доступ к про­грам­мам и сле­дит за тем, что­бы каж­дый не пре­вы­шал лимит по нагруз­ке на про­цес­сор.

Дело в том, что про­цес­сор­ное вре­мя на рабо­ту каж­до­го хостин­га на сер­ве­ре — общее. Если за этим не сле­дить, то один чело­век может вычер­пать весь ресурс, и тогда сай­ты осталь­ных кли­ен­тов нач­нут тор­мо­зить. Про­грам­ма за этим сле­дит и огра­ни­чи­ва­ет про­цес­сор­ное вре­мя. Нуж­но справ­лять­ся с нагруз­ка­ми поболь­ше? Бери тариф выше или поку­пай вир­ту­аль­ный сер­вер.

Это как если бы в ком­му­наль­ной квар­ти­ре был дис­пет­чер общих ресур­сов: ван­ны, туа­ле­та и кух­ни. Пет­ров, вре­мя вышло, осво­бож­дай обще­ствен­ное поме­ще­ние!

Виртуальный сервер

Вир­ту­аль­ный сер­вер, выде­лен­ный сер­вер, VDS, VPS — это всё прак­ти­че­ски одна и та же тех­но­ло­гия. Смысл её в том, что под такой сер­вер гаран­ти­ро­ван­но выде­ля­ют­ся опре­де­лён­ные ресур­сы, кото­рые кли­ент может нагру­жать как хочет. Сно­ва пояс­ним на еде.

Если вир­ту­аль­ный хостинг — это кафе, то вир­ту­аль­ный сер­вер — это вас пус­ка­ют на кух­ню того же кафе и дают в рас­по­ря­же­ние одно­го пова­ра. Он может при­го­то­вить, что ска­же­те, из про­дук­тов, кото­рые есть на кухне или кото­рые вы при­не­сё­те с собой. Отдель­ный повар будет гото­вить быст­рее, осо­бен­но когда на осталь­ной кухне мно­го зака­зов.

Вир­ту­аль­ный сер­вер устро­ен точ­но так же — есть реаль­ный сер­вер, ресур­сы кото­ро­го рав­но­мер­но поде­ли­ли меж­ду участ­ни­ка­ми. Гру­бо гово­ря, если на сер­ве­ре сто­ит про­цес­сор на 16 ядер, а все­го вир­ту­аль­ных сер­ве­ров на нём кру­тит­ся четы­ре, то каж­дый полу­ча­ет в рас­по­ря­же­ние по 4 ядра. Их мож­но загру­жать как угод­но, на рабо­то­спо­соб­ность осталь­ных ядер это не повли­я­ет. Хостер гаран­ти­ру­ет, что какой бы ни была нагруз­ка на сосед­них вир­ту­аль­ных сер­ве­рах, ваше­му вир­ту­аль­но­му «пова­ру» все­гда будет выде­лен ого­во­рён­ный объ­ём ресур­сов.

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

Мину­сы: сто­и­мость выше, чем у вир­ту­аль­но­го хостин­га, и нуж­но раз­би­рать­ся в адми­ни­стри­ро­ва­нии сер­ве­ров. У вир­ту­аль­но­го хостин­га есть панель управ­ле­ния: хочешь новый сайт — тык! — он создал­ся. Хочешь новую базу дан­ных — тык! — она заве­лась. В вир­ту­аль­ном сер­ве­ре есть толь­ко команд­ная стро­ка, кото­рой нуж­но уметь поль­зо­вать­ся. Мож­но, конеч­но, уста­но­вить и панель управ­ле­ния, но это тре­бу­ет зна­ний. Поку­пая вир­ту­аль­ный сер­вер, заду­май­тесь, кто и за какие день­ги будет его адми­ни­стри­ро­вать, без это­го никак.

Вир­ту­аль­ный сер­вер нужен тем про­ек­там, где есть боль­шие нагруз­ки и дол­жен быть гаран­ти­ро­ван­ный ресурс по желе­зу. Ещё их выби­ра­ют те, кому для сай­та нужен нестан­дарт­ный софт: напри­мер, осо­бая вер­сия PHP, интер­пре­та­тор NodeJS или осо­бая база дан­ных.

Обычный сервер

Взять обыч­ный сер­вер всё рав­но что купить себе пол­но­цен­ную кух­ню со всей утва­рью и кухон­ны­ми при­бо­ра­ми. На ней мож­но при­го­то­вить что угод­но, но всё это при­дёт­ся делать само­му. Если что-то не полу­ча­ет­ся — никто не вино­ват, стан­дарт­ных гото­вых блюд нет. На такой кухне всё зави­сит от хозяй­ки — если она уме­ет гото­вить, то всё будет хоро­шо.

Реаль­ный сер­вер даёт вам пол­ную сво­бо­ду — это ваше желе­зо, оно всё рабо­та­ет на вас и огра­ни­че­но толь­ко тем, насколь­ко наво­ро­чен­ную желез­ку вы ста­ви­те. Не хва­та­ет памя­ти — встав­ля­е­те новую план­ку памя­ти в сер­вер. Не хва­та­ет про­цес­сор­ной мощ­но­сти — объ­еди­ни­ли два сер­ве­ра в кла­стер. Мало места на дис­ке — добав­ля­е­те ещё один диск или запус­ка­е­те RAID-массив.

Минус тут такой же, как и в вир­ту­аль­ном сер­ве­ре — для его обслу­жи­ва­ния абсо­лют­но точ­но нужен адми­ни­стра­тор. Если нет чело­ве­ка, кото­рый раз­би­ра­ет­ся в сер­вер­ных тех­но­ло­ги­ях и может его настро­ить, то сайт или не зара­бо­та­ет, или будет рабо­тать не так быст­ро, как может.

Ещё один минус — сер­вер нуж­но где-то содер­жать, ему нуж­на услу­га co-location в дата-центре. А если сер­вер сто­ит у вас дома, нуж­но сле­дить, что­бы Бар­сик на него не нага­дил, а интернет-провайдер не выдал ему новый IP-адрес.

Сто­и­мость тоже игра­ет роль: одно дело запла­тить 400 руб­лей в месяц за вир­ту­аль­ный сер­вер и совсем дру­гое — запла­тить 400 тысяч за желе­зо. С дру­гой сто­ро­ны, есть обла­сти, когда это оправ­да­но. Напри­мер, важ­ная база дан­ных, кото­рую не хочет­ся хра­нить в интер­не­те, или вы посчи­та­ли, что за 5 лет потра­ти­те на вир­ту­аль­ный сер­вер столь­ко же и про­ще купить сра­зу обыч­ный.

Ещё важен вопрос зако­но­да­тель­ства: если вы хра­ни­те пер­сдан­ные рос­си­ян, желез­ки с ваши­ми сай­та­ми долж­ны физи­че­ски рас­по­ла­гать­ся в Рос­сии, что­бы гос­по­да поли­цей­ские смог­ли в слу­чае чего заехать в дата-центр с мас­ка­ми и кра­си­во их извлечь (а замор­ские гос­по­да, соот­вет­ствен­но, не смог­ли).

Специализированные хостинги

И есть ещё одна ниша — спе­ци­а­ли­зи­ро­ван­ные сер­ви­сы: хра­ни­ли­ща фай­лов, сети дис­три­бу­ции кон­тен­та, облач­ные базы дан­ных, дол­го­сроч­ные архи­вы.

Напри­мер, если у вас онлайн-школа и вы хоти­те кру­тить на сай­те мно­го раз­ных видео, то име­ет смысл хра­нить их в CDN — content distribution network. Загру­жа­е­те свои видео­ро­ли­ки на сер­вер, а систе­ма опти­ми­зи­ру­ет хра­не­ние так, что­бы давать высо­кую ско­рость отда­чи во все реги­о­ны.

Или у вас огром­ный архив дан­ных по ста­рым тран­зак­ци­ям кли­ен­тов. Они вам не нуж­ны каж­дый день, но хра­нить их вы обя­за­ны. Хра­нить эти дан­ные на основ­ном сер­ве­ре неце­ле­со­об­раз­но: вы ими не поль­зу­е­тесь, а за место на дис­ке пла­ти­те. Тогда вам нужен сер­вис дол­го­сроч­но­го хра­не­ния типа Amazon Glacier: заки­ды­ва­е­те в него дан­ные, и Ама­зон уже бес­по­ко­ит­ся о том, что­бы они уце­ле­ли в слу­чае гло­баль­ной ката­стро­фы. Извле­че­ние дан­ных из таких сер­ви­сов зани­ма­ет мно­го вре­ме­ни, но и хра­не­ние сто­ит недо­ро­го.

Что выбрать

Если вы начи­на­ю­щий сай­то­стро­и­тель, бери­те вир­ту­аль­ный хостинг. В интер­не­те их тыся­чи, выби­рай­те тот, кото­рый под­хо­дит вам по пара­мет­рам и цене (под­сказ­ка: они почти оди­на­ко­вые, для стар­та подой­дёт любой). Как толь­ко осво­и­тесь — пере­хо­ди­те на выде­лен­ный сер­вер, он даст боль­ше воз­мож­но­стей. Заод­но осво­и­те новую про­фес­сию систем­но­го адми­ни­стра­то­ра.