Не так давно вам приходилось покупать собственные серверы, размещать их на
стойках в дата-центрах и устанавливать на них множество программ: операцион-
ные системы, драйверы устройств, файловые системы, базы данных, веб-серверы,
серверы электронной почты, балансировщики нагрузки, мониторы и т. д. Эффект
новизны пропал, когда вы начали пытаться поддерживать работоспособность не-
скольких систем. Кроме того, вам приходилось постоянно волноваться о безопас-
ности.
Многие хостинговые службы предлагали позаботиться о ваших серверах за не-
которую плату, но вам все равно приходилось брать в аренду физические устройства
и постоянно платить за пиковую нагрузку.
С увеличением количества компьютеров ошибки становились все более рас-
пространенными. Вам нужно было масштабировать службы горизонтально и хра-
нить избыточные данные. Вы не можете предполагать, что сеть будет работать как
одна машина. Согласно Питеру Дойчу (Peter Deutsch), восемь ошибок восприятия
распределенных вычислений заключаются в следующем.
Сеть надежна.
Латентность равна нулю.
Полоса пропускания бесконечна.
Сеть безопасна.
342
Глава 11. Конкуренция и сети
Топология не меняется.
Существует всего один администратор.
Стоимость транспортировки равна нулю.
Сеть гомогенна.
Вы можете попробовать создать сложную распределенную систему, но для
этого потребуется много работы и другой набор инструментов. Можно сравнить
серверы с домашними животными — вы даете им имена, знаете их характер и ле-
чите их по мере необходимости. Но по мере роста их количества они становятся
больше похожими на скот: выглядят одинаково, имеют номера, и их просто заме-
няют, если возникает какая-то проблема.
Вместо того чтобы создавать систему, вы можете арендовать сервер в облаке.
В рамках этой модели обслуживание серверов является заботой кого-то другого,
а вы можете сконцентрироваться на своей службе, блоге или чем-то другом, что
хотели бы показать миру. Используя онлайн-панель инструментов и API, вы мо-
жете выбрать серверы с любой необходимой вам конфигурацией быстро и легко —
они эластичны. Вы можете отслеживать их статус и получать предупреждения в том
случае, если какой-то показатель превысил лимит. Облака в данный момент явля-
ются довольно популярной темой, и корпоративные расходы на облачные компо-
ненты все больше растут.
Рассмотрим, как Python взаимодействует с некоторыми популярными обла-
ками.
Google часто использует Python для внутренних нужд и нанимает именитых раз-
работчиков Python (у них какое-то время работал сам Гвидо ван Россум).
Перейдите на сайт App Engine (https://developers.google.com/appengine/) и затем
в меню Choose a Language (Выберите язык) установите флажок Python. Вы можете
вводить код Python в Cloud Playground и видеть результаты внизу. Сразу после
этого раздела вы увидите ссылки, с помощью которых можете загрузить на свой