Где живут сайты?
Давайте начнем с самого малого. Что же такое сайт? Сайт, либо Web API, либо сложная Web система, обычно представляет из себя набор файлов. Эти файлы разрабатываются программистами, в них содержится код. Важно понимать, что сайт, любой сайт ‒ это набор файлов.
Давайте начнем с самого малого. Что же такое сайт? Сайт, либо Web API, либо сложная Web система, обычно представляет из себя набор файлов. Эти файлы разрабатываются программистами, в них содержится код. Важно понимать, что сайт, любой сайт ‒ это набор файлов.
И тут приходит понятие «сервер». Что же такое сервер? По факту, сервер ‒ это компьютер, обычный компьютер, на котором хранятся файлы, из которых состоит сайт. Этот компьютер может находиться как у вас дома, так и где-нибудь далеко, и доступ к этому удаленному компьютеру, вы будете иметь через интернет, через какие-то провода, которые к нему проложены. Вот такой вот далекий сервер, далекий компьютер называется «удаленный сервер».
Теперь перейдем к тому, как мы с вами, пользователи, общаемся с этим сервером и получаем с него файлы, которые и есть наш сайт.
Сервер один, либо их может быть несколько, которые хранят на себе наши файлы. И есть клиент ‒ это мы с вами. Таких клиентов может быть много: Вася, Петя, наш сосед, наша мама, бабушка, сестра из Америки ‒ кто угодно. Этих клиентов может быть тысячи. И все клиенты ходят к серверу, ходят, да, прям ходят в гости для того, чтобы запросить у него файл нашего сайта и отобразить на компьютере. То есть на клиенте находится наш ноутбук, с которого мы открываем браузер и просматриваем сайты, а сами файлы находятся где-то на удаленном сервере. И для того, чтобы файлы с серверы приходили на «клиент», мы общаемся, то есть наш клиент, то есть наш ноутбук с браузером общается с сервером посредством протокола.
Так что такое протокол?
Протокол этот называется «http». Также есть его брат-близнец «https». Разница между этими двумя протоколами в том, что второй зашифрованный, и общение между клиентом и сервером по протоколу «https» происходит в зашифрованном виде, то есть нельзя прям вклиниться в провод, который находится между сервером и клиентом, и скачать вот наши сообщения, потому что они будут зашифрованы.
Протокол этот называется «http». Также есть его брат-близнец «https». Разница между этими двумя протоколами в том, что второй зашифрованный, и общение между клиентом и сервером по протоколу «https» происходит в зашифрованном виде, то есть нельзя прям вклиниться в провод, который находится между сервером и клиентом, и скачать вот наши сообщения, потому что они будут зашифрованы.
Вот так вот, на абстрактном, очень легком уровне происходит общение между сервером, то есть местом, где располагаются файлы, и клиентом, то есть нашим браузером.
Какие же бывают серверы.
Сервер может быть как ваш компьютер, который стоит прям вот возле вас, прям, не знаю, даже ваш компьютер может быть сервером, и сервер может быть удаленный.
По факту сервер ‒ это просто компьютер, на котором установлена программа, которая умеет отдавать файлы на запросы клиентов. И эта программа может стоять как у вас на компе, и вы можете прям со своего компа запрашивать файлы и отображать в браузере, и тогда этот сервер будет работать очень быстро, потому что, ну, общение ограничено лишь вашим компьютером. Но такая схема плоха тем, что, как только ваш компьютер выключится, ваш сервер перестанет работать. Если ваш сосед Петька захочет попросить файл, то есть сайт с вашего сервера, вашего компа, то он их не получит, поскольку ваш комп выключен.
Удаленные сервера
В этом прелесть удаленных серверов. Удаленные сервера ‒ это большие такие комнаты, даже здания, называются они ЦОДы (Центры обработки данных). Ими владеют обычно большие корпорации, которые владеют этими ЦОДами. У ЦОДов есть куча всяких характеристик для того, чтобы они соответствовали разным стандартам по безопасности, по пропускной способности, то есть по количеству клиентов, которые одновременно могут к ним подсоединяться.
Но в чем же фишка серверов? Фишка их в том, что они имеют такую штуку, как «аптайм». Аптайм ‒ это то время, которое сервера доступны в течение года, например. Если у нас 100% аптайм, это значит, что в течение года сервера, то есть эти вот компы в ЦОДе, были доступны всегда, каждую секунду всего нашего года. Конечно же, это идеальная картина, такого не бывает, но 99,9% аптайма ‒ это уже, в принципе, реально. То есть, когда сервера ложатся…, ложатся ‒ это значит перестают работать, там, на несколько минут в году. И то есть, таким образом, получается, если мы размещаем на серверах, удаленных свой сайт, то мы получаем то, что наш сайт постоянно в рабочем состоянии и его постоянно можно получить в браузере. И если кто-то там выключит наш компьютер, нам фиолетово, потому что наш сайт на ЦОДе далеко, а ЦОД практически никогда не выключается. Грубо говоря, вот так это и работает.
И вот на ЦОДе, в этом компьютере, на котором лежит наш сайт, также есть несколько, скажем так, иерархий, по которым делится этот сервер.
Хостинг
Многие уже слышали, слово «хостинг». Что же это такое? Это, по факту, обозначение места, где мы будем хранить с вами свой сайт. Вы скажете, что это тот же самый сервер, но на самом деле нет. Хостинг ‒ это не целый сервер. То есть сервер ‒ это обычно целый компьютер, например, либо целая машина, которая имеет процессор, имеет память, оперативную память. А хостинг ‒ это виртуальная машина, то есть виртуальное место на одной машине, которое выделено нам с вами под наш сайт. И, таким образом, на одном сервере, в одной коробке физической могут располагаться несколько хостинг-аккаунтов, то есть несколько десятков, сотен, а то даже и тысяч могут располагаться на одной машине, на одном компьютере. И именно вот этим является хостинг ‒ вот эти виртуальные коробки, в которой может храниться наш один сайт либо несколько.
И еще одна важная характеристика хостинга в том, что вы не можете достучаться до каких-то систем управления операционной системой, которая стоит на этой машине, на которой находится хостинг. Мы не можем устанавливать какие-то свои программы, нужные для того, чтобы работал наш сайт, либо еще что-то, мы не можем разбивать жесткий диск. У нас есть очень ограниченное пространство для настройки нашего сайта.
Кроме хостинга, есть такое понятие как виртуальный сервер. И тут уже поинтереснее, потому что виртуальный сервер ‒ это какая-то часть вот этого сервера, то есть физической машины, которая дается нам с вами в распоряжение. Казалось бы, это похоже на хостинг, потому что хостинг ‒ это тоже какая-то частичка сервера. Но тут ключевая разница состоит в том, что в виртуальном сервере мы с вами непосредственно имеем доступ к операционной системе. То есть, по факту, где-то на хостинге разворачивается виртуальная машина, в которой резервируется определенный процент от памяти нашего сервера, определенный процент процессора нашего сервера, и это всё дается в пользование нам с вами, клиентам. И тут мы уже вольны устанавливать всё, что угодно, внутри этой виртуальной машины. Всё, что хочешь, мы можем устанавливать. То есть, по факту, у нас с вами в доступе обычная операционная система, обычно это Linux, с которой мы можем делать всё, что угодно. Это дополнительный простор, это дает, конечно же, больше простора для разработчиков, для тех, кто покупают виртуальные сервера, но и стоят они подороже.
И последняя инстанция ‒ это когда мы с вами хотим снять аж целую машину, чтобы вот вся машина, весь физический процессор, вся физическая память и вся физическая оперативная память была в нашем с вами владении. Это называется выделенный сервер. Эта услуга уже самая дорогая, потому что мы снимаем в аренду целую машину. Но, тем не менее, мы имеем абсолютно полный контроль над физической машиной, вплоть до того, что по звонку можно эту машину прям выключить, физически нажав кнопку, кто-то там на ЦОДе возьмет и нажмет кнопку по нашему запросу.
И последняя инстанция ‒ это когда мы с вами хотим снять аж целую машину, чтобы вот вся машина, весь физический процессор, вся физическая память и вся физическая оперативная память была в нашем с вами владении. Это называется выделенный сервер. Эта услуга уже самая дорогая, потому что мы снимаем в аренду целую машину. Но, тем не менее, мы имеем абсолютно полный контроль над физической машиной, вплоть до того, что по звонку можно эту машину прям выключить, физически нажав кнопку, кто-то там на ЦОДе возьмет и нажмет кнопку по нашему запросу.
Характеристики хостинга
Теперь давайте подробнее поговорим про характеристики каждого из видов хостинга. Начнем с обычного вот хостинга.
Хостинг может различаться по мощности. Обычно мощность считается в процентах от машины, на которой располагается хостинг: 1% от процессора, 1% от оперативной памяти, 1% от жесткого диска. Либо считается в удельных единицах, например, нам жестко выделяется 100 Мб оперативной памяти на наш сайт, нам жестко выделяется 1 Гб жесткого диска и нам выделяется какая-то мощность процессора, там, в гига- либо в мегагерцах.
Окей, с мощностью разобрались. По каким еще критериям можно хостинг делить?
Есть такая штука, как трафика. То есть любой хостинг-провайдер ‒ компания, которая продает хостинг, отслеживает, сколько трафика потребляют наши клиенты, клиенты нашего сайта. Это значит, сколько они нагрузили за месяц, например, файлов с нашего хостинга. Например, если наш сайт весит 1 Мб, и 1000 клиентов обратились на нашу главную страницу сайта, то они загрузили 1000 Мб. И многие хостинги ограничивают трафик, потому что он тоже стоит денежки. Это, по факту, нагрузка на провод, по которому наши клиенты общаются с сервером. Обычно этот провод, он один либо несколько на весь ЦОД, и тысячи клиентов по вот этому вот проводу, называется (…) канала, общаются с тысячей серверов, которые там находятся, и поэтому вот за пропускную вот эту вот ширину канала мы платим.
Есть такая штука, как трафика. То есть любой хостинг-провайдер ‒ компания, которая продает хостинг, отслеживает, сколько трафика потребляют наши клиенты, клиенты нашего сайта. Это значит, сколько они нагрузили за месяц, например, файлов с нашего хостинга. Например, если наш сайт весит 1 Мб, и 1000 клиентов обратились на нашу главную страницу сайта, то они загрузили 1000 Мб. И многие хостинги ограничивают трафик, потому что он тоже стоит денежки. Это, по факту, нагрузка на провод, по которому наши клиенты общаются с сервером. Обычно этот провод, он один либо несколько на весь ЦОД, и тысячи клиентов по вот этому вот проводу, называется (…) канала, общаются с тысячей серверов, которые там находятся, и поэтому вот за пропускную вот эту вот ширину канала мы платим.
Кроме того, я вам говорил, что хостинг ‒ это очень ограничено- органичен доступ к операционной системе, на которой располагается, собственно, этот сам хостинг. И более того, хостинг-провайдер, он обычно предоставляет так называемую хостинг-панель, через которую мы можем какие-то настройки изменять. Например, можем создавать сайты, мы можем задавать, в какой среде должен исполняться наш сайт, потому что вы знаете, что сайт на разных на языках, которые написаны, они исполняются в разных средах. То есть PHP, он работает, там, под Engine Zend, Дотнет работает под управлением программы такой IIS, и вот хостинги тоже заточены под конкретные языки. Поэтому, когда покупаете именно хостинг, смотрите, чтобы он поддерживал ваш язык программирования: C Sharp, JAVA, PHP либо еще что-нибудь.
Кроме того, я вам говорил, что хостинг ‒ это очень ограничено- органичен доступ к операционной системе, на которой располагается, собственно, этот сам хостинг. И более того, хостинг-провайдер, он обычно предоставляет так называемую хостинг-панель, через которую мы можем какие-то настройки изменять. Например, можем создавать сайты, мы можем задавать, в какой среде должен исполняться наш сайт, потому что вы знаете, что сайт на разных на языках, которые написаны, они исполняются в разных средах. То есть PHP, он работает, там, под Engine Zend, Дотнет работает под управлением программы такой IIS, и вот хостинги тоже заточены под конкретные языки. Поэтому, когда покупаете именно хостинг, смотрите, чтобы он поддерживал ваш язык программирования: C Sharp, JAVA, PHP либо еще что-нибудь.
Кроме того, я вам говорил, что хостинг ‒ это очень ограничено- органичен доступ к операционной системе, на которой располагается, собственно, этот сам хостинг. И более того, хостинг-провайдер, он обычно предоставляет так называемую хостинг-панель, через которую мы можем какие-то настройки изменять. Например, можем создавать сайты, мы можем задавать, в какой среде должен исполняться наш сайт, потому что вы знаете, что сайт на разных на языках, которые написаны, они исполняются в разных средах. То есть PHP, он работает, там, под Engine Zend, Дотнет работает под управлением программы такой IIS, и вот хостинги тоже заточены под конкретные языки. Поэтому, когда покупаете именно хостинг, смотрите, чтобы он поддерживал ваш язык программирования: C Sharp, JAVA, PHP либо еще что-нибудь.
Это я к чему? Это я к тому, что есть еще бесплатные хостинги. И для они вообще существуют и зачем? Ну, для нас, для разработчиков, это очень удобно. На бесплатных хостингах можно разместить свой сайт, и он там будет висеть и не нужно будет платить деньги.
И кстати, вот за хостинги ежемесячно обычно оплату проводят. За место, в котором расположен ваш сайт, нужно платить бабки, и эти бабки платятся обычно ежемесячно. Что б вы понимали порядок, для обычненького, там, сайтика, блога ‒ это где-то 10$ в месяц, может, чуть меньше, чуть больше.
И кстати, вот за хостинги ежемесячно обычно оплату проводят. За место, в котором расположен ваш сайт, нужно платить бабки, и эти бабки платятся обычно ежемесячно. Что б вы понимали порядок, для обычненького, там, сайтика, блога ‒ это где-то 10$ в месяц, может, чуть меньше, чуть больше.
Тут сразу вопрос возникает: нафига тогда нужны платные хостинги? В общем, а тут-то всё просто, ребятушки. Бесплатные хостинги очень ограничены по ресурсам. Обычно там нет вообще баз данных, либо одна база данных какая-нибудь, обычно туда вообще нельзя привязать, какой-нибудь домен там тебе выдают, какой-нибудь внутренний домен четвертого уровня. Обычно у бесплатных хостингов жесткий аптайм, то есть хостинг там может быть с аптаймом 60% ‒ это значит, что приблизительно, ну, чуть меньше, чем полгода, половину времени ваш сайт будет недоступен. Но, тем не менее, вы всё равно можете выложить туда сайт и, там, не знаю, похвастаться друзьям, что он у вас есть.
Но, если вы хотите выкладывать на бесплатных хостингах сайт, которым будут пользоваться сотни пользователей в день, то это не ваш вариант, потому что это будет неудобно, это будет тормозливо.
Теперь давайте немножко поговорим про сервера, про виртуальные сервера и выделенные сервера. Что же в них, какие в них главные- у них главные характеристики? Тут, в принципе, всё то же самое. Во-первых, мощность сервера ‒ это процессор, это оперативная память и это жесткий диск. С процессором и оперативной памятью понятно ‒ чем больше, тем лучше. С жестким диском, тут нужно обратить внимание, что SSD-диски побыстрее, чем HDD-диски, поэтому хостинг с SSD-дисками, твердотельными, он будет пошустрее.
Что еще важно? Еще важно узнавать ширину канала пропускания, то есть ширину вот этого канала, к которому обращается клиент. Ну, это практически тоже самое, что и у хостинга. У хостинга есть те же характеристики, которые я назвал сейчас для сервера.
Что же у сервера уникально? У сервера уникальна операционная система, потому что уже в выделенном сервере и в виртуальном сервере мы имеем с вами доступ непосредственно к операционке. И тут есть варианты. Может операционка стоять Windows Server, и такие сервера обычно очень дорого стоят, потому что Винда, она платная. Большинство пользователей используют Linux Server, CentOS в основном, потому что Linux, он бесплатный, и CentOS, он очень хорошо заточен под задачи разворачивания сайтов, web-систем и тому подобное. Разница в том, что Виндой немножко проще пользоваться, а если вы покупаете сервер на Linux, то обычно у вас будет просто доступ через консоль к этому серверу и нужно будет командами его настраивать. Лучше нанять администратора какого-нибудь, который вам поможет с настройкой сервера первоначальной.
А это установка программа, с помощью которых ваш сайт начнет работать, web-серверов так называемых, и настройка вот как раз-таки той- не настройка, а установка как раз-таки панели управления вашим сервером, это опять-таки может быть Si Panel, либо еще что-нибудь. И в итоге у вас будет красивый web-интерфейс, доступный по какому-то адресу, через который вы сможете управлять своим выделенным сервером либо виртуальным сервером на манер хостинга, но у вас будет доступно в панели намного больше настроек, и плюс вы всегда сможете через консоль получить доступ полностью к операционной системе. Вот в этом фишка виртуальных и выделенных серверов.
Ну, поговорили за характеристики. Я думаю, галопом по Европам пробежавшись, вам стало немножко более понятно, что такое хостинг, сервера и какие характеристики у них бывают.
Еще осталось сказать, вообще где это всё дело искать. Ну, тут, как бы, далеко ходить не нужно. Самая- Самый простой вариант ‒ это загуглить. Если вам нужен бесплатный хостинг, идете гуглите бесплатный хостинг; обычный хостинг ‒ гуглите обычный хостинг; сервера ‒ пожалуйста, гуглите сервера. Обычно хостинг-провайдеры продают и хостинги, и выделенные сервера, и виртуальные сервера, то есть весь спектр услуг у них есть.
На что обратить внимание при поиске? Так это я уже говорил ‒ на технологию. Убедитесь, что, если вы покупаете именно хостинг, то этот хостинг, убедитесь, что поддерживает ваш язык программирования. Если же вы покупаете сервер, то там можно, в принципе, настроить любую среду, абсолютно любую, но для этого нужно будет иметь человека, который умеет это делать.
Ну и, собственно, если вам нужен бесплатный хостинг, то можете искать конкретно бесплатный, который будет перманентно бесплатный, но будет дико лагать, либо можете взять несколько дней теста нормального хостинга, посмотреть, как на нем вообще крутится сайт, какая у него админ-панелька, удобно ли им пользоваться, и если удобно, то купите его уже и платите на постоянной основе.
Платные хостинги, они всё-таки лучше. У них есть техподдержка, которая может вам всегда помочь. На бесплатных хостингах такого нету. У них есть бэк-ап системы, которые помогут вам остановить ваш сайт после сбоя, не дай бог, если он случится. То есть там куча всяких плюшек у платных хостингов, которые поначалу не будут вам очевидны, но потом, когда огребете, ну вот, пожалеете, что не покупали платный хостинг.
Есть еще, конечно, вариант развернуть у себя дома сервер, но, во-первых, тут нужно намного больше знаний, а во-вторых, ну, а если вдруг, там, не знаю, жена ваша, дочка, сестра, собака выдернет шнур с этим сервером, и он перестанет быть доступным. Плюс тут нужно учитывать, что нужен будет выделенный IP-адрес, который сейчас редкость, в принципе, для физических лиц; нужен будет широкий канал интернета, подведенный прям к вашему серверу. Чтоб вы понимали, к ЦОДам подводят гигабитные каналы, там прям 100 гигабитная, 300 гигабитная. А у вас хорошо, если будет, там, 50 мегабит оптоволокно, то есть намного меньше.
И в конце хочу вам рассказать немножко про штуки, от которых сейчас все писаются в мире разработки. Это, может вы слышали, облака. Типа, а что это такое? Ну, чтоб вы понимали, облака ‒ это обычные сервера, это тот же ЦОД, вот представляете вот этот вот здоровенное здание, в котором стоят сервера, одно в Копенгагене, другое в Попеннахере, в Вашингтоне. Вот, два ЦОДа стоят. И что значит облачное? Облачит значит, что эти ЦОДы вообще имеют 100%-ный, например, аптайм, и вы, как бы, грузите файлы в облако и в облаке они постоянно доступны. То есть, если в одном ЦОДе ваш сервер может слечь на какое-то время, да, и ваш сайт всё-таки будет несколько минут недоступен, то, если ваши файлы скопированы на два независимых ЦОДа, и если один из этих ЦОДов лег, то второй совершенно спокойно может дальше отдавать файлы вашего сайта. Таким макаром, там, если один ЦОД лежит, второй отдает файлы вашего сайта, если этот ЦОД клюет, то там третий отдает файлы вашего сайта. То есть файлы вашего сайта намного ЦОДов скопированы, скажем так, масштабированы, и если один прикладывается спать, ложится спать, то файлы отдаются с другого ЦОДа. И, таким образом, аптайм вашего сайта практически 100%.
И вот это вот переключение между разными ЦОДами, балансировка, скажем так, она и есть, наверное, суть облачности, суть того- одна из сутей облачности. Меня сейчас захейтят, что облачность на самом деле что-то другое, но фишка вот- одна из фишек именно в этом, в том, что есть умное переключение запросов к вашему сайту. Если вдруг кто-то из ЦОДов лег, то специальная программуля наберет и все запросы ваших клиентов на другой ЦОД отправляет, и в итоге ваш сайт постоянно доступен.
Есть крупные провайдеры, в том числе и облачных услуг, и еще куча других, и самые популярные из них ‒ это, наверное, Яндакс.Cloud, по-моему, так он называется, Google.Cloud, AWS и Azure. Про Яндекс не буду рассказывать, потому что он появился попозже, если захотите, почитайте. Про Google тоже не буду, это всё одинаковое.
Чуть-чуть расскажу про AWS и Azure, потому что с Azure я в основном работаю, а AWS ‒ это основной конкурент. В общем, это здоровенные такие мега-мега махины, скажем, мега-мега порталы, которые предоставляют и хостинги, и виртуальные хостинги, и облачные сервисы, и кучу там еще дуделок, перделок и свистелок, и чего угодно. Например, AWS поддерживается компанией Amazone, если я правильно помню, Amazone, Безос ‒ директор компании, самый богатый человек мира. И в общем, AWS предоставляет, скажем так, самый надежный вообще сервер, наверное, решение, самое надежное в мире. Ну, они так, по крайней мере, говорят. И поэтому клиенты крупных компаний ITшных предпочитают покупать места для своих проектов именно там. Плюс, это громадные, громадные ЦОДы у этих ребят, потому что, ну, всё-таки Amazone ‒ это здоровенная компания. И Azure туда же относится. Azure ‒ это тот же AWS, но только от компании Microsoft. Вот два вендора, да, ‒ Amazone и Microsoft, у одного AWS, у второго Azure.
Это такие вот услуги, мегауслуги по хостингу, то есть хороши они тем, что у них здоровенные, здоровенные ЦОДы, и ты можешь проекты любой сложности, любой нагруженности, любого размера туда пулять. Например, если у тебя твой сайт работает с большими данными, да, собирает, там, фотографии со спутников, у тебя сайт, не знаю, данных хранится терабайты, то навряд ли ты это сможешь загрузить на обычный какой-нибудь дохленький российский хостинг, потому что там тупо столько серверов не будет для такой информации. А у Amazone, у Azure, пожалуйста, у них таких серверов вот так вот, потому что, ну, у них дофига бабок, они делают прям здоровенные ЦОДы, у них всё прям это дело шарится, настраивается, балансируется, очень всё круто делается. И туда можно абсолютно разной сложности проекты запуливать. Ну и, как бы, надежность там очень высокая, потому что крупная, серьезная компания, они уже каках не будут нам делать. И поэтому клиенты ITшных компаний, которые мы разрабатываем сайты, web-системы, API, они обычно предпочитают хоститься вот именно на AWS, либо в Google.Cloud, либо в Azure.
А вот с Azure я плотненько работал. У них есть куча всяких фишек, начиная от хостингов, начиная от сразу настроенных штуковин для разворачивания приложений и заканчивая серверами, файловыми хранилищами уже настроенными, микросервесными всякими штуками, хранилищами для файлов одного типа, для файлов другого типа, базами данных, облачными, эскьюэльными, ноэскьюэльными. Короче, вот эти Azure и AWS, они предоставляют, кроме хостингов, выделенных серверов и виртуальных серверов, еще вереницу просто всего вокруг, и это, знаете, реально очень удобно. Конечно же, они за это и денег больше берут, как бы, куда ж без этого, но ненамного, на самом деле. И, как показывает практика крупных компаний, стабильность вот этих вот больших, скажем так, ну, назовем их провайдеров web-услуг, она достаточно велика, намного больше, чем стабильность каких-то мелких нишевых хостинг-провайдеров, там, в стране какой-нибудь, да. Поэтому для международного значения проектов, для Facebook’ов, для новых ВКонтактов, новых Twitter’ов, там, не знаю, Tinder’ов используются именно вот эти вот решения от крупных корпораций, потому что они очень надежные.
На этом мы сегодня завершим.