На планёрке в ПиццаЕдинороге прозвучало: задеплоим сайт на сервер.
Ванечка представил холодный подвал, чёрный шкаф с мигающими лампочками и обязательно провода, много проводов. Кивнул с умным лицом и записал в блокнот: сервер = шкаф.
Через час его попросили описать в ТЗ, как клиент попадает на сайт заказа. Ванечка написал:
пользователь заходит на сайт, и сайт открывается.Разработчик прочитал и спросил:
по какому адресу заходит, на каком порту слушает приложение, домен уже купили или пока по IP?Ванечка снова открыл блокнот. Там было написано: сервер = шкаф. Блокнот не помог.
👍 ПиццаЕдинорог как раз принимал заказ по телефону, положил трубку и повернулся.
- Ванечка, ты у себя на ноутбуке проект запускаешь?
- Ну да, на localhost:8080, каждый день.
- Поздравляю, ты уже месяц работаешь на сервере.
- Это же просто ноутбук!
- Сервер и есть машина, на которой крутится код твоего приложения, никакой магии. localhost это доменное имя, которое превращается в IP-адрес 127.0.0.1, адрес твоего же ноутбука. Считай, ты испёк пиццу и сам её съел, не выходя с кухни.
- А чужой сайт тогда как открывается?
- Как доставка. Ты пишешь в браузере abc.com и жмёшь Enter:🔸Браузер идёт в DNS, это справочная. Спрашивает, по какому адресу живёт abc.com.
🔸DNS отдаёт IP-адрес. IP это адрес дома, уникальный.
🔸Браузер отправляет запрос по этому адресу, курьер выехал.
🔸Курьер приехал к дому, а в доме двести квартир, как на одном сервере крутится десяток приложений. Чтобы понять, кому именно пицца, нужен порт. Порт это номер квартиры. Сервер находит нужное приложение и возвращает ответ.
- Поэтому https://abc.com это ровно то же самое, что 35.154.33.64:443. Просто 443 это порт HTTPS по умолчанию, его не пишут.
- А зачем вообще домены, если есть IP?
- Попробуй продиктовать курьеру 35.154.33.64. А теперь скажи: ПиццаЕдинорог на Ленина. Вот и весь ответ, домен покупают, чтобы человек запоминал имя, и настраивают маппинг имени на IP.Ванечка вычеркнул старую запись и написал: сервер = машина + адрес + порт.
💛💛💛💛💛
Что важно запомнить:
⚪️Сервер это машина, на которой выполняется код приложения. Ваш ноутбук тоже сервер
⚪️DNS переводит доменное имя в IP-адрес
⚪️IP это адрес машины, порт это конкретное приложение на ней
⚪️https://abc.com равно 35.154.33.64:443, порт 443 просто скрыт по умолчанию
💛💛💛💛💛
🔸🔸🔸🔸🔸🔸
Как выкатить приложение в интернет:
Приложение слушает порт 8080 на ноутбуке. Чтобы к нему обращались другие, нужен публичный IP, привязанный к машине, тогда сайт доступен по http://публичный_ip:8080.
Делать это самому морока: питание, охлаждение, канал, обновления, физическая безопасность. Поэтому серверы арендуют у облачных провайдеров: вы получаете виртуальную машину с публичным IP и доступом из любой точки мира, а железо остаётся заботой провайдера.
💛💛💛💛💛
Зачем это аналитику: фраза система А обращается к системе Б требованием не является. Требование это протокол, хост, порт, метод и формат. Без них интеграцию не настроить.
💛 А вы помните момент, когда до вас дошло, что сервер это просто чужой компьютер? Или до сих пор представляете шкаф с лампочками?
💛💛💛💛💛
Бесплатный практикум
Запись на 3 поток
💛💛💛💛💛
#ВанечкаИЕдинорог #СистемныйАнализ #SystemDesign #Сети #Обучение
