GSP1123
Огляд
Створення, розгортання й регулярне оновлення додатків – це основа хмарних операцій. Основні завдання стосуються оптимізації ресурсів для дотримання угод про рівень обслуговування, упровадження змін у коді, безперешкодного оновлення віртуальних машин і налаштування мережі й розподілу навантаження. В Azure використовуються конвеєри DevOps, набори для автоматичного масштабування віртуальних машин і система Azure IAM для керування доступом. Принципали сервісів мають вирішальне значення для роботи додатків і зв’язку між ними, а віртуальні мережі, розподілювачі навантаження, перевірки стану й набори доступності доповнюють налаштування інфраструктури. Робота з віртуальними машинами може включати оновлення образів, повторне розгортання й оновлення керованих екземплярів під час планового технічного обслуговування.
У Google Cloud ці функції реалізовано досить гнучко. Скрипти запуску можуть отримувати оновлення коду, що допомагає легко виконувати поступове оновлення без простою. На відміну від таких рішень, як GKE й App Engine, Compute Engine дає змогу точно контролювати віртуальні машини й розподілювачі навантаження. На цьому практичному занятті ви дізнаєтесь, як розгортати й масштабувати додаток у Compute Engine (на прикладі додатка електронної комерції під назвою Fancy Store), щоб ознайомитися із цим зручним рішенням для керування вебдодатками.
Цілі
На цьому практичному занятті ви навчитеся виконувати наведені нижче дії.
У процесі цього практичного заняття ви налаштуєте групи керованих екземплярів, які забезпечуватимуть автоматичне виправлення помилок, розподіл навантаження, автомасштабування й поступове оновлення для вашого вебсайту.
Налаштування й вимоги
Перш ніж натиснути кнопку Start Lab (Почати практичну роботу)
Ознайомтеся з наведеними нижче вказівками. На виконання практичного заняття відводиться обмежений час, і його не можна призупинити. Щойно ви натиснете Почати заняття, з’явиться таймер, який показуватиме, скільки часу для роботи з ресурсами Google Cloud у вас залишилося.
Ви зможете виконати практичне заняття в дійсному робочому хмарному середовищі (не в симуляції або демонстраційному середовищі). Для цього на час практичного заняття вам надаються тимчасові облікові дані для реєстрації і входу в Google Cloud.
Для цього практичного заняття потрібно мати:
- стандартний вебпереглядач, наприклад Chrome (рекомендовано);
Примітка. Виконуйте практичне заняття в анонімному вікні вебпереглядача (рекомендовано). Так ви уникнете додаткової плати, що може стягуватися з вашого особистого облікового запису внаслідок його помилкового використання замість облікового запису для навчання.
- достатню кількість часу, оскільки почавши практичне заняття, ви не зможете призупинити його.
Примітка. Для виконання цього практичного заняття використовуйте лише обліковий запис для навчання, оскільки з іншого облікового запису Google Cloud може стягуватися плата.
Як почати практичне заняття й увійти в консоль Google Cloud
-
Натисніть кнопку Почати заняття. Якщо за практичне заняття необхідно заплатити, відкриється вікно, де ви зможете обрати спосіб оплати.
Праворуч розміщено панель Lab setup and access (Налаштування практичного заняття й доступ до нього) з такими даними:
- кнопка Open Google Cloud console (Відкрити консоль Google Cloud);
- тимчасові облікові дані (ім’я користувача й пароль) для доступу до цього практичного заняття;
- інша необхідна для виконання цього практичного заняття інформація.
Зверніть увагу, що таймер практичного заняття розташовано вгорі сторінки й на ньому відображається час, що залишився.
-
Натисніть Open Google Cloud console (Відкрити консоль Google Cloud) або натисніть правою кнопкою миші й виберіть Відкрити анонімне вікно, якщо ви використовуєте вебпереглядач Chrome.
Завантажаться необхідні ресурси. Потім відкриється нова вкладка зі сторінкою входу.
Порада. Упорядковуйте вкладки в окремих вікнах, розміщуючи їх поруч.
Примітка. Якщо з’явиться вікно Choose an account (Виберіть обліковий запис), натисніть Use Another Account (Увійти в інший обліковий запис).
-
За потреби скопіюйте значення в полі Username (Ім’я користувача) нижче й вставте його у вікні Sign in (Вхід).
{{{user_0.username | "Username"}}}
Поле Username (Ім’я користувача) також можна знайти на панелі Lab setup and access (Налаштування практичного заняття й доступ до нього).
-
Натисніть Next (Далі).
-
Скопіюйте значення в полі Password (Пароль) нижче й вставте його у вікні Welcome (Вітаємо).
{{{user_0.password | "Password"}}}
Поле Password (Пароль) також можна знайти на панелі Lab setup and access (Налаштування практичного заняття й доступ до нього).
-
Натисніть Next (Далі).
Важливо. Обов’язково використовуйте облікові дані, призначені для відповідного практичного заняття. Не використовуйте облікові дані Google Cloud.
Примітка. Якщо ввійти у власний обліковий запис Google Cloud, може стягуватися додаткова плата.
-
Що від вас очікується
- Прийміть Умови використання.
- Не додавайте способи відновлення й двохетапну перевірку (оскільки це тимчасовий обліковий запис).
- Не реєструйте безкоштовні пробні версії.
Через кілька секунд консоль Google Cloud відкриється в новій вкладці.
Примітка. Щоб отримати доступ до продуктів і сервісів Google Cloud, натисніть меню навігації або введіть назву сервісу чи продукту в полі пошуку.
Як активувати Cloud Shell
Cloud Shell – це віртуальна машина з попередньо завантаженими інструментами для розробників. Вона містить головний каталог обсягом 5 ГБ постійної пам’яті й працює в середовищі Google Cloud. Cloud Shell надає доступ до ресурсів Google Cloud через командний рядок.
-
Угорі консолі Google Cloud натисніть Activate Cloud Shell (Активувати Cloud Shell)
.
-
У вікнах, що відкриються, виконайте наведені нижче дії.
- У вікні з інформацією про Cloud Shell натисніть Continue (Далі).
- Дозвольте Cloud Shell використовувати ваші облікові дані, щоб здійснювати виклики Google Cloud API.
Щойно ви підключитеся, вас буде автентифіковано, а проєкт отримає ваш Project_ID (Ідентифікатор проєкту) – . Вивід міститиме рядок зі значенням Project_ID (Ідентифікатор проєкту) для цього сеансу:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud – це інструмент командного рядка для Google Cloud. Він входить у пакет Cloud Shell і підтримує функцію автозавершення клавішею TAB.
- (Необов’язково) Щоб вивести поточне ім’я облікового запису, введіть таку команду:
gcloud auth list
- Натисніть Authorize (Авторизувати).
Вивід:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Необов’язково) Щоб вивести ідентифікатор проєкту, введіть таку команду:
gcloud config list project
Вивід:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Примітка. Щоб знайти повну документацію щодо gcloud, перегляньте посібник з інтерфейсу командного рядка gcloud у Google Cloud.
Укажіть зону за умовчанням
- Налаштуйте зону за умовчанням і конфігурацію проєкту:
gcloud config set compute/zone {{{project_0.default_zone|ZONE}}}
Щоб дізнатися більше про регіони й зони, перегляньте відповідну документацію.
Примітка. Якщо ви запускаєте командний рядок gcloud на власній машині, налаштування конфігурації зберігаються в різних сеансах. Однак у Cloud Shell вам потрібно вказувати їх для кожного нового сеансу або повторного підключення.
Завдання 1. Увімкніть Compute Engine API і редактор
Увімкніть Compute Engine API.
- Для цього виконайте таку команду:
gcloud services enable compute.googleapis.com
Завдання 2. Створіть сегмент Cloud Storage
У цьому завданні ви налаштуєте сегмент Cloud Storage, щоб розмістити створений код і скрипти запуску.
- Щоб створити новий сегмент Cloud Storage, у Cloud Shell виконайте таку команду:
gcloud storage buckets create gs://fancy-store-{{{project_0.project_id | BUCKET}}}
Щоб підтвердити виконання завдання, натисніть Підтвердити виконання. Створіть сегмент Cloud Storage
Завдання 3. Скопіюйте вихідне сховище
Основою вашого сайту є наявний вебсайт електронної комерції під назвою Fancy Store, що працює на основі сховища monolith-to-microservices.
У цьому завданні вам потрібно скопіювати початковий код, щоб зосередитися на аспектах розгортання в Compute Engine. Пізніше під час цього практичного заняття ви внесете в код деякі зміни через Compute Engine, щоб переконатися, наскільки це просто.
- Виконайте наведені нижче команди, щоб скопіювати початковий код, а потім перейти в каталог
monolith-to-microservices.
git clone https://github.com/googlecodelabs/monolith-to-microservices.git
cd ~/monolith-to-microservices
- Виконайте початкове складання коду, щоб запустити додаток локально:
./setup.sh
Виконання цього скрипту займає кілька хвилин.
- Після цього переконайтеся, що в Cloud Shell використовується сумісна версія nodeJS, виконавши таку команду:
{{{project_0.startup_script.node_nvm_command | nvm install --lts}}}
- Тепер виконайте наведені нижче команди, щоб протестувати додаток, перейти в каталог
microservices і запустити вебсервер.
cd microservices
npm start
Вивід матиме приблизно такий вигляд:
Вивід:
Products microservice listening on port 8082!
Frontend microservice listening on port 8080!
Orders microservice listening on port 8081!
- Щоб переглянути додаток, натисніть Web preview (Попередній перегляд у вебпереглядачі) і виберіть Preview on port 8080 (Переглянути через порт 8080).

