Прежде чем отправиться в плавание, мы хотим поделиться кратким уроком истории инфраструктуры. Это поможет получить представление о потребностях, которые удовлетворяет облачная инфраструктура, и о том, как в полной мере использовать ее для получения максимальной отдачи, производительности и стабильности от вашей инфраструктуры.
В прошлом присутствие в Интернете требовало одного из трех основных вариантов инфраструктуры:
-
Общий хостинг, который в первую очередь подходит только для веб-разработчиков и небольших веб-приложений.
-
Выделенные серверы, самый дорогой и наименее гибкий вариант, который можно разместить в центре обработки данных или в помещении.
-
Виртуальные серверы, широко известные как VPS (виртуальные частные серверы), которые совместно использовали ресурсы выделенного оборудования. Несмотря на некоторые потери производительности, связанные с виртуализацией, общие VPS с современным серверным оборудованием превосходят требования большинства пользователей.
Для масштабирования компаниям, которые полагаются на дорогие локальные серверы, необходимо заранее запросить дополнительное оборудование. В любой момент времени их вычислительные ресурсы будут превышать их требования или отставать, но никогда не совпадут. И хотя виртуальные серверы предлагали лучшее из общих и выделенных предложений, структура ценообразования все еще была аналогична выделенным серверам; жесткий ежемесячный цикл выставления счетов требовал обязательств и низкой гибкости.
В конце 2000-х годов, в ответ на эти растущие требования рынка, рынок виртуальных серверов начал расширяться и работать в более широком масштабе, что привело к брендингу «облачных вычислений». Облачные вычисления решили проблему масштабируемости, предлагая ресурсы по запросу. Концепция выставления счетов с меньшими временными затратами сделала ресурсы по требованию очень экономически эффективными. Весь кластер разработки может быть развернут за небольшую часть стоимости, если он оплачивается по ставке в час и существует только в течение короткого времени, необходимого для разработки и тестирования.
Облачные вычисления были менее четко определены в более ранние времена, но эта концепция продавалась как отказоустойчивое, всегда онлайн-решение для инфраструктуры со встроенной избыточностью данных. Хотя это может быть не так по умолчанию, его можно построить, и эта книга покажет вам, как это сделать. Мы разработаем решения для предотвращения распространенных проблем облачной инфраструктуры, и в итоге ваша инфраструктура будет работать в режиме онлайн, масштабироваться по мере необходимости, а также будет защищена и легко устранять неполадки.
Один экземпляр облака - это единственная точка отказа. Наши рекомендации, планы и решения помогают распределить ваше приложение во многих случаях.
Чтобы проиллюстрировать эту концепцию, мы берем знакомый пример использования и применяем методологии масштабирования и облачных вычислений. WordPress является популярной платформой CMS и блогов, которая часто размещается с помощью провайдеров виртуального хостинга. Сайты WordPress, которые видят всплеск трафика, потребуют переключения на выделенный сервер или VPS для большей производительности. Эти вводные и реакционные действия не учитывают будущую масштабируемость или какие-либо потребности в избыточности. Допустим, у вас есть веб-сайт, использующий программное обеспечение WordPress CMS, и вы должны обеспечить бесперебойную работу на 99,999%. Есть бизнес-пример того, что веб-сайт почти всегда находится в сети и работает идеально все время. Эту сложную проблему легче решить с помощью облачных вычислений по сравнению с работой с парадигмой выделенного сервера.
В этой книге мы рассмотрим концепцию отдельной установки Wordpress и масштабируем ее, чтобы обрабатывать огромные объемы трафика и пользователей, обеспечивая при этом правильное планирование времени простоя и потери данных.
Наши решения
Эта книга разбита на пять частей. Вот более подробный обзор каждого из них. Если вы не понимаете некоторые концепции в этих обзорах, не беспокойтесь. Именно этому научит вас эта книга.
Часть 1 - Введение и настройка
Это то, что вы сейчас читаете. В следующей и последней главе вы познакомитесь с инструментами, которые мы будем использовать для создания нашей стартовой инфраструктуры, и с тем, как настроить вашу среду, чтобы следовать ей.
Часть 2 - Масштабирование и предотвращение простоя
Если ваша инфраструктура не может оставаться в сети, вам будет тяжело делать много всего.
В этом разделе мы представляем управление конфигурацией, чтобы гарантировать, что все ресурсы нашей инфраструктуры стандартизированы и могут быть быстро развернуты. Оттуда мы введем балансировку нагрузки и высокую доступность, чтобы устранить большинство проблем, которые вызывают простои. После того как у нас будет масштабируемое решение, мы добавим средства непрерывной разработки, чтобы мы могли выполнять итерацию и обновлять нашу инфраструктуру.
Часть 3 - Обеспечение безопасности ваших данных
Ваши данные - это один из самых важных активов вашей компании. Потеря данных не вариант.
Здесь мы выделяем лучшие решения для хранения данных для конкретных случаев использования. Мы выходим за рамки базовых концепций резервного копирования, обрисовывая подводные камни для потери данных, чтобы быть в курсе, а также планируя серьезные сбои в работе. Цель состоит в том, чтобы иметь планы по сокращению простоев и всегда иметь несколько источников для восстановления данных.
Часть 4 - Знать все о вашей инфраструктуре
На этом этапе наша инфраструктура будет масштабироваться, и мы не потеряем никаких данных, но всегда будут проблемы, которые мы не могли или не могли предвидеть.
Независимо от того, насколько хорошо спроектирована наша инфраструктура, нам необходимо иметь возможность эффективно устранять неполадки и диагностировать проблемы. В этом разделе описываются выявление узких мест и ошибок, определение производительности и тестирование.
Часть 5 - Защита вашей инфраструктуры
Несмотря на разрушительные последствия простоя, из-за инцидента, связанного с безопасностью, вы можете захотеть решить простую проблему масштабирования.
Вся эта книга о проактивных мерах, которые вы можете предпринять, чтобы предотвратить катастрофические проблемы. Этот последний раздел посвящен вопросам безопасности и рассматривает лучшие практики для защиты инфраструктуры от основных угроз безопасности.