У цій статті розповідається про те, як розмістити веб-сайт у 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) необов’язковий |Автоматично| |Віртуальні машини||Compute Engine|| | Cloud SQL Admin API, Cloud Storage API, Datastore API та Cloud Bigtable API або ви можете скористатися іншим зовнішнім постачальником пам’яті Постійні диски на основі жорстких дисків, наз | | HTTP(S) Проксі TCP Проксі SSL Термінація IPv6 Мережа Міжрегіональний внутрішній |Автоматично з керованими групами екземплярів| |Контейнери||GKE||Схоже на Compute Engine, але по-іншому взаємодіє з постійними дисками||Мережа | HTTP(S) |Автомасштабувальник кластера| |Керована платформа|| | App Engine |Хмарні служби Google, як-от Cloud SQL, Firestore, Cloud Storage та доступні сторонні бази даних|| | HTTP(S) Керується Google |Керується Google| |Безсерверний|| | Cloud Run |Хмарні служби 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, ви створюєте a Запис CNAME для www до точки це до домен example.com. The Запис відображає ім’я хоста на IP-адресу The Запис CNAME створює псевдонім для Запис Якщо ваш реєстратор доменних імен також є вашим постачальником DNS, це, мабуть, усе, що вам потрібно зробити. Якщо ви використовуєте окремих постачальників для реєстрації та DNS, переконайтеся, що ваш реєстратор доменних імен має правильні сервери імен, пов’язані з вашим доменом Після внесення змін у DNS для поширення оновлень записів може знадобитися деякий час залежно від значень часу життя (TTL) у вашій зоні. Якщо це нове ім’я хоста, зміни набудуть чинності швидко, оскільки DNS-перетворювачі не кешують попередні значення та можуть зв’язатися з постачальником DNS, щоб отримати необхідну інформацію для маршрутизації запитів ## Хостинг статичного веб-сайту Найпростіший спосіб обслуговування вмісту веб-сайту через HTTP(S) – розміщення *статичні веб-сторінки*. Обслуговуються статичні веб-сторінки незмінними, як вони були написані, зазвичай за допомогою HTML. Використання статичного сайту є хорошим варіантом, якщо сторінки вашого сайту рідко змінюються після того, як вони були опубліковані, як-от публікації в блогах або сторінки, які є частиною малого бізнесу веб-сайт. Ви можете багато зробити зі статичними веб-сторінками, але якщо вам це потрібно на вашому сайті мати надійну взаємодію з користувачами через код на стороні сервера, ви повинні розглянути інші варіанти, розглянуті в цій статті Хостинг статичного веб-сайту з хмарним сховищем Щоб розмістити статичний сайт у Cloud Storage, вам потрібно створити Відро хмарного сховища, завантажте вміст і протестуйте свій новий сайт. Ти можеш обслуговувати ваші дані безпосередньо з storage.googleapis.com, або ви можете підтвердити, що ви є власником свого домену і використовувати ваше доменне ім'я Ви можете створювати свої статичні веб-сторінки на свій розсуд. Наприклад, ви могли б авторські сторінки за допомогою HTML і CSS. Ви можете використовувати a *генератор статичного сайту*, як от Джекілл, привид, або Гюго, щоб створити контент За допомогою генераторів статичних сайтів ви створюєте статичний веб-сайт за допомогою авторство в уцінка, а також надання шаблонів та інструментів. Генератори сайтів загалом надати локальний веб-сервер, який можна використовувати для попереднього перегляду вмісту Коли ваш статичний сайт запрацює, ви можете оновити статичні сторінки за допомогою будь-якого процес, який вам подобається. Цей процес може бути таким же простим, як копіювання вручну оновлена ​​сторінка до відра. Ви можете вибрати більш автоматизований підхід, наприклад зберігати ваш вміст на GitHub, а потім використовувати a вебхук запускати a сценарій, який оновлює сегмент. Навіть більш просунута система може використовувати a інструмент безперервної інтеграції/безперервної доставки (CI/CD), наприклад Дженкінс, щоб оновити вміст у відро. Дженкінс має хмарне сховище підключати що забезпечує a Крок після збірки Google Cloud Storage Uploader для публікації збірки артефакти в хмарне сховище Якщо у вас є веб-програма, яка має обслуговувати статичний вміст або завантажені користувачем статичні медіафайли, використання хмарного сховища може бути рентабельним і ефективним способом розміщення та обслуговування цього вмісту, одночасно зменшуючи кількість динамічних запитів до вашої веб-програми. Крім того, Cloud Storage може безпосередньо приймати вміст, надісланий користувачами. Ця функція дозволяє користувачам завантажувати великі мультимедійні файли безпосередньо та безпечно без проксі-сервера через ваші сервери Щоб отримати найкращу продуктивність від свого статичного веб-сайту, перегляньте практичні поради для Cloud Storage Для отримання додаткової інформації перегляньте наступні сторінки: - Хостинг статичного сайту - J для Дженкінса (допис у блозі) - Band Aid 30 у Google Cloud (допис у блозі) - Документація Cloud Storage Хостинг статичного веб-сайту за допомогою Firebase HostingFirebase Hosting забезпечує швидкий і безпечний статичний хостинг для вашої веб-програми.За допомогою Firebase Hosting ви можете розгортати веб-програми та статичний вміст у глобальній мережі доставки вмісту (CDN) за допомогою однієї командиОсь деякі переваги, які ви отримуєте, коли використовуйте Firebase Hosting:– SSL без конфігурації вбудовано у Firebase Hosting.Безкоштовне надання сертифікатів SSL на користувальницьких доменах- Весь ваш вміст обслуговується через HTTPS- Ваш вміст доставляється вашим користувачам із країв CDN по всьому світу- Використовуючи Firebase CLI, ви можете запустити свою програму за секунди.Використовуйте інструменти командного рядка, щоб додати цілі розгортання до процесу збирання- Ви отримуєте функції керування випуском, такі як атомарне розгортання нових активів, повне керування версіями та одним клацанням миші rollbacks- Хостинг пропонує конфігурацію, корисну для односторінкових програм та інших сайтів, які більше схожі на програми- Хостинг створено для безперебійного використання з інші функції 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.Система розгортає повний робочий стек програмного забезпечення лише за кілька хвилин на одному екземплярі.Перед розгортанням Cloud Marketplace показує оцінку витрат на роботу сайту, надає чітку інформацію про те, які версії компонентів програмного забезпечення він інсталює для вас, і дозволяє налаштовувати конфігурацію, змінюючи назви екземплярів компонентів, вибираючи тип машини та вибір розміру диска.Після розгортання у вас є повний контроль над примірниками Compute Engine, їх конфігураціями та програмним забезпеченнямНалаштування вручнуВи також можете створити свою інфраструктуру на Compute Engine вручну, створюючи конфігурацію з нуля або створюючи розгортання Google Cloud Marketplace.Наприклад, ви можете використовувати версію програмного компонента, який не пропонує Cloud Marketplace, або, можливо, ви віддаєте перевагу інсталювати та налаштовувати все самостійноНадання повного основи та найкращі практики для створення веб-сайту виходять за рамки цієї статті.Але з погляду високого рівня технічна сторона налаштування інфраструктури веб-обслуговування на Compute Engine вимагає, щоб ви:Розуміли вимоги.Якщо ви створюєте новий веб-сайт, переконайтеся, що ви розумієте потрібні вам компоненти, наприклад екземпляри, потреби в сховищі та мережеву інфраструктуру.Якщо ви переносите свою програму з існуючого рішення, ви, напевно, вже розумієте ці вимоги, але вам потрібно продумати, як ваші наявні налаштування зіставляються зі службами Google Cloud.Сплануйте дизайн.Продумайте свою архітектуру та запишіть свій дизайн.Будьте якомога відвертішими.Створіть компоненти.Компоненти, які зазвичай можна вважати фізичними активами, як-от комп’ютери та мережеві комутатори, надаються через служби в Compute Engine.Наприклад, якщо вам потрібен комп’ютер, вам потрібно створити екземпляр Compute Engine.Якщо вам потрібен постійний жорсткий диск, створіть його теж.Cloud Deployment Manager або Terraform роблять цей процес простим і повторюваним.Налаштуйте та налаштуйте. Після того, як у вас є потрібні компоненти, вам потрібно їх налаштувати, встановити та налаштувати програмне забезпечення, а також написати та розгорнути будь-який потрібний код налаштування.Ви можете відтворити конфігурацію, запустивши сценарії оболонки, що допоможе пришвидшити майбутні розгортання.Deployment Manager також допомагає тут, надаючи декларативні гнучкі шаблони конфігурації для автоматичного розгортання ресурсів.Ви також можете скористатися такими інструментами автоматизації ІТ, як Puppet і Chef.Розгорніть активи.Імовірно, у вас є веб-сторінки та зображення.Тест.Перевірте, чи все працює так, як ви очікуєте.Розгорнути у виробництві.Відкрийте свій сайт, щоб увесь світ міг його побачити та використовуватиЩоб допомогти вам розпочати роботу та зрозуміти, як це – налаштовувати екземпляри Compute Engine вручну, спробуйте одну чи декілька з наступні посібники:Зберігання даних за допомогою Compute Engine Більшість веб-сайтів потребують певного сховища. Вам може знадобитися сховище з різних причин, наприклад для збереження файлів, які завантажують користувачі, і, звичайно, ресурсів, які використовує ваш сайт Google Cloud надає різноманітні служби керованого зберігання, зокрема: - База даних SQL у Cloud SQL, яка базується на MySQL — Два варіанти зберігання даних NoSQL: Firestore і Cloud Bigtable - Послідовне, масштабоване, об'єктне сховище великої ємності в Хмарне сховище Хмарне сховище буває кількох класів: - Стандарт забезпечує максимальну доступність - Nearline забезпечує недорогий вибір, ідеальний для даних, доступ до яких здійснюється рідше одного разу на місяць - Coldline пропонує недорогий вибір, ідеальний для даних, доступ до яких здійснюється рідше одного разу на квартал - Archive забезпечує найнижчий вибір для архівування, резервного копіювання та аварійного відновлення - Постійні диски на 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 Proxy і TCP Proxy. Пояснює завершення IPv6 і параметри налаштування балансувальників навантаження для обробки запитів IPv6 - Балансування навантаження мережі. Показує базовий сценарій, який налаштовує конфігурацію балансування навантаження рівня 3 для розподілу HTTP-трафіку між справними примірниками — Балансування навантаження між регіонами за допомогою серверних модулів Microsoft IIS. Показує, як використовувати балансувальник навантаження Compute Engine для розподілу трафіку на сервери Microsoft Internet Information Services (IIS) - Налаштування внутрішнього балансування навантаження Ви можете налаштувати балансувальник навантаження, який розподіляє мережевий трафік у приватній мережі, яка не підключена до Інтернету. Внутрішнє балансування навантаження корисне не лише для додатків інтрамережі, де весь трафік залишається в приватній мережі, але й для складних веб-додатків, де зовнішній інтерфейс надсилає запити до внутрішніх серверів за допомогою приватної мережі Розгортання балансування навантаження є гнучким, і ви можете використовувати Compute Engine зі своїми існуючими рішеннями. Наприклад, балансування навантаження HTTP(S) за допомогою Nginx є одним із можливих рішень, яке можна використовувати замість балансувальника навантаження Compute Engine Розповсюдження вмісту за допомогою Compute Engine Оскільки час відповіді є основним показником для будь-якого веб-сайту, використання CDN для зменшення затримки та підвищення продуктивності часто є вимогою, особливо для сайтів із глобальним веб-трафіком Cloud 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. Ви можете переглядати або експортувати журнали та інтегрувати журнали сторонніх розробників за допомогою агента журналювання Cloud Monitoring надає інформаційні панелі та сповіщення для вашого сайту.Ви налаштовуєте моніторинг за допомогою консолі Google Cloud.Ви можете переглядати показники продуктивності для хмарних служб, віртуальних машин і звичайних серверів з відкритим кодом, таких як MongoDB, Apache, Nginx і Elasticsearch.Ви можете використовувати API хмарного моніторингу для отримання даних моніторингу та створення спеціальних показниківХмарний моніторинг також забезпечує перевірку безвідмовної роботи, яка надсилає запити на ваші веб-сайти, щоб побачити, чи вони відповідають.Ви можете контролювати доступність веб-сайту, розгорнувши політику попередження, яка створює інцидент, якщо перевірка безвідмовної роботи не вдаєтьсяКерування DevOps за допомогою Compute EngineДля отримання інформації про керування DevOps з Compute Engine, перегляньте наступні статті:– Тестування розподіленого навантаження за допомогою Kubernetes– Запуск Spinnaker на Compute Engine– Керування розгортанням у Google Cloud за допомогою Spinnaker# # Використання контейнерів із GKEМожливо, ви вже використовуєте контейнери, наприклад контейнери Docker.Для веб-сервісу контейнери пропонують кілька переваг, зокрема:Компонентність.Ви можете використовувати контейнери для розділення різних компонентів вашої веб-програми.Наприклад, припустімо, що на вашому сайті працює веб-сервер і база даних.Ви можете запускати ці компоненти в окремих контейнерах, змінюючи й оновлюючи один компонент, не впливаючи на інший.Оскільки дизайн вашої програми стає складнішим, контейнери добре підходять для сервіс-орієнтованої архітектури, включаючи мікросервіси.Цей тип дизайну підтримує масштабованість, серед інших цілей.Портативність.Контейнер містить усе, що потрібно для запуску вашої програми, а її залежності об’єднані разом.Ви можете запускати свої контейнери на різних платформах, не турбуючись про базові деталі системи.Швидке розгортання.Коли настає час розгортання, ваша система складається з набору визначень і зображень, тому її частини можна розгортати швидко, надійно та автоматично.Зазвичай контейнери невеликі та розгортаються набагато швидше, ніж, наприклад, віртуальні машиниКонтейнерні обчислення в Google Cloud пропонують ще більше переваг для веб-сервісу, зокрема:Оркестровка.GKE – це керований сервіс, побудований на Kubernetes, системі керування контейнерами з відкритим кодом, представленій Google.За допомогою GKE ваш код виконується в контейнерах, які є частиною кластера, що складається з екземплярів Compute Engine.Замість адміністрування окремих контейнерів або створення та закриття кожного контейнера вручну, ви можете автоматично керувати кластером через GKE, який використовує конфігурацію, яку ви визначаєте.Реєстрація зображення.Реєстр контейнерів або реєстр артефактів надає приватне сховище для зображень 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Щоб зрозуміти функції та переваги тому , ви повинні спочатку трохи зрозуміти стручки.Ви можете думати про pod як про логічний хост для одного чи кількох контейнерів, що відповідає програмі.Модуль працює на екземплярі вузла.Коли контейнери є членами групи, вони можуть спільно використовувати кілька ресурсів, включаючи набір спільних томів зберігання.Ці томи дають змогу зберігати дані після перезапуску контейнера та надавати спільний доступ між контейнерами в групі.Звичайно, ви також можете використовувати один контейнер і том у модулі, але пакет є необхідною абстракцією для логічного з’єднання цих ресурсів один з однимДля прикладу , див. підручник Використання постійних дисків із 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. Ця функція періодично перевіряє, чи є модулі, які очікують на вузол із вільними ресурсами, але не заплановані. Якщо такі модулі існують, тоді автомасштабувальник змінює розмір пулу вузлів, якщо зміна розміру дозволить запланувати модулі, що очікують Cluster Autoscaler також відстежує використання всіх вузлів. Якщо вузол не потрібен протягом тривалого періоду часу, і всі його модулі можна запланувати в іншому місці, тоді вузол видаляється Додаткову інформацію про Cluster Autoscaler, його обмеження та найкращі методи див. у документації Cluster Autoscaler Журналування та моніторинг за допомогою GKE Як і в Compute Engine, Logging and Monitoring надають ваші послуги журналювання та моніторингу. Logging збирає та зберігає журнали програм і служб. Ви можете переглядати або експортувати журнали та інтегрувати журнали сторонніх розробників за допомогою агента журналювання Моніторинг надає інформаційні панелі та сповіщення для вашого сайту. Ви налаштовуєте моніторинг за допомогою консолі 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 Cloud 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 - Привіт, світ у Ruby - Привіт, світ у Go - Привіт, світ у Node.js Наступні навчальні посібники допоможуть вам почати використовувати гнучке середовище: - Початок роботи з Python - Початок роботи з Java - Початок роботи з PHP - Початок роботи з Go - Початок роботи з Node.js - Початок роботи з Ruby - Початок роботи з .NET Зберігання даних за допомогою App Engine App Engine надає вам варіанти зберігання ваших даних: |Найменування||Склад||Консистенція| |Firestore||Безсхемний||Стійко послідовний.| |Cloud SQL||Реляційний||Стійко послідовний.| |Cloud Storage||Файли та пов’язані з ними метадані||Стійко узгоджені, за винятком випадків виконання операцій зі списком, які отримують список сегментів або об’єктів.| Ви також можете використовувати кілька сторонніх баз даних зі стандартним середовищем Щоб дізнатися більше про сховище в App Engine, перегляньте розділ Вибір параметра сховища, а потім виберіть потрібну мову програмування Коли ви використовуєте гнучке середовище, ви можете використовувати всі ті самі параметри зберігання, що й у стандартному середовищі, а також ширший діапазон баз даних сторонніх розробників. Додаткову інформацію про сторонні бази даних у гнучкому середовищі див. у розділі Використання сторонніх баз даних Балансування навантаження та автомасштабування за допомогою App Engine За замовчуванням App Engine автоматично направляє вхідні запити до відповідних серверних екземплярів і виконує балансування навантаження за вас. Однак, якщо ви хочете скористатися перевагами повнофункціональних можливостей балансування навантаження HTTP(S) корпоративного рівня Google Cloud, ви можете використовувати групи кінцевих точок мережі без сервера Для масштабування App Engine може автоматично створювати та відключати екземпляри, якщо трафік коливається, або ви можете вказати кількість екземплярів для запуску незалежно від обсягу трафіку Ведення журналів і моніторинг за допомогою App Engine В App Engine запити реєструються автоматично, і ви можете їх переглядати реєструється в консолі Google Cloud. App Engine також працює з стандартні мовні бібліотеки, які забезпечують функціональність журналювання та пересилає записи журналу до журналів консолі Google Cloud. Наприклад, в Python ви можете використовувати стандартний модуль журналювання Python і на Java ви можете інтегрувати додаток до журналу або java.util.logging з Cloud 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, але Logs Explorer надає більше деталей і більше можливостей фільтрації Cloud Monitoring забезпечує моніторинг продуктивності Cloud Run, метрики та перевірку часу безперебійної роботи, а також сповіщення про надсилання сповіщень у разі перевищення певних порогових значень показників. Застосовується ціна пакета операцій Google Cloud, що означає, що плата за показники в повністю керованій версії Cloud Run не стягується. Зауважте, що ви також можете використовувати спеціальні показники Cloud Monitoring Cloud Run інтегровано з Cloud Monitoring *без необхідності налаштування або конфігурації*. Це означає, що ваші показники Служби Cloud Run автоматично фіксуються під час їх роботи ## Створення систем керування контентом Обслуговування веб-сайту означає керування активами вашого веб-сайту. Хмарне сховище надає глобальне сховище для цих ресурсів. Одна поширена архітектура розгортає статичний вміст у Cloud Storage, а потім синхронізує його з Compute Engine для відтворення динамічних сторінок. Cloud Storage працює з багатьма сторонніми системами керування вмістом, такими як WordPress, Drupal і Joomla. Cloud Storage також пропонує API, сумісний з Amazon S3, тому будь-яка система, яка працює з Amazon S3, може працювати з Cloud Storage Наведена нижче схема є прикладом архітектури системи керування вмістом ## Що далі - Досліджуйте еталонні архітектури, діаграми, навчальні посібники та передові практики щодо Google Cloud. Подивіться на наш Cloud Architecture Center.