Відкриється нове вікно, у якому ви побачите інтерфейс вебсайту Fancy Store.
Примітка. У режимі попереднього перегляду можна побачити інтерфейс, однак функції Products (Товари) і Orders (Замовлення) не працюватимуть, оскільки ці сервіси ще не доступні.
- Переглянувши вебсайт, закрийте це вікно, а потім натисніть CTRL+C у вікні термінала, щоб зупинити процес вебсервера.
Завдання 4. Створіть екземпляри Compute Engine
Тепер ви розгорнете кілька екземплярів Compute Engine.
У наступних кроках потрібно виконати наведені нижче дії.
- Створіть скрипт запуску, щоб налаштувати екземпляри.
- Скопіюйте початковий код і завантажте його в Cloud Storage.
- Розгорніть екземпляр Compute Engine, щоб розмістити мікросервіси серверної частини.
- Відредагуйте код клієнтської частини, щоб використовувати екземпляр, де розміщено мікросервіси серверної частини.
- Розгорніть екземпляр Compute Engine, щоб розмістити мікросервіси клієнтської частини.
- Налаштуйте мережу, щоб установити зв’язок.
Створіть скрипт запуску
Скрипт запуску – це набір вказівок, які екземпляр виконуватиме під час кожного запуску. Це дає змогу налаштовувати екземпляри автоматично.
- На панелі інструментів Cloud Shell натисніть Open Editor (Відкрити редактор), щоб відкрити редактор коду.

-
Перейдіть у папку monolith-to-microservices.
-
Натисніть File (Файл) > New File (Новий файл) і створіть файл із назвою startup-script.sh.
-
Вставте у файл наведений нижче код.
#!/bin/bash
# Install logging monitor. The monitor will automatically pick up logs sent to
# syslog.
curl -s "https://storage.googleapis.com/signals-agents/logging/google-fluentd-install.sh" | bash
service google-fluentd restart &
# Install dependencies from apt
apt-get update
apt-get install -yq ca-certificates git build-essential supervisor psmisc
# Install nodejs
mkdir /opt/nodejs
curl https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.gz | tar xvzf - -C /opt/nodejs --strip-components=1
ln -s /opt/nodejs/bin/node /usr/bin/node
ln -s /opt/nodejs/bin/npm /usr/bin/npm
# Get the application source code from the Google Cloud Storage bucket.
mkdir /fancy-store
gcloud storage cp -r gs://fancy-store-[PROJECT_ID]/monolith-to-microservices/microservices/* /fancy-store/
# Install app dependencies.
cd /fancy-store/
npm install
# Create a nodeapp user. The application will run as this user.
useradd -m -d /home/nodeapp nodeapp
chown -R nodeapp:nodeapp /opt/app
# Configure supervisor to run the node app.
cat >/etc/supervisor/conf.d/node-app.conf << EOF
[program:nodeapp]
directory=/fancy-store
command=npm start
autostart=true
autorestart=true
user=nodeapp
environment=HOME="/home/nodeapp",USER="nodeapp",NODE_ENV="production"
stdout_logfile=syslog
stderr_logfile=syslog
EOF
supervisorctl reread
supervisorctl update
-
Натисніть File (Файл) > Save (Зберегти), щоб зберегти файл.
-
У редакторі коду Cloud Shell переконайтеся, що для параметра End of Line Sequence (Послідовність кінця рядка) вибрано значення LF, а не CRLF. Це можна перевірити в нижньому правому куті редактора коду.

- Якщо вказано значення CRLF, натисніть його й у спадному меню виберіть LF.
- У файлі
startup-script.sh замініть заповнювач [PROJECT_ID] на ідентифікатор свого проєкту: {{{project_0.project_id | PROJECT_ID}}}.
Скрипт запуску виконує наведені нижче завдання.
- Установлює агент Cloud Logging. Цей агент автоматично збирає журнали із системи.
- Установлює пакети Node.js і Supervisor. Пакет Supervisor запускає додаток як daemon.
- Копіює початковий код додатка із сегмента Cloud Storage і встановлює залежності.
- Налаштовує пакет Supervisor для запуску додатка. Цей пакет перезапускає додаток, якщо він неочікувано закривається або зупиняється адміністратором чи процесом. Пакет Supervisor також надсилає стандартні потоки stdout і stderr у системний журнал, щоб агент Logging міг їх збирати.
- Поверніться в термінал Cloud Shell і виконайте наведену нижче команду, щоб скопіювати файл
startup-script.sh у сегмент.
gcloud storage cp ~/monolith-to-microservices/startup-script.sh gs://fancy-store-{{{project_0.project_id | BUCKET}}}
Тепер він буде доступний за такою URL-адресою: https://storage.googleapis.com/[BUCKET_NAME]/startup-script.sh.
[BUCKET_NAME] – це назва сегмента Cloud Storage. За умовчанням цей файл буде доступний лише для авторизованих користувачів і сервісних облікових записів, тому його не можна відкрити у вебпереглядачі. Екземпляри Compute Engine автоматично матимуть доступ до цього файлу через власний сервісний обліковий запис.
Скопіюйте код у сегмент Cloud Storage
Під час запуску екземпляри отримують код із сегмента Cloud Storage, тому ви можете зберігати деякі змінні конфігурації у файлі коду .env.
Примітка. Змінні середовища можна отримувати з інших джерел, написавши відповідний код, однак для демонстрації ви використовуватимете цей простий спосіб. У робочому середовищі змінні, імовірно, не зберігатимуться в коді.
cd ~
rm -rf monolith-to-microservices/*/node_modules
gcloud storage cp -r monolith-to-microservices gs://fancy-store-{{{project_0.project_id | BUCKET}}}/
Примітка. Каталоги залежностей node_modules видаляються, щоб копіювання відбувалося якомога швидше й ефективніше. Ці каталоги повторно створюються в екземплярах під час запуску.
Щоб підтвердити виконання завдання, натисніть Підтвердити виконання. Скопіюйте скрипт запуску й код у сегмент Cloud Storage
Розгорніть екземпляр серверної частини
Спершу потрібно розгорнути екземпляр серверної частини, у якому буде розміщено мікросервіси Products (Товари) і Orders (Замовлення).
Примітка. У робочому середовищі мікросервіси варто розділити на окремі екземпляри й групи екземплярів, щоб мати змогу масштабувати їх незалежно один від одного. Для демонстрації обидва мікросервіси серверної частини (Products (Товари) і Orders (Замовлення)) буде розміщено в одному екземплярі й групі.
- Виконайте наведену нижче команду, щоб створити екземпляр
e2-medium, який налаштовано для використання скрипту запуску. Цей екземпляр позначено тегом backend, щоб пізніше ви могли застосувати до нього певні правила брандмауера.
gcloud compute instances create backend \
--machine-type=e2-medium \
--tags=backend \
--metadata=startup-script-url=https://storage.googleapis.com/fancy-store-{{{project_0.project_id | BUCKET}}}/startup-script.sh
Примітка. Якщо з’явиться запит указати зону, переконайтеся, що ви налаштували зону за умовчанням, як описано в розділі "Налаштування" цього практичного заняття.
Налаштуйте з’єднання із серверною частиною
Перш ніж розгортати клієнтську частину додатка, потрібно оновити конфігурацію, щоб підключити серверну частину, яку ви щойно розгорнули.
- Отримайте зовнішню IP-адресу серверної частини, виконавши наведену нижче команду. Для цього знайдіть екземпляр серверної частини в стовпці
EXTERNAL_IP.
gcloud compute instances list
Приклад виводу:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
backend {{{ project_0.default_zone | "ZONE" }}} e2-medium 10.128.0.2 34.68.223.88 RUNNING
-
Скопіюйте зовнішню IP-адресу для серверної частини.
-
У розділі Explorer (Провідник) у Cloud Shell перейдіть до каталогу monolith-to-microservices > react-app.
-
У редакторі коду виберіть View (Переглянути) > Toggle Hidden Files (Показати приховані файли), щоб побачити файл .env.
-
Відредагуйте файл .env, щоб він спрямовував на зовнішню IP-адресу серверної частини. [BACKEND_ADDRESS] – це зовнішня IP-адреса екземпляра серверної частини, яку ви отримали за допомогою наведеної вище команди gcloud.
-
У файлі .env замініть localhost на отримане вами значення [BACKEND_ADDRESS]:
REACT_APP_ORDERS_URL=http://[BACKEND_ADDRESS]:8081/api/orders
REACT_APP_PRODUCTS_URL=http://[BACKEND_ADDRESS]:8082/api/products
-
Натисніть Save (Зберегти), щоб зберегти файл.
-
Виконайте наведену нижче команду, щоб повторити складання додатка react-app і оновити код клієнтської частини.
cd ~/monolith-to-microservices/react-app
npm install && npm run-script build
- Потім виконайте таку команду, щоб скопіювати код додатка в сегмент Cloud Storage:
cd ~
rm -rf monolith-to-microservices/*/node_modules
gcloud storage cp -r monolith-to-microservices gs://fancy-store-{{{project_0.project_id | BUCKET}}}/
Розгорніть екземпляр клієнтської частини
Налаштувавши код, розгорніть екземпляр клієнтської частини.
- Виконайте наведену нижче команду, щоб розгорнути екземпляр
frontend. Цей екземпляр позначено тегом frontend для налаштування брандмауера.
gcloud compute instances create frontend \
--machine-type=e2-medium \
--tags=frontend \
--metadata=startup-script-url=https://storage.googleapis.com/fancy-store-{{{project_0.project_id | BUCKET}}}/startup-script.sh
Примітка. Команда розгортання й скрипт запуску використовуються для екземплярів як клієнтської, так і серверної частини, оскільки код налаштовано, щоб за умовчанням запускати всі мікросервіси. У результаті всі мікросервіси в цьому прикладі працюють як у клієнтській, так і в серверній частині. У робочому середовищі ви запускатимете лише ті мікросервіси, які потрібні для кожного компонента.
Налаштуйте мережу
У цьому розділі ви створите правила брандмауера, щоб дозволити доступ до порту 8080 для екземпляра клієнтської частини й портів 8081–8082 – для серверної частини. У командах брандмауера використовуються теги, які ви призначили під час створення екземплярів.
- Щоб налаштувати правила брандмауера, виконайте такі команди:
gcloud compute firewall-rules create fw-fe \
--allow tcp:8080 \
--target-tags=frontend
gcloud compute firewall-rules create fw-be \
--allow tcp:8081-8082 \
--target-tags=backend
Тепер вебсайт має працювати належним чином.
- Щоб перейти до зовнішньої IP-адреси екземпляра
frontend, потрібно спершу її дізнатися. Виконайте наведену нижче команду й знайдіть екземпляр frontend у стовпці "EXTERNAL_IP".
gcloud compute instances list
Приклад виводу:
NAME: backend
ZONE: {{{ project_0.default_zone | "ZONE" }}}
MACHINE_TYPE: e2-medium
PREEMPTIBLE:
INTERNAL_IP: 10.150.0.2
EXTERNAL_IP: 34.86.128.228
STATUS: RUNNING
NAME: frontend
ZONE: {{{ project_0.default_zone | "ZONE" }}}
MACHINE_TYPE: e2-medium
PREEMPTIBLE:
INTERNAL_IP: 10.150.0.3
EXTERNAL_IP: 35.199.2.193
STATUS: RUNNING
Запуск і налаштування екземпляра можуть зайняти кілька хвилин.
- Зачекайте 30 секунд, а потім виконайте наведену нижче команду, щоб відстежувати готовність додатка (замініть
FRONTEND_ADDRESS на зовнішню IP-адресу екземпляра клієнтської частини).
watch -n 2 curl http://[FRONTEND_ADDRESS]:8080
Коли ви побачите наведений нижче результат, це означатиме, що вебсайт готовий.

-
Щоб скасувати команду watch, натисніть CTRL+C.
-
Відкрийте у вебпереглядачі нову анонімну вкладку й перейдіть на сторінку http://[FRONTEND_ADDRESS]:8080, щоб отримати доступ до вебсайту (замініть [FRONTEND_ADDRESS] на зовнішню IP-адресу екземпляра клієнтської частини, яку ви щойно визначили).
-
Спробуйте перейти на сторінки Products (Товари) і Orders (Замовлення). Тепер вони мають працювати.

Щоб підтвердити виконання завдання, натисніть Підтвердити виконання. Розгорніть екземпляри й налаштуйте мережу
Завдання 5. Створіть групу керованих екземплярів
Щоб масштабувати додаток, потрібно створити групи керованих екземплярів, які використовують екземпляри frontend і backend як шаблони.
Група керованих екземплярів містить ідентичні екземпляри, якими можна керувати як єдиним об’єктом в одній зоні. Ці групи дають змогу підтримувати високу доступність додатків, завчасно забезпечуючи працездатність екземплярів, тобто їх перебування в стані RUNNING.
Під час цього практичного заняття ви використовуватимете групи керованих екземплярів для клієнтської і серверної частини, щоб налаштувати автоматичне виправлення помилок, розподіл навантаження, автомасштабування й поступове оновлення.
Створіть шаблон на основі вихідного екземпляра
Щоб створити групу керованих екземплярів, спершу потрібно створити шаблон, який стане для неї основою. Шаблони дають змогу визначати тип машини, образ завантажувального диска або контейнера, мережу й інші властивості екземпляра, які використовуватимуться під час створення нових екземплярів віртуальних машин. За допомогою шаблонів можна створювати як окремі екземпляри, так і групи керованих екземплярів.
Наявні екземпляри, які ви створили раніше, стануть основою для нового шаблона екземпляра.
- Спершу виконайте такі команди, щоб зупинити обидва екземпляри:
gcloud compute instances stop frontend
gcloud compute instances stop backend
- Потім виконайте наведену нижче команду, щоб створити шаблон на основі кожного вихідного екземпляра.
gcloud compute instance-templates create fancy-fe \
--source-instance=frontend
gcloud compute instance-templates create fancy-be \
--source-instance=backend
- Щоб перевірити, чи створено шаблони екземплярів, виконайте таку команду:
gcloud compute instance-templates list
Приклад виводу:
NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP
fancy-be e2-medium 2020-02-03T10:34:12.966-08:00
fancy-fe e2-medium 2020-02-03T10:34:01.082-08:00
- Створивши шаблони екземплярів, виконайте наведену нижче команду, щоб видалити віртуальну машину
backend і звільнити ресурси.
gcloud compute instances delete backend
- Коли з’явиться відповідний запит, введіть y і натисніть клавішу Enter.
Зазвичай віртуальну машину frontend також можна видалити, однак вона знадобиться для оновлення шаблона екземпляра пізніше під час цього практичного заняття.
Створіть групу керованих екземплярів
- Виконайте наведені нижче команди, щоб створити дві групи керованих екземплярів для клієнтської і серверної частини.
gcloud compute instance-groups managed create fancy-fe-mig \
--base-instance-name fancy-fe \
--size 2 \
--template fancy-fe
gcloud compute instance-groups managed create fancy-be-mig \
--base-instance-name fancy-be \
--size 2 \
--template fancy-be
Ці групи керованих екземплярів використовують шаблони для створення двох екземплярів у кожній групі. Екземпляри автоматично отримують назви, що складаються зі значення base-instance-name і випадкових символів.
- У вашому додатку мікросервіс
frontend працює через порт 8080, а мікросервіс backend – через порт 8081 для параметра orders і порт 8082 для параметра products.
gcloud compute instance-groups set-named-ports fancy-fe-mig \
--named-ports frontend:8080
gcloud compute instance-groups set-named-ports fancy-be-mig \
--named-ports orders:8081,products:8082
Оскільки ці порти є нестандартними, для їх ідентифікації потрібно вказати іменовані порти. Іменовані порти – це метадані у вигляді пар "ключ – значення", що містять назву сервісу й порт, на якому він працює. Іменовані порти можна призначити групі екземплярів, щоб відповідний сервіс був доступний для всіх екземплярів у групі. Сервіс розподілу навантаження HTTP, який ви налаштуєте пізніше, також використовуватиме цю інформацію.
Налаштуйте автоматичне виправлення помилок
Щоб покращити доступність додатка й перевірити, чи він відповідає, налаштуйте правило автоматичного виправлення помилок для груп керованих екземплярів.
Правило автоматичного виправлення помилок виконує перевірку стану додатка, щоб переконатися, що він працює належним чином. Це точніший спосіб оцінити роботу додатка, ніж просто перевірити, чи перебуває екземпляр у стані RUNNING (режим роботи за умовчанням).
Примітка. Для розподілу навантаження й автоматичного виправлення помилок використовуватимуться окремі перевірки стану. Перевірки стану для розподілу навантаження можуть і мають бути агресивнішими, оскільки вони визначають, чи отримує екземпляр трафік користувачів. Це дає змогу швидко виявляти екземпляри, які не відповідають на запити, щоб за потреби переспрямовувати трафік.
У межах перевірки стану для автоматичного виправлення помилок Compute Engine завчасно замінюватиме несправні екземпляри, тому вона має бути консервативнішою, ніж перевірка стану для розподілу навантаження.
- Виконайте наведені нижче команди, щоб створити перевірку стану, яка відновлює екземпляри
frontend і backend, якщо вони повертають статус unhealthy 3 рази поспіль.
gcloud compute health-checks create http fancy-fe-hc \
--port 8080 \
--check-interval 30s \
--healthy-threshold 1 \
--timeout 10s \
--unhealthy-threshold 3
gcloud compute health-checks create http fancy-be-hc \
--port 8081 \
--request-path=/api/orders \
--check-interval 30s \
--healthy-threshold 1 \
--timeout 10s \
--unhealthy-threshold 3
- Створіть правило брандмауера, щоб дозволити перевіркам стану підключатися до мікросервісів через порти 8080–8081, виконавши таку команду:
gcloud compute firewall-rules create allow-health-check \
--allow tcp:8080-8081 \
--source-ranges 130.211.0.0/22,35.191.0.0/16 \
--network default
- Виконайте наведені нижче команди, щоб застосувати перевірки стану до відповідних сервісів.
gcloud compute instance-groups managed update fancy-fe-mig \
--health-check fancy-fe-hc \
--initial-delay 300
gcloud compute instance-groups managed update fancy-be-mig \
--health-check fancy-be-hc \
--initial-delay 300
Примітка. Перш ніж функція автоматичного виправлення помилок почне відстежувати екземпляри в групі, може пройти 15 хвилин.
- Продовжуйте виконувати практичне заняття, щоб дати системі автоматичного виправлення помилок достатньо часу на відстеження екземплярів у групі. Наприкінці практичного заняття ви змоделюєте збій, щоб перевірити роботу цієї функції.
Щоб підтвердити виконання завдання, натисніть Підтвердити виконання. Створіть групи керованих екземплярів
Завдання 6. Створіть розподілювачі навантаження
Щоб доповнити групи керованих екземплярів, створіть розподілювачі навантаження HTTP(S) для надсилання трафіку до мікросервісів клієнтської і серверної частини, а також налаштуйте зіставлення з відповідними серверними сервісами на основі правил шляху. Завдяки цьому ви зможете використовувати одну IP-адресу з розподілом навантаження для всіх сервісів.
Щоб дізнатися більше про варіанти налаштування розподілювачів навантаження в Google Cloud, перегляньте цю статтю.
Створіть розподілювач навантаження HTTP(S)
У Google Cloud доступні різні типи розподілювачів навантаження. На цьому практичному занятті ви використовуватимете для трафіку розподілювач навантаження HTTP(S), який має наведену нижче структуру.
- Правило переадресування спрямовує вхідні запити до цільового проксі-сервера HTTP.
- Цільовий проксі-сервер HTTP зіставляє кожен запит із картою URL-адрес, щоб визначити відповідний серверний сервіс.
- Серверний сервіс спрямовує кожен запит до відповідної серверної частини залежно від обсягу, зони й стану пов’язаних екземплярів. Кожен екземпляр серверної частини проходить перевірку стану HTTP. Якщо для серверного сервісу налаштовано використання перевірки стану HTTPS або HTTP/2, запит буде зашифровано на шляху до екземпляра серверної частини.
- Сеанси між розподілювачем навантаження й екземпляром можуть використовувати протоколи HTTP, HTTPS або HTTP/2. Якщо використовуються протоколи HTTPS або HTTP/2, кожен екземпляр у серверних сервісах повинен мати сертифікат SSL.
Примітка. Щоб уникнути труднощів із сертифікатом SSL, у демонстраційних цілях використовуйте протокол HTTP замість HTTPS. У робочому середовищі рекомендується за можливості використовувати протокол HTTPS для шифрування.
- Створіть перевірки стану, щоб визначити, які екземпляри можуть обробляти трафік для кожного сервісу.
gcloud compute http-health-checks create fancy-fe-frontend-hc \
--request-path / \
--port 8080
gcloud compute http-health-checks create fancy-be-orders-hc \
--request-path /api/orders \
--port 8081
gcloud compute http-health-checks create fancy-be-products-hc \
--request-path /api/products \
--port 8082
Примітка. Ці перевірки стану призначені для розподілювача навантаження й керують лише переспрямуванням трафіку з нього. Вони не ініціюють повторне створення екземплярів у групах.
- Створіть серверні сервіси, щоб спрямувати до них трафік із розподілом навантаження. Ці сервіси використовуватимуть створені вами перевірки стану й іменовані порти.
gcloud compute backend-services create fancy-fe-frontend \
--http-health-checks fancy-fe-frontend-hc \
--port-name frontend \
--global
gcloud compute backend-services create fancy-be-orders \
--http-health-checks fancy-be-orders-hc \
--port-name orders \
--global
gcloud compute backend-services create fancy-be-products \
--http-health-checks fancy-be-products-hc \
--port-name products \
--global
- Додайте серверні сервіси розподілювача навантаження.
gcloud compute backend-services add-backend fancy-fe-frontend \
--instance-group fancy-fe-mig \
--instance-group-zone {{{ project_0.default_zone | "ZONE" }}} \
--global
gcloud compute backend-services add-backend fancy-be-orders \
--instance-group fancy-be-mig \
--instance-group-zone {{{ project_0.default_zone | "ZONE" }}} \
--global
gcloud compute backend-services add-backend fancy-be-products \
--instance-group fancy-be-mig \
--instance-group-zone {{{ project_0.default_zone | "ZONE" }}} \
--global
- Створіть карту URL-адрес. Вона потрібна, щоб зіставити URL-адреси із серверними сервісами:
gcloud compute url-maps create fancy-map \
--default-service fancy-fe-frontend
- Створіть інструмент зіставлення, щоб спрямовувати трафік зі шляхів
/api/orders і /api/products до відповідних сервісів.
gcloud compute url-maps add-path-matcher fancy-map \
--default-service fancy-fe-frontend \
--path-matcher-name orders \
--path-rules "/api/orders=fancy-be-orders,/api/products=fancy-be-products"
- Створіть проксі-сервер, пов’язаний із картою URL-адрес:
gcloud compute target-http-proxies create fancy-proxy \
--url-map fancy-map
- Створіть глобальне правило переадресування, щоб зв’язати загальнодоступну IP-адресу й порт із проксі-сервером:
gcloud compute forwarding-rules create fancy-http-rule \
--global \
--target-http-proxy fancy-proxy \
--ports 80
Щоб підтвердити виконання завдання, натисніть Підтвердити виконання. Створіть розподілювачі навантаження HTTP(S)
Оновіть конфігурацію
Ви створили нову статичну IP-адресу. Тепер оновіть код екземпляра frontend, щоб додати нову адресу замість тимчасової, яка використовувалася раніше й спрямовувала до екземпляра backend.
- У Cloud Shell перейдіть у папку
react-app, де зберігається файл .env з конфігурацією.
cd ~/monolith-to-microservices/react-app/
- Виконайте таку команду, щоб визначити IP-адресу розподілювача навантаження:
gcloud compute forwarding-rules list --global
Приклад виводу:
NAME: fancy-http-rule
REGION:
IP_ADDRESS: 34.111.203.235
IP_PROTOCOL: TCP
TARGET: fancy-proxy
- Поверніться в редактор Cloud Shell і додайте у файл
.env загальнодоступну IP-адресу розподілювача навантаження. [LB_IP] – це зовнішня IP-адреса екземпляра серверної частини, яку ви щойно визначили.
REACT_APP_ORDERS_URL=http://[LB_IP]/api/orders
REACT_APP_PRODUCTS_URL=http://[LB_IP]/api/products
Примітка. Нова адреса не містить портів, оскільки розподілювач навантаження налаштовано, щоб обробляти переспрямування замість вас.
-
Натисніть Save (Зберегти), щоб зберегти файл.
-
Виконайте повторне складання додатка react-app, щоб оновити код клієнтської частини:
cd ~/monolith-to-microservices/react-app
npm install && npm run-script build
- Скопіюйте код додатка у свій сегмент.
cd ~
rm -rf monolith-to-microservices/*/node_modules
gcloud storage cp -r monolith-to-microservices gs://fancy-store-{{{project_0.project_id | BUCKET}}}/
Оновіть екземпляри клієнтської частини
Налаштувавши новий код і конфігурацію, виконайте оновлення, щоб екземпляри клієнтської частини в групі керованих екземплярів отримали новий код.
- Оскільки екземпляри отримують код під час запуску, ви можете виконати команду поступового перезапуску:
gcloud compute instance-groups managed rolling-action replace fancy-fe-mig \
--max-unavailable 100%
Примітка. У цьому прикладі поступового оновлення потрібно вказати, що всі машини можна замінити негайно, за допомогою параметра --max-unavailable. Якщо пропустити цей параметр, один екземпляр залишиться активним, щоб забезпечити доступність сервісу, поки інші перезапускатимуться. У межах тестування ви вказали, що потрібно негайно замінити всі екземпляри.
Щоб підтвердити виконання завдання, натисніть Підтвердити виконання. Оновіть екземпляри клієнтської частини
Протестуйте вебсайт
- Зачекайте приблизно 30 секунд після виконання команди
rolling-action replace, щоб обробка екземплярів завершилася, а потім перевірте статус групи керованих екземплярів і переконайтеся, що вони з’явилися в списку.
watch -n 2 gcloud compute instance-groups list-instances fancy-fe-mig
-
Коли екземпляри з’являться в списку, скасуйте команду watch, натиснувши CTRL+C.
-
Виконайте наведену нижче команду, щоб переконатися, що сервіс має статус HEALTHY (СПРАВНИЙ).
watch -n 2 gcloud compute backend-services get-health fancy-fe-frontend --global
- Зачекайте, доки обидва сервіси матимуть статус HEALTHY (СПРАВНИЙ).
Приклад виводу:
backend: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_region | "REGION" }}}/instanceGroups/fancy-fe-mig status: healthStatus:
- healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_region | "REGION" }}}/instances/fancy-fe-x151 ipAddress: 10.128.0.7 port: 8080
- healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_region | "REGION" }}}/instances/fancy-fe-cgrt ipAddress: 10.128.0.11 port: 8080 kind: compute#backendServiceGroupHealth
Примітка. Якщо в одному з екземплярів виникне проблема й він матиме статус UNHEALTHY (НЕСПРАВНИЙ), його буде автоматично відновлено. Вам потрібно лише зачекати. Якщо через деякий час жоден екземпляр клієнтської частини не матиме статусу HEALTHY (СПРАВНИЙ), це означає, що їх налаштовано неправильно, тому до них не можна отримати доступ через порт 8080. Перевірте це, перейшовши до екземплярів безпосередньо через порт 8080.
- Коли обидва екземпляри в списку матимуть статус HEALTHY (СПРАВНИЙ), скасуйте команду
watch, натиснувши CTRL+C.
Примітка. Додаток буде доступний за адресою http://[LB_IP], де [LB_IP] – це значення параметра IP_ADDRESS, указане для розподілювача навантаження. Щоб визначити його, виконайте таку команду:
gcloud compute forwarding-rules list --global
Ви перевірите роботу додатка пізніше під час практичного заняття.
Завдання 7. Масштабуйте групи екземплярів Compute Engine
Ви вже створили дві групи керованих екземплярів, кожна з яких містить по два екземпляри. Ця конфігурація повністю функціональна, однак залишається статичною незалежно від обсягу навантаження. Щоб автоматично масштабувати кожну керовану групу екземплярів, ви створите правило, що застосовується залежно від обсягу використаних ресурсів.
Налаштуйте автомасштабування залежно від використаних ресурсів
- Щоб створити правило автомасштабування, виконайте наведені нижче команди.
gcloud compute instance-groups managed set-autoscaling \
fancy-fe-mig \
--max-num-replicas 2 \
--target-load-balancing-utilization 0.60
gcloud compute instance-groups managed set-autoscaling \
fancy-be-mig \
--max-num-replicas 2 \
--target-load-balancing-utilization 0.60
За допомогою цих команд ви створили в групах керованих екземплярів спеціальний інструмент, який автоматично додає екземпляри, коли використання ресурсів перевищує 60%, і вилучає їх, коли воно становить менше ніж 60%.
Увімкніть мережу доставки контенту
Мережа доставки контенту забезпечує кешування клієнтської частини, що також корисно для масштабування.
- Виконайте наведену нижче команду для сервісу frontend.
gcloud compute backend-services update fancy-fe-frontend \
--enable-cdn --global
Коли користувач надсилає запит на контент із розподілювача навантаження HTTP(S), він надходить у сервіс Google Front End (GFE), який спершу шукає відповідь у кеші Cloud CDN. Якщо сервіс GFE знаходить кешовану відповідь, то надсилає її користувачу. Це називається наявністю даних у кеші.
Якщо сервісу GFE не вдається знайти кешовану відповідь на запит, він надсилає його безпосередньо до серверної частини. Якщо відповідь на цей запит можна кешувати, сервіс GFE зберігає її в кеші Cloud CDN, щоб використовувати для подальших запитів.
Щоб підтвердити виконання завдання, натисніть Підтвердити виконання. Масштабуйте екземпляри Compute Engine
Завдання 8. Оновіть вебсайт
Оновіть шаблон екземпляра
Наявні шаблони екземплярів не можна редагувати. Оскільки ви створили екземпляри без відстеження стану, а всі налаштування виконуються за допомогою скрипту запуску, для зміни налаштувань шаблона вам потрібно лише відредагувати шаблон екземпляра. Ви внесете невелику зміну, щоб використовувати більший тип машини, і застосуєте її.
-
Оновіть екземпляр frontend, який є основою для шаблона. Для цього потрібно додати файл в образ оновленої версії шаблона екземпляра, а потім оновити наявний шаблон, розгорнути новий і перевірити, чи є файл в групі керованих екземплярів.
-
Змініть тип машини в шаблоні екземпляра з e2-medium на спеціальний тип машини із 4 віртуальними центральними процесорами й 3840 МіБ оперативної пам’яті.
-
Щоб змінити тип машини для екземпляра клієнтської частини, виконайте таку команду:
gcloud compute instances set-machine-type frontend --machine-type custom-4-3840
- Створіть новий шаблон екземпляра.
gcloud compute instance-templates create fancy-fe-new \
--source-instance=frontend \
--source-instance-zone={{{ project_0.default_zone | "ZONE" }}}
- Застосуйте оновлений шаблон до групи керованих екземплярів.
gcloud compute instance-groups managed rolling-action start-update fancy-fe-mig \
--version template=fancy-fe-new
- Зачекайте 30 секунд, а потім виконайте таку команду, щоб дізнатися статус оновлення:
watch -n 2 gcloud compute instance-groups managed list-instances fancy-fe-mig
Це займе кілька хвилин.
Переконайтесь, що принаймні 1 екземпляр має наведені нижче параметри.
- STATUS (СТАТУС): RUNNING (АКТИВНИЙ).
- Для параметра ACTION (ДІЯ) вибрано значення None (Немає).
- Новий шаблон INSTANCE_TEMPLATE має назву fancy-fe-new.
-
Скопіюйте назву однієї з машин, указаних у списку, щоб використати її в наступній команді.
-
Щоб скасувати команду watch, натисніть CTRL + C.
-
Виконайте наведену нижче команду, щоб перевірити, чи змінився тип віртуальної машини (custom-4-3840), де [VM_NAME] – це назва щойно створеного екземпляра.
gcloud compute instances describe [VM_NAME] | grep machineType
Очікуваний вивід:
machineType: https://www.googleapis.com/compute/v1/projects/project-name/zones/{{{ project_0.default_zone | "ZONE" }}}/machineTypes/custom-4-3840
Внесіть зміни на вебсайті
Сценарій. Команда з маркетингу попросила вас змінити головну сторінку сайту. На їхню думку, вона має містити більше інформації про вашу компанію і товари, що продаються.
Завдання. На прохання команди з маркетингу додайте текст на головну сторінку вебсайту. Один із розробників уже вніс зміни у файл із назвою index.js.new. Ви можете скопіювати цей файл в index.js, і зміни буде застосовано. Дотримуйтеся наведених нижче вказівок, щоб внести відповідні зміни.
- Скопіюйте оновлений файл із правильною назвою, виконавши такі команди:
cd ~/monolith-to-microservices/react-app/src/pages/Home
mv index.js.new index.js
- Щоб перевірити зміни, виведіть вміст файлу на екран.
cat ~/monolith-to-microservices/react-app/src/pages/Home/index.js
Вивід матиме такий вигляд:
/*
Copyright 2019 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from "react";
import { Box, Paper, Typography } from "@mui/material";
export default function Home() {
return (
theme.spacing(3, 2),
}}
>
Fancy Fashion & Style Online
Tired of mainstream fashion ideas, popular trends and societal norms? This
line of lifestyle products will help you catch up with the Fancy
trend and express your personal style. Start shopping Fancy items
now!
);
}
Ви оновили компоненти React. Тепер потрібно виконати складання додатка React, щоб згенерувати статичні файли.
- Виконайте складання додатка React і скопіюйте його в загальнодоступний каталог monolith за допомогою такої команди:
cd ~/monolith-to-microservices/react-app
npm install && npm run-script build
- Потім знову надішліть цей код у сегмент.
cd ~
rm -rf monolith-to-microservices/*/node_modules
gcloud storage cp -r monolith-to-microservices gs://fancy-store-{{{project_0.project_id | BUCKET}}}/
Застосовуйте зміни за допомогою поступового оновлення
- Тепер примусово замініть усі екземпляри, щоб застосувати оновлення.
gcloud compute instance-groups managed rolling-action replace fancy-fe-mig \
--max-unavailable=100%
Примітка. У цьому прикладі поступового оновлення потрібно вказати, що всі машини можна замінити негайно, за допомогою параметра --max-unavailable. Якщо пропустити цей параметр, один екземпляр залишиться активним, поки інші перезапускатимуться.
У межах тестування ви вказали, що потрібно негайно замінити всі екземпляри. У робочому середовищі завдяки цьому буферу вебсайт продовжуватиме роботу під час оновлення.
Щоб підтвердити виконання завдання, натисніть Підтвердити виконання. Оновіть вебсайт
- Зачекайте приблизно 30 секунд після виконання команди
rolling-action replace, щоб обробка екземплярів завершилася, а потім перевірте статус групи керованих екземплярів і переконайтеся, що вони з’явилися в списку.
watch -n 2 gcloud compute instance-groups list-instances fancy-fe-mig
-
Коли екземпляри з’являться в списку, скасуйте команду watch, натиснувши CTRL+C.
-
Виконайте наведену нижче команду, щоб переконатися, що сервіс має статус HEALTHY (СПРАВНИЙ).
watch -n 2 gcloud compute backend-services get-health fancy-fe-frontend --global
- Зачекайте кілька секунд, щоб обидва сервіси з’явилися в списку зі статусом HEALTHY (СПРАВНИЙ).
Приклад виводу:
backend: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_zone | "ZONE" }}}/instanceGroups/fancy-fe-mig status: healthStatus:
- healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_zone | "ZONE" }}}/instances/fancy-fe-x151 ipAddress: 10.128.0.7 port: 8080
- healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_zone | "ZONE" }}}/instances/fancy-fe-cgrt ipAddress: 10.128.0.11 port: 8080 kind: compute#backendServiceGroupHealth
-
Коли екземпляри з’являться в списку, скасуйте команду watch, натиснувши CTRL+C.
-
Перейдіть на вебсайт за адресою http://[LB_IP], де [LB_IP] – це значення параметра IP_ADDRESS, указане для розподілювача навантаження. Щоб визначити його, виконайте таку команду:
gcloud compute forwarding-rules list --global
Тепер зміни мають з’явитися на вебсайті.
Змоделюйте збій
Щоб переконатися, що перевірка стану працює, увійдіть в екземпляр і зупиніть сервіси.
- Визначте назву екземпляра, виконавши таку команду:
gcloud compute instance-groups list-instances fancy-fe-mig
- Скопіюйте назву екземпляра й виконайте наведену нижче команду, щоб підключитися до нього через Secure Shell (замініть
INSTANCE_NAME на назву екземпляра зі списку).
gcloud compute ssh [INSTANCE_NAME]
-
Введіть y, а потім двічі натисніть Enter, щоб не використовувати пароль.
-
Отримавши доступ до екземпляра, зупиніть додаток за допомогою команди supervisorctl:
sudo supervisorctl stop nodeapp; sudo killall node
- Вийдіть з екземпляра, виконавши таку команду:
exit
- Стежте за процесом відновлення за допомогою такої команди:
watch -n 2 gcloud compute operations list \
--filter='operationType~compute.instances.repair.*'
Це займе кілька хвилин.
Приклад виводу:
NAME TYPE TARGET HTTP_STATUS STATUS TIMESTAMP
repair-1568314034627-5925f90ee238d-fe645bf0-7becce15 compute.instances.repair.recreateInstance {{{ project_0.default_zone | "ZONE" }}}/instances/fancy-fe-1vqq 200 DONE 2019-09-12T11:47:14.627-07:00
Група керованих екземплярів повторно створила екземпляр, щоб відновити його роботу.
- Ви також можете відстежувати цей процес у консолі. Для цього відкрийте меню навігації > Compute Engine > VM instances (Екземпляри віртуальних машин).
Вітаємо!
Вітаємо! Під час цього практичного заняття ви розгорнули, масштабували й оновили вебсайт за допомогою Compute Engine, а також отримали практичний досвід роботи з Compute Engine, групами керованих екземплярів, розподілювачами навантаження й перевірками стану. Ви також дізналися більше про те, як Google Cloud і Azure спрощують розгортання додатків на основі віртуальних машин за допомогою розподілювачів навантаження, підключених до Інтернету. Google Cloud дає змогу уніфіковано розгортати код і конфігурацію екземплярів за допомогою скриптів запуску, легко керувати віртуальними машинами завдяки автомасштабуванню, налаштовувати глобальні зовнішні розподілювачі навантаження HTTP(S), а також оновлювати образи й додатки без простою через скрипти запуску й групи керованих екземплярів.
Нижче наведено огляд деяких подібностей і відмінностей між цими двома платформами, які ви могли помітити під час практичного заняття.
Подібності
- Як і в Azure, у Google Cloud можна розгортати додатки на основі віртуальних машин і налаштовувати розподілювачі навантаження, щоб зробити ці додатки доступними в Інтернеті.
Відмінності
- У Google Cloud ви розгорнули сервіс додатка через Compute Engine за допомогою коду, розміщеного в сегменті Cloud Storage. В Azure для цього потрібно використовувати конвеєр DevOps або сховище коду.
- У Google Cloud можна керувати розгортанням коду, конфігурацією віртуальної машини й оновленням додатка за допомогою одного скрипту запуску. В Azure керувати розгортанням коду потрібно через конвеєри DevOps або сховище коду, а віртуальними машинами – окремо за допомогою наборів масштабування.
- У Google Cloud ви оновили код додатка й повторно розгорнули його без простою за допомогою моделі поступового оновлення. В Azure для оновлень використовується період технічного обслуговування.
- У Google Cloud можна ввімкнути автоматичне масштабування для груп керованих екземплярів. У такому разі Google Cloud оновлюватиме віртуальні машини в групах керованих екземплярів і підтримуватиме їх у робочому стані. В Azure для цього використовуються набори масштабування.
Наступні кроки/Докладніше
Навчання й сертифікація Google Cloud
…допомагають ефективно використовувати технології Google Cloud. Наші курси передбачають опанування технічних навичок, а також ознайомлення з рекомендаціями, що допоможуть вам швидко зорієнтуватися й вивчити матеріал. Ми пропонуємо курси різних рівнів – від базового до високого. Ви можете вибрати формат навчання (за запитом, онлайн або офлайн) відповідно до власного розкладу. Пройшовши сертифікацію, ви перевірите й підтвердите свої навички та досвід роботи з технологіями Google Cloud.
Посібник востаннє оновлено 4 серпня 2026 року
Практичне заняття востаннє протестовано 4 серпня 2026 року
© Google LLC 2026. Усі права захищено. Назва та логотип Google є торговельними марками Google LLC. Усі інші назви компаній і продуктів можуть бути торговельними марками відповідних компаній, з якими вони пов’язані.