В этой статье обсуждается, как разместить веб-сайт в Google Cloud. Google Cloud предоставляет надежную, гибкую, надежную и масштабируемую платформу для обслуживания веб-сайтов. Google создал Google Cloud, используя ту же инфраструктуру, которую Google использует для обслуживания контента с таких сайтов, как Google.com, YouTube и Gmail. Вы можете обслуживать контент своего веб-сайта, используя тип и дизайн инфраструктуры, которые лучше всего соответствуют вашим потребностям. Эта статья может быть вам полезна, если вы: - Знание того, как создать веб-сайт, а также развертывание и запуск некоторой инфраструктуры веб-обслуживания до - Оценка возможности и способа переноса вашего сайта в Google Cloud. Если вы хотите создать простой веб-сайт, рассмотрите возможность использования Google Sites, структурированного инструмента для создания вики- и веб-страниц. Дополнительную информацию см. в справке по Сайтам. ## Выбор варианта Если вы новичок в использовании Google Cloud, разумно начать с технологии, с которой вы уже знакомы. Например, если вы в настоящее время используете аппаратные серверы или виртуальные машины (ВМ) для размещения своего сайта, возможно, у другого облачного провайдера или на собственном оборудовании, Compute Engine предлагает вам знакомую парадигму. Если вы уже используете предложение «платформа как услуга» (PaaS), такое как Heroku или Engine Yard, лучше всего начать с App Engine. Если вы предпочитаете бессерверные вычисления, Cloud Run, вероятно, станет для вас хорошим вариантом. После того, как вы поближе познакомитесь с Google Cloud, вы сможете изучить все разнообразие продуктов и услуг, которые предоставляет Google Cloud. Например, если вы начали с Compute Engine, вы можете расширить возможности своего сайта с помощью Google Kubernetes Engine (GKE) или перенести некоторые или все функции в App Engine и Cloud Run. В следующей таблице приведены варианты хостинга в Google Cloud: |Опция||Продукт||Хранение данных||Балансировка нагрузки||Масштабируемость||Ведение журнала и мониторинг| |Статический сайт|| | Облачное хранилище Хостинг Firebase |Корзина облачного хранилища|| | HTTP(S) необязательный |Автоматически| |Виртуальные машины||Вычислительный движок|| | Cloud SQL Admin API, Cloud Storage API, Datastore API и Cloud Bigtable API, или вы можете использовать другого поставщика внешнего хранилища. Постоянные диски на основе жестких дисков, называемые | | HTTP(S) TCP-прокси SSL-прокси Терминация IPv6 Сеть Межрегиональный Внутренний |Автоматически с управляемыми группами экземпляров| |Контейнеры||GKE||Аналогичен Compute Engine, но иначе взаимодействует с постоянными дисками||Сеть | HTTP(S) |Автомасштабирование кластера| |Управляемая платформа|| | Механизм приложений |Облачные сервисы Google, такие как Cloud SQL, Firestore, Cloud Storage и доступные сторонние базы данных|| | HTTP(S) Управляется Google |Управляется Google| |Бессерверный|| | Облачный бег |Облачные сервисы Google, такие как Cloud SQL, Firestore, Cloud Storage и доступные сторонние базы данных|| | HTTP(S) Управляется Google |Управляется Google| Эта статья поможет вам понять основные технологии, которые вы можете использовать для веб-обслуживания в Google Cloud, и даст представление о том, как эти технологии работают. В статье содержатся ссылки на полную документацию, учебные пособия и статьи о решениях, которые помогут вам глубже понять, когда вы будете готовы. ## Понимание затрат Поскольку существует так много переменных и каждая реализация отличается, в этой статье нет возможности дать конкретные рекомендации по затратам. Чтобы понять принципы Google в отношении того, как работает ценообразование в Google Cloud, см. страницу с ценами. Чтобы узнать цены на отдельные услуги, см. раздел цен на продукты. Вы также можете использовать калькулятор цен, чтобы оценить, как может выглядеть ваше использование Google Cloud. Вы можете предоставить подробную информацию об услугах, которые вы хотите использовать, а затем просмотреть оценку стоимости. ## Настройка служб доменных имен Обычно вы хотите зарегистрировать доменное имя для своего сайта. Вы можете использовать общедоступный регистратор имен доменов, например Google Domains, чтобы зарегистрировать уникальное имя для своего сайта. Если вы хотите полностью контролировать свою собственную систему доменных имен (DNS), вы можете использовать Cloud DNS в качестве поставщика DNS. Документация по Cloud DNS включает краткое руководство, которое поможет вам приступить к работе. Если у вас есть существующий провайдер DNS, который вы хотите использовать, вам, как правило, необходимо создайте пару записей с этим провайдером. Для доменного имени, такого как example.com, вы создаете Запись у вашего DNS-провайдера. Для www.example.com поддомен, вы создаете Запись CNAME для www, чтобы указать это к домен example.com. Запись сопоставляет имя хоста с IP-адресом Запись CNAME создает псевдоним для Запись Если регистратор вашего доменного имени также является вашим DNS-провайдером, это, вероятно, все, что вам нужно сделать. Если вы используете разных провайдеров для регистрации и DNS, убедитесь, что у вашего регистратора доменных имен есть правильные серверы имен, связанные с вашим доменом. После внесения изменений в DNS для распространения обновлений записей может потребоваться некоторое время в зависимости от значений времени жизни (TTL) в вашей зоне. Если это новое имя хоста, изменения вступают в силу быстро, потому что преобразователи DNS не кэшируют предыдущие значения и могут связаться с поставщиком DNS, чтобы получить необходимую информацию для маршрутизации запросов. ## Размещение статического веб-сайта Самый простой способ обслуживать контент веб-сайта через HTTP(S) — это разместить *статические веб-страницы*. Статические веб-страницы обслуживаются без изменений, как они были написаны, обычно с использованием HTML. Использование статического веб-сайта хороший вариант, если страницы вашего сайта редко меняются после того, как они были опубликованы, например сообщения в блогах или страницы, которые являются частью малого бизнеса интернет сайт. Вы можете многое сделать со статическими веб-страницами, но если вам нужно, чтобы ваш сайт иметь надежное взаимодействие с пользователями через код на стороне сервера, вы должны рассмотреть другие варианты, рассмотренные в этой статье Размещение статического веб-сайта в облачном хранилище Для размещения статического сайта в Cloud Storage необходимо создать Ведро облачного хранилища, загрузите контент и протестируйте новый сайт. Вы можете обслуживать ваши данные непосредственно из storage.googleapis.com, или вы можете подтвердите, что вы владеете своим доменом и использовать ваше доменное имя Вы можете создавать свои статические веб-страницы по своему усмотрению. Например, вы можете создавать страницы вручную с помощью HTML и CSS. Вы можете использовать *генератор статических сайтов*, Такие как Джекилл, Призрак, или Хьюго, для создания контента С помощью генераторов статических сайтов вы создаете статический веб-сайт, авторинг в уценка, предоставление шаблонов и инструментов. Генераторы сайтов в целом предоставить локальный веб-сервер, который вы можете использовать для предварительного просмотра вашего контента После того, как ваш статический сайт заработает, вы можете обновить статические страницы с помощью любого процесс, который вам нравится. Этот процесс может быть таким же простым, как ручное копирование обновленная страница в корзину. Вы можете выбрать более автоматизированный подход, например, хранить свой контент на GitHub, а затем использовать вебхук запустить скрипт, который обновляет корзину. Еще более продвинутая система может использовать инструмент непрерывной интеграции/непрерывной доставки (CI/CD), такой как Дженкинс, обновлять содержимое в ведро. У Дженкинса есть облачное хранилище плагин который обеспечивает Шаг после сборки Google Cloud Storage Uploader для публикации сборки артефакты в облачное хранилище Если у вас есть веб-приложение, которое должно обслуживать статический контент или загруженные пользователем статические носители, использование облачного хранилища может быть экономичным и эффективным способом размещения и обслуживания этого контента, при этом уменьшая количество динамических запросов к вашему веб-приложению. Кроме того, облачное хранилище может напрямую принимать контент, отправленный пользователями. Эта функция позволяет пользователям загружать большие медиафайлы напрямую и безопасно, без проксирования через ваши серверы. Чтобы получить максимальную производительность от вашего статического веб-сайта, ознакомьтесь с рекомендациями для облачного хранилища. Дополнительные сведения см. на следующих страницах: - Хостинг статического сайта - J для Дженкинса (сообщение в блоге) - Band Aid 30 в Google Cloud (сообщение в блоге) - Документация по облачному хранилищу Размещение статического веб-сайта с помощью Firebase HostingFirebase Hosting обеспечивает быстрый и безопасный статический хостинг для вашего веб-приложения.С помощью Firebase Hosting вы можете развертывать веб-приложения и статический контент в глобальной сети доставки контента (CDN) с помощью одной командыВот некоторые преимущества, которые вы получаете, когда используйте Firebase Hosting:— SSL без настройки встроен в Firebase Hosting.Бесплатное предоставление SSL-сертификатов на пользовательских доменах— весь ваш контент обслуживается через HTTPS— ваш контент доставляется вашим пользователям с границ CDN по всему миру— Используя интерфейс командной строки Firebase, вы можете настроить и запустить свое приложение за считанные секунды.Используйте инструменты командной строки для добавления целей развертывания в процесс сборки— вы получаете функции управления выпуском, такие как атомарное развертывание новых ресурсов, полное управление версиями и управление одним щелчком откаты— Хостинг предлагает конфигурацию, полезную для одностраничных приложений и других сайтов, более похожих на приложения— Хостинг предназначен для беспрепятственного использования с другие функции FirebaseДополнительную информацию см. на следующих страницах:## Использование виртуальных машин с Compute EngineПримеры использования инфраструктуры как услуги (IaaS) , Google Cloud предоставляет Compute Engine.Compute Engine предоставляет надежную вычислительную инфраструктуру, но вы должны выбрать и настроить компоненты платформы, которые хотите использовать.При использовании Compute Engine вы несете ответственность за настройку, администрирование и мониторинг систем.Google гарантирует, что ресурсы доступны, надежны и готовы к использованию, но вы сами должны предоставлять их и управлять ими.Преимущество здесь в том, что у вас есть полный контроль над системами и неограниченная гибкость.Используйте Compute Engine для разработки и развертывания практически любой системы обслуживания веб-сайтов, которую вы хотите.Вы можете использовать виртуальные машины, называемые экземплярами, для создания своего приложения, как если бы у вас была собственная аппаратная инфраструктура.Compute Engine предлагает различные типы компьютеров для настройки конфигурации в соответствии с вашими потребностями и бюджетом.Вы можете выбрать, какие операционные системы, стеки разработки, языки, фреймворки, сервисы и другие программные технологии вы предпочитаетеАвтоматическая настройка с помощью Google Cloud MarketplaceСамый простой способ развернуть полный стек веб-обслуживания — использовать Google Cloud Marketplace.Всего за несколько кликов вы можете развернуть любое из более чем 100 полностью реализованных решений с помощью Google Click to Deploy или BitnamiНапример, вы можете настроить стек LAMP или WordPress с облачным рынком.Система развертывает полный работающий программный стек всего за несколько минут на одном экземпляре.Перед развертыванием Cloud Marketplace показывает смету затрат на запуск сайта, предоставляет четкую информацию о том, какие версии программных компонентов он устанавливает для вас, и позволяет настраивать конфигурацию, изменяя имена экземпляров компонентов, выбирая тип машины и выбор размера диска.После развертывания вы получаете полный контроль над экземплярами Compute Engine, их конфигурациями и программным обеспечениемНастройка вручнуюВы также можете создать свою инфраструктуру на Compute Engine вручную, создавая конфигурацию с нуля или используя развертывание Google Cloud Marketplace.Например, вы можете использовать версию программного компонента, не предлагаемую Cloud Marketplace, или, возможно, вы предпочитаете устанавливать и настраивать все самостоятельноПредоставление полного Framework и передовые методы настройки веб-сайта выходят за рамки этой статьи.Но с точки зрения высокого уровня, техническая сторона настройки инфраструктуры веб-обслуживания на Compute Engine требует, чтобы вы:Понимали требования.Если вы создаете новый веб-сайт, убедитесь, что вы понимаете, какие компоненты вам нужны, такие как экземпляры, требования к хранилищу и сетевая инфраструктура.Если вы переносите свое приложение из существующего решения, вы, вероятно, уже понимаете эти требования, но вам нужно подумать о том, как ваша существующая настройка сопоставляется с сервисами Google Cloud.Спланируйте дизайн.Продумайте свою архитектуру и запишите свой проект.Будьте как можно более явными.Создайте компоненты.Компоненты, которые вы обычно считаете физическими активами, такие как компьютеры и сетевые коммутаторы, предоставляются через службы в Compute Engine.Например, если вам нужен компьютер, вам нужно создать экземпляр Compute Engine.Если вам нужен постоянный жесткий диск, создайте и его.Cloud Deployment Manager или Terraform делают этот процесс простым и повторяемым.Настройка и настройка. После того, как у вас есть нужные компоненты, вам необходимо настроить их, установить и настроить программное обеспечение, а также написать и развернуть любой требуемый код настройки.Вы можете воспроизвести конфигурацию, запустив сценарии оболочки, что поможет ускорить будущие развертывания.Диспетчер развертывания также помогает здесь, предоставляя декларативные гибкие шаблоны конфигурации для автоматического развертывания ресурсов.Вы также можете воспользоваться инструментами автоматизации ИТ, такими как Puppet и Chef.Разверните активы.Предположительно, у вас есть веб-страницы и изображения.Тест.Убедитесь, что все работает так, как вы ожидаете.Развертывание в рабочей среде.Откройте свой сайт для всего мира, чтобы увидеть и использоватьЧтобы помочь вам начать работу и понять, что значит настраивать экземпляры Compute Engine вручную, попробуйте один или несколько из следующие руководства:Хранение данных с помощью Compute Engine Большинству веб-сайтов требуется какое-то хранилище. Вам может понадобиться хранилище по разным причинам, например, для сохранения файлов, которые загружают ваши пользователи, и, конечно же, ресурсов, которые использует ваш сайт. Google Cloud предоставляет различные услуги управляемого хранилища, в том числе: - База данных SQL в Cloud SQL, основанная на MySQL - Два варианта хранения данных NoSQL: Firestore и Cloud Bigtable - Согласованное, масштабируемое хранилище объектов большой емкости в Облачное хранилище Облачное хранилище бывает нескольких классов: - Стандарт обеспечивает максимальную доступность - Nearline обеспечивает недорогой выбор, идеально подходящий для доступа к данным реже одного раза в месяц. - Coldline предлагает недорогой вариант, идеально подходящий для доступа к данным реже одного раза в квартал. - Архив обеспечивает самый дешевый вариант для архивирования, резервного копирования и аварийного восстановления. - Постоянные диски на Compute Engine для использования в качестве основного хранилища для ваших экземпляров. Compute Engine предлагает оба постоянных диска на основе жестких дисков, называемые стандартные постоянные диски и твердотельные постоянные диски (SSD). Вы также можете настроить предпочитаемую технологию хранения в Compute Engine с помощью постоянных дисков. Например, вы можете настроить PostgreSQL в качестве базы данных SQL или MongoDB в качестве хранилища NoSQL. Чтобы понять весь спектр и преимущества служб хранения в Google Cloud, см. раздел Выбор варианта хранения. Балансировка нагрузки с Compute Engine Для любого масштабируемого веб-сайта часто требуется использование технологий балансировки нагрузки для распределения нагрузки между серверами. У вас есть множество вариантов проектирования веб-серверов с балансировкой нагрузки на Compute Engine, в том числе: - Балансировка нагрузки HTTP(S) Объясняет основы использования облачной балансировки нагрузки. - Балансировка нагрузки на основе контента. Демонстрирует, как распределять трафик по разным экземплярам на основе входящего URL-адреса. - Межрегиональная балансировка нагрузки. Демонстрирует настройку экземпляров ВМ в разных регионах и использование балансировки нагрузки HTTP или HTTPS для распределения трафика по регионам. - Балансировка нагрузки TCP-прокси. Демонстрирует настройку глобальной балансировки нагрузки прокси-сервера TCP для службы, которая существует в нескольких регионах. - Балансировка нагрузки SSL-прокси. Демонстрирует настройку глобальной балансировки нагрузки прокси-сервера SSL для службы, которая существует в нескольких регионах. - Завершение IPv6 для балансировки нагрузки HTTP(S), SSL-прокси и TCP-прокси. Объясняет завершение IPv6 и параметры настройки балансировщиков нагрузки для обработки запросов IPv6. - Балансировка сетевой нагрузки. Показан базовый сценарий, в котором настраивается конфигурация балансировки нагрузки уровня 3 для распределения HTTP-трафика между работоспособными экземплярами. - Балансировка нагрузки между регионами с использованием бэкэндов Microsoft IIS. Показывает, как использовать балансировщик нагрузки Compute Engine для распределения трафика на серверы Microsoft Internet Information Services (IIS). - Настройка внутренней балансировки нагрузки. Вы можете настроить балансировщик нагрузки, который распределяет сетевой трафик в частной сети, не подключенной к Интернету. Внутренняя балансировка нагрузки полезна не только для приложений интрасети, где весь трафик остается в частной сети, но и для сложных веб-приложений, в которых внешний интерфейс обращается к внутренним серверам с использованием частной сети. Развертывание балансировки нагрузки является гибким, и вы можете использовать Compute Engine с вашими существующими решениями. Например, балансировка нагрузки HTTP(S) с использованием Nginx — это одно из возможных решений, которое можно использовать вместо балансировщика нагрузки Compute Engine. Распространение контента с помощью Compute Engine Поскольку время отклика является фундаментальным показателем для любого веб-сайта, использование CDN для снижения задержки и повышения производительности часто является обязательным требованием, особенно для сайта с глобальным веб-трафиком. Облачная CDN использует глобально распределенные граничные точки присутствия Google для доставки контента из кэш-памяти, ближайшей к пользователям. Cloud CDN работает с балансировкой нагрузки HTTP(S). Чтобы предоставлять контент из Compute Engine, Cloud Storage или и того, и другого с одного IP-адреса, включите Cloud CDN для балансировщика нагрузки HTTP(S) Автомасштабирование с помощью Compute Engine Вы можете настроить свою архитектуру для добавления и удаления серверов по мере изменения спроса. Этот подход может помочь обеспечить хорошую работу вашего сайта при пиковых нагрузках, сохраняя при этом расходы под контролем в более типичные периоды спроса. Compute Engine предоставляет средство автомасштабирования, которое можно использовать для этой цели. Автомасштабирование — это функция управляемых групп экземпляров. Группа управляемых экземпляров — это пул однородных экземпляров виртуальных машин, созданных на основе общего шаблона экземпляров. Средство автомасштабирования добавляет или удаляет экземпляры в управляемой группе экземпляров. Хотя в Compute Engine есть как управляемые, так и неуправляемые группы экземпляров, с автомасштабированием можно использовать только управляемые группы экземпляров. Дополнительные сведения см. в статье об автомасштабировании в Compute Engine. Более подробно о том, что нужно для создания масштабируемого и отказоустойчивого веб-приложения, см. в разделе Создание масштабируемых и отказоустойчивых веб-приложений. Ведение журнала и мониторинг с помощью Compute Engine Google Cloud включает в себя функции, которые вы можете использовать, чтобы следить за тем, что происходит с вашим сайтом. Cloud Logging собирает и хранит журналы приложений и служб в Google Cloud. Вы можете просматривать или экспортировать журналы и интегрировать сторонние журналы с помощью агента ведения журналов. Облачный мониторинг предоставляет информационные панели и оповещения для вашего сайта.Вы настраиваете мониторинг с помощью консоли Google Cloud.Вы можете просмотреть показатели производительности для облачных служб, виртуальных машин и распространенных серверов с открытым исходным кодом, таких как MongoDB, Apache, Nginx и Elasticsearch.Вы можете использовать Cloud Monitoring API для извлечения данных мониторинга и создания пользовательских метрикCloud Monitoring также обеспечивает проверку времени безотказной работы, которая отправляет запросы на ваши веб-сайты, чтобы узнать, отвечают ли они.Вы можете отслеживать доступность веб-сайта, развернув политику оповещения, которая создает инцидент, если проверка работоспособности не удаласьУправление DevOps с помощью Compute EngineДля получения информации об управлении DevOps с Compute Engine, см. следующие статьи:— Распределенное нагрузочное тестирование с использованием Kubernetes— Запуск Spinnaker на Compute Engine— Управление развертываниями в Google Cloud с помощью Spinnaker# # Использование контейнеров с GKEВозможно, вы уже используете контейнеры, например контейнеры Docker.Для веб-обслуживания контейнеры предлагают несколько преимуществ, в том числе:Компонентизация.Вы можете использовать контейнеры для разделения различных компонентов вашего веб-приложения.Например, предположим, что на вашем сайте работает веб-сервер и база данных.Вы можете запускать эти компоненты в отдельных контейнерах, изменяя и обновляя один компонент, не затрагивая другой.Поскольку дизайн вашего приложения становится все более сложным, контейнеры хорошо подходят для сервис-ориентированной архитектуры, включая микросервисы.Такой дизайн поддерживает масштабируемость, помимо прочего.Переносимость.В контейнере есть все, что нужно для запуска — ваше приложение и его зависимости объединены вместе.Вы можете запускать свои контейнеры на различных платформах, не беспокоясь о деталях базовой системы.Быстрое развертывание.Когда приходит время развертывания, ваша система создается из набора определений и образов, поэтому ее части можно развертывать быстро, надежно и автоматически.Контейнеры, как правило, небольшие и развертываются гораздо быстрее, чем, например, виртуальные машиныКонтейнерные вычисления в Google Cloud предлагают еще больше преимуществ для веб-обслуживания, в том числе:Оркестровка.GKE — это управляемая служба, построенная на Kubernetes, системе оркестрации контейнеров с открытым исходным кодом, представленной Google.При использовании GKE ваш код выполняется в контейнерах, являющихся частью кластера, состоящего из экземпляров Compute Engine.Вместо того, чтобы администрировать отдельные контейнеры или создавать и закрывать каждый контейнер вручную, вы можете автоматически управлять кластером через GKE, который использует заданную вами конфигурацию.Регистрация изображения.Container Registry или Artifact Registry предоставляет частное хранилище для образов Docker в Google Cloud.Вы можете получить доступ к реестру через конечную точку HTTPS, поэтому вы можете получать образы с любого компьютера, будь то экземпляр Compute Engine или ваше собственное оборудование.Служба реестра размещает ваши пользовательские изображения в облачном хранилище в рамках вашего проекта Google Cloud.Этот подход по умолчанию гарантирует, что ваши пользовательские изображения будут доступны только участникам, имеющим доступ к вашему проекту.Мобильность.Это означает, что у вас есть возможность перемещать и комбинировать рабочие нагрузки с другими облачными провайдерами или смешивать рабочие нагрузки облачных вычислений с локальными реализациями для создания гибридного решенияХранение данных с помощью GKEПоскольку GKE работает в Google Cloud и использует экземпляры Compute Engine в качестве узлов, ваши варианты хранения имеют много общего с хранилищем в Compute Engine.Вы можете получить доступ к Cloud SQL, Cloud Storage, Datastore и Bigtable через их API или использовать другого внешнего поставщика хранилища, если хотите.Однако GKE взаимодействует с постоянными дисками Compute Engine иначе, чем обычный экземпляр Compute Engine.Экземпляр Compute Engine включает подключенный диск.При использованииCompute Engine, пока экземпляр существует, том диска остается с экземпляром.Вы даже можете отсоединить диск и использовать его с другим экземпляром.Но в контейнере файлы на диске недолговечны.Когда контейнерперезапускается, например, после сбоя, файлы на диске теряются.Kubernetes решаетэту проблему, используятомабстракцию, и один тип тома —gcePersistentDiskЭто означает, что вы можете использовать постоянные диски Compute Engine с контейнерами, чтобызащитить ваши файлы данных от удаления при использовании GKEЧтобы понять функции и преимущества тома , вы должны сначала немного разобраться в модулях.Вы можете думать о модуле как о логическом хосте для конкретного приложения для одного или нескольких контейнеров.Модуль работает на экземпляре узла.Когда контейнеры являются членами пода, они могут совместно использовать несколько ресурсов, включая набор общих томов хранилища.Эти тома позволяют данным сохраняться при перезапуске контейнера и совместно использоваться контейнерами внутри модуля.Конечно, вы также можете использовать один контейнер и том в поде, но под — это необходимая абстракция для логического соединения этих ресурсов друг с другомДля примера , см. руководство Использование постоянных дисков с WordPress и MySQLБалансировка нагрузки с помощью GKEМногие крупные архитектуры веб-обслуживания должны иметь несколько работающих серверов, которые могут совместно использовать требования к трафику.Поскольку с помощью GKE можно создавать несколько контейнеров, узлов и модулей и управлять ими, это естественное решение для системы веб-обслуживания с балансировкой нагрузкиИспользование балансировки сетевой нагрузкиСамый простой способ создать балансировщик нагрузки в GKE — использовать балансировку сетевой нагрузки Compute Engine.Балансировка сетевой нагрузки может сбалансировать нагрузку ваших систем на основе входящих данных интернет-протокола, таких как адрес, порт и тип протокола.Балансировка сетевой нагрузки использует правила переадресации.Эти правила указывают на целевые пулы, в которых перечислены доступные экземпляры для балансировки нагрузки С помощью балансировки сетевой нагрузки вы можете сбалансировать нагрузку дополнительных протоколов на основе TCP/UDP, таких как SMTP-трафик, и ваше приложение может напрямую проверять пакеты. Вы можете развернуть балансировку сетевой нагрузки, просто добавив тип: LoadBalancer поле в файле конфигурации вашего сервиса Использование балансировки нагрузки HTTP(S) Если вам нужны более продвинутые функции балансировки нагрузки, такие как балансировка нагрузки HTTPS, балансировка нагрузки на основе контента или балансировка нагрузки между регионами, вы можете интегрировать службу GKE с функцией балансировки нагрузки HTTP/HTTPS Compute Engine. Kubernetes предоставляет ресурс Ingress, который инкапсулирует набор правил для маршрутизации внешнего трафика на конечные точки Kubernetes. В GKE ресурс Ingress обрабатывает подготовку и настройку балансировщика нагрузки Compute Engine HTTP/HTTPS. Дополнительные сведения об использовании балансировки нагрузки HTTP/HTTPS в GKE см. в разделе Настройка балансировки нагрузки HTTP с помощью Ingress. Масштабирование с помощью GKE Для автоматического изменения размера кластеров вы можете использовать автомасштабирование кластера. Эта функция периодически проверяет, есть ли какие-либо модули, ожидающие узла со свободными ресурсами, но не запланированные. Если такие модули существуют, то средство автомасштабирования изменяет размер пула узлов, если изменение размера позволяет планировать ожидающие модули. Cluster Autoscaler также отслеживает использование всех узлов. Если узел не нужен в течение длительного периода времени, а все его модули можно запланировать в другом месте, узел удаляется. Дополнительные сведения о средстве автомасштабирования кластера, его ограничениях и рекомендациях см. в документации по средству масштабирования кластера. Регистрация и мониторинг с помощью GKE Как и в Compute Engine, Logging and Monitoring предоставляет услуги ведения журналов и мониторинга. Ведение журнала собирает и сохраняет журналы приложений и служб. Вы можете просматривать или экспортировать журналы и интегрировать сторонние журналы с помощью агента ведения журналов. Мониторинг предоставляет информационные панели и оповещения для вашего сайта. Вы настраиваете мониторинг с помощью консоли Google Cloud. Вы можете просмотреть показатели производительности для облачных служб, виртуальных машин и распространенных серверов с открытым исходным кодом, таких как MongoDB, Apache, Nginx и Elasticsearch. Вы можете использовать API мониторинга для получения данных мониторинга и создания пользовательских показателей. Управление DevOps с помощью GKE Когда вы используете GKE, вы уже получаете многие преимущества, о которых думает большинство людей, когда думают о DevOps. Это особенно верно, когда речь идет о простоте упаковки, развертывания и управления. Для вашего рабочего процесса CI/CD вы можете воспользоваться популярными инструментами, такими как Jenkins. См. следующие статьи: ## Создание управляемой платформы с App Engine В Google Cloud управляемая платформа как услуга (PaaS) называется App Engine. Когда вы создаете свой веб-сайт на App Engine, вы можете сосредоточиться на кодировании своих функций и позволить Google беспокоиться об управлении поддерживающей инфраструктурой. App Engine предоставляет широкий спектр функций, которые значительно упрощают масштабирование, балансировку нагрузки, ведение журналов, мониторинг и безопасность, чем если бы вам приходилось создавать их и управлять ими самостоятельно. App Engine позволяет писать код на различных языках программирования и может использовать множество других облачных сервисов Google. App Engine предоставляет стандартную среду, позволяющую запускать приложения в безопасной изолированной среде. Стандартная среда App Engine распределяет запросы по нескольким серверам и масштабирует серверы в соответствии с потребностями в трафике. Ваше приложение работает в собственной безопасной и надежной среде, независимой от оборудования, операционной системы или физического расположения сервера. Чтобы предоставить вам больше возможностей, App Engine предлагает гибкую среду. Когда вы используете гибкую среду, ваше приложение работает на настраиваемых экземплярах Compute Engine, но App Engine управляет средой размещения за вас. Это означает, что вы можете использовать дополнительные среды выполнения, в том числе пользовательские среды выполнения, для большего выбора языка программирования. Вы также можете воспользоваться некоторой гибкостью, которую предлагает Compute Engine, например, выбирать из множества вариантов ЦП и памяти. Языки программирования Стандартная среда App Engine предоставляет среды выполнения по умолчанию, и вы пишете исходный код на определенных версиях поддерживаемых языков программирования. В гибкой среде вы пишете исходный код на версии любого из поддерживаемых языков программирования. Вы можете настроить эти среды выполнения или предоставить собственную среду выполнения с помощью собственного образа Docker или Dockerfile. Если язык программирования, который вы используете, является основной проблемой, вам необходимо решить, соответствуют ли среды выполнения, предоставляемые стандартной средой App Engine, вашим требованиям. Если они этого не сделают, вам следует рассмотреть возможность использования гибкой среды. Чтобы определить, какая среда лучше всего соответствует потребностям вашего приложения, см. раздел Выбор среды App Engine. Учебники по началу работы с разбивкой по языкам Следующие руководства помогут вам приступить к работе со стандартной средой App Engine: - Привет, мир на Python - Привет, мир на Java - Привет, мир на PHP - Привет, мир на рубине - Привет, мир в го - Привет, мир в Node.js Следующие руководства помогут вам приступить к работе с гибкой средой: - Начало работы с Python - Начало работы с Java. - Начало работы с PHP - Начало работы с Go - Начало работы с Node.js - Начало работы с Руби - Начало работы с .NET Хранение данных с помощью App Engine App Engine предоставляет вам варианты хранения ваших данных: |Имя||Структура||Консистенция| |Firestore||Без схемы||Строгая согласованность.| |Облачный SQL||Реляционный||Строгая согласованность.| |Облачное хранилище||Файлы и связанные с ними метаданные||Строгая согласованность, за исключением операций со списками, которые получают список сегментов или объектов.| Вы также можете использовать несколько сторонних баз данных со стандартной средой. Дополнительные сведения о хранилище в App Engine см. в разделе Выбор варианта хранения, а затем выберите предпочитаемый язык программирования. При использовании гибкой среды вы можете использовать все те же варианты хранения, что и в стандартной среде, а также более широкий спектр сторонних баз данных. Дополнительные сведения о сторонних базах данных в гибкой среде см. в разделе Использование сторонних баз данных. Балансировка нагрузки и автоматическое масштабирование с помощью App Engine По умолчанию App Engine автоматически направляет входящие запросы на соответствующие серверные экземпляры и выполняет балансировку нагрузки за вас. Однако, если вы хотите воспользоваться преимуществами полнофункциональных возможностей балансировки нагрузки HTTP(S) корпоративного уровня в Google Cloud, вы можете использовать бессерверные сетевые группы конечных точек. Для масштабирования App Engine может автоматически создавать экземпляры anddown при колебаниях трафика, или вы можете указать количество экземпляров для запуска независимо от объема трафика. Ведение журнала и мониторинг с помощью App Engine В App Engine запросы регистрируются автоматически, и вы можете просмотреть их. журналы в консоли Google Cloud. App Engine также работает с стандартные языковые библиотеки, обеспечивающие ведение журналов и перенаправляет записи журнала в журналы в консоли Google Cloud. Например, в Питоне вы можете использовать стандартный модуль ведения журнала Python и на Яве вы можете интегрировать приложение logback или java.util.logging с облачным ведением журнала. Такой подход позволяет использовать все функции Cloud Logging. и требует всего несколько строк кода, специфичного для Google Cloud. Cloud Monitoring предоставляет функции для мониторинга ваших приложений App Engine. Через консоль Google Cloud вы можете отслеживать инциденты, проверки работоспособности и другие сведения. ## Создание бессерверной платформы с помощью Cloud Run Бессерверная платформа Google Cloud позволяет писать код по-своему, не беспокоясь о базовой инфраструктуре. Вы можете создавать полнофункциональные бессерверные приложения с помощью хранилища Google Cloud, баз данных, машинного обучения и многого другого. Для ваших контейнерных веб-сайтов вы также можете развернуть их в Cloud Run в дополнение к использованию GKE. Cloud Run — это полностью управляемая бессерверная платформа, которая позволяет запускать масштабируемые контейнерные приложения в Google Cloud. Вы платите только за время работы вашего кода Используя контейнеры с Cloud Run, вы можете воспользоваться преимуществами зрелых технологий, таких как Nginx, Express.js и Django, для создания своих веб-сайтов, доступа к базе данных SQL в Cloud SQL и отображения динамических HTML-страниц. Документация Cloud Run включает краткое руководство, которое поможет вам приступить к работе. Хранение данных с помощью Cloud Run Контейнеры Cloud Run недолговечны, и вам необходимо понимать их квоты и ограничения для ваших вариантов использования. Файлы могут быть временно сохранены для обработки в экземпляре контейнера, но это хранилище выходит за пределы доступной памяти для службы, как описано в контракте времени выполнения. В качестве постоянного хранилища, аналогичного App Engine, вы можете выбрать сервисы Google Cloud, такие как Cloud Storage, Firestore или Cloud SQL. Кроме того, вы также можете использовать стороннее решение для хранения данных. Балансировка нагрузки и автомасштабирование с помощью Cloud Run По умолчанию, когда вы создаете Cloud Run, он автоматически направляет входящие запросы в соответствующие серверные контейнеры и выполняет балансировку нагрузки за вас. Однако, если вы хотите воспользоваться преимуществами полнофункциональных возможностей балансировки нагрузки HTTP(S) корпоративного уровня в Google Cloud, вы можете использовать бессерверные сетевые группы конечных точек. Балансировка нагрузки HTTP(S) позволяет включить Cloud CDN или обслуживать трафик из нескольких регионов. Кроме того, вы можете использовать промежуточное ПО, такое как API Gateway, для улучшения вашего сервиса. Для Cloud Run Google Cloud управляет автоматическим масштабированием экземпляра контейнера. для тебя. Каждая ревизия автоматически масштабируется до количества экземпляров контейнера, необходимого для обработки все входящие запросы. Когда ревизия не получает никакого трафика, по умолчанию он масштабируется до нуля экземпляров контейнера. Однако при желании можно измените это значение по умолчанию, чтобы указать, что экземпляр должен оставаться бездействующим или *тепло* используя настройка минимального количества экземпляров Ведение журнала и мониторинг с помощью Cloud Run Cloud Run имеет два типа журналов, которые автоматически отправляются в Cloud Logging: - Журналы запросов: журналы запросов, отправленных в службы Cloud Run. Эти журналы создаются автоматически - Журналы контейнера: журналы, созданные экземплярами контейнера, обычно из вашего собственного кода, записанные в поддерживаемые расположения, как описано в разделе Запись журналов контейнера. Вы можете просматривать журналы службы двумя способами: - Используйте страницу Cloud Run в консоли Google Cloud. - Используйте Cloud Logging Logs Explorer в консоли Google Cloud. Оба этих метода просмотра проверяют одни и те же журналы, хранящиеся в Cloud Logging, но обозреватель журналов предоставляет дополнительные сведения и дополнительные возможности фильтрации. Cloud Monitoring обеспечивает мониторинг производительности Cloud Run, метрики и проверки времени безотказной работы, а также предупреждения для отправки уведомлений при превышении определенных пороговых значений метрик. Применяются цены на набор операций Google Cloud, что означает, что плата за метрики в полностью управляемой версии Cloud Run не взимается. Обратите внимание, что вы также можете использовать пользовательские показатели Cloud Monitoring. Cloud Run интегрирован с облачным мониторингом *без установки или настройки*. Это означает, что показатели вашего Службы Cloud Run автоматически регистрируются во время их работы. ## Создание систем управления контентом Обслуживание веб-сайта означает управление активами вашего веб-сайта. Облачное хранилище предоставляет глобальный репозиторий для этих ресурсов. В одной распространенной архитектуре статический контент развертывается в облачном хранилище, а затем синхронизируется с Compute Engine для отображения динамических страниц. Облачное хранилище работает со многими сторонними системами управления контентом, такими как WordPress, Drupal и Joomla. Облачное хранилище также предлагает совместимый с Amazon S3 API, поэтому любая система, работающая с Amazon S3, может работать с облачным хранилищем. На приведенной ниже диаграмме показан пример архитектуры системы управления контентом. ## Что дальше - Изучите эталонные архитектуры, диаграммы, учебные пособия и передовой опыт работы с Google Cloud. Посетите наш Центр облачной архитектуры.