декабря 21, 2025
12 мин. чтения

Вопросы для собеседования junior GCP cloud engineer

interview
career-advice
job-search
entry-level
Вопросы для собеседования junior GCP cloud engineer
Milad Bonakdar

Milad Bonakdar

Автор

Подготовьтесь к собеседованию junior GCP cloud engineer с практическими вопросами по IAM, Compute Engine, Cloud Storage, VPC, Pub/Sub, Cloud Run functions и troubleshooting через gcloud.


Введение

На собеседовании junior GCP cloud engineer важно объяснять, как ресурсы Google Cloud работают вместе, а не просто перечислять названия продуктов. Обычно проверяют, можете ли вы выбрать подходящий compute-сервис, защитить доступ через IAM, рассуждать о VPC-сетях, безопасно использовать Cloud Storage и разбирать базовые проблемы через CLI gcloud.

Используйте это руководство, чтобы отработать краткие ответы по Compute Engine, Cloud Storage, VPC, IAM, Pub/Sub, Cloud Run functions и типичным CLI-сценариям. Связывайте каждый сервис с практической ситуацией: размещение веб-приложения, хранение бэкапов, выдача доступа сервисному аккаунту или поиск причины, почему трафик не доходит до VM.


GCP Compute Engine

1. Что такое Google Compute Engine и каковы его основные варианты использования?

Ответ: Compute Engine предоставляет масштабируемые виртуальные машины, работающие в центрах обработки данных Google.

Ключевые особенности:

  • Пользовательские или предопределенные типы машин
  • Постоянные диски и локальные SSD
  • Spot VMs для экономии на нагрузках, допускающих прерывания
  • Живая миграция для обслуживания
  • Глобальная балансировка нагрузки

Варианты использования:

  • Веб-хостинг
  • Серверы приложений
  • Пакетная обработка
  • Высокопроизводительные вычисления
# Создать экземпляр ВМ
gcloud compute instances create my-instance \
  --zone=us-central1-a \
  --machine-type=e2-medium \
  --image-family=debian-11 \
  --image-project=debian-cloud

# Список экземпляров
gcloud compute instances list

# SSH на экземпляр
gcloud compute ssh my-instance --zone=us-central1-a

# Остановить экземпляр
gcloud compute instances stop my-instance --zone=us-central1-a

Распространенность: Очень часто
Сложность: Легко


2. Объясните разницу между постоянными дисками и локальными SSD.

Ответ:

ХарактеристикаПостоянный дискЛокальный SSD
НадежностьДанные сохраняются независимоДанные теряются при остановке ВМ
ПроизводительностьХорошаяОтличная (низкая задержка)
РазмерДо 64 ТБДо 9 ТБ
Вариант использованияЗагрузочные диски, хранение данныхВременный кеш, пространство для черновиков
СтоимостьНижеВыше
СнимкиПоддерживаютсяНе поддерживаются

Пример:

# Создать ВМ с постоянным диском
gcloud compute instances create my-vm \
  --boot-disk-size=50GB \
  --boot-disk-type=pd-ssd

# Создать ВМ с локальным SSD
gcloud compute instances create my-vm \
  --local-ssd interface=NVME

Распространенность: Часто
Сложность: Легко-Средне


GCP Cloud Storage

3. Какие существуют классы хранения в Cloud Storage?

Ответ: Cloud Storage предлагает несколько классов для различных моделей доступа:

КлассВариант использованияДоступностьМин. продолжительностьСтоимость
StandardЧасто используемые99,95%НетСамая высокая
Nearline< 1 раз в месяц99,9%30 днейНиже
Coldline< 1 раз в квартал99,9%90 днейОчень низкая
Archive< 1 раз в год99,9%365 днейСамая низкая
# Создать бакет
gsutil mb -c STANDARD -l us-central1 gs://my-bucket

# Загрузить файл
gsutil cp myfile.txt gs://my-bucket/

# Список объектов
gsutil ls gs://my-bucket/

# Скачать файл
gsutil cp gs://my-bucket/myfile.txt ./

# Изменить класс хранения
gsutil rewrite -s NEARLINE gs://my-bucket/myfile.txt

Распространенность: Очень часто
Сложность: Легко-Средне


GCP VPC (Virtual Private Cloud)

4. Что такое VPC и каковы ее основные компоненты?

Ответ: VPC — это виртуальная сеть, обеспечивающая подключение ресурсов GCP.

Ключевые компоненты:

Loading diagram...

Компоненты:

  1. Подсети: Региональные диапазоны IP-адресов
  2. Правила брандмауэра: Контролируют трафик
  3. Маршруты: Определяют пути трафика
  4. VPC Peering: Соединяет VPC
  5. Cloud VPN: Подключается к локальной сети
# Создать VPC
gcloud compute networks create my-vpc \
  --subnet-mode=custom

# Создать подсеть
gcloud compute networks subnets create my-subnet \
  --network=my-vpc \
  --region=us-central1 \
  --range=10.0.1.0/24

# Создать правило брандмауэра (разрешить SSH)
gcloud compute firewall-rules create allow-ssh \
  --network=my-vpc \
  --allow=tcp:22 \
  --source-ranges=0.0.0.0/0

Распространенность: Очень часто
Сложность: Средне


5. Как работают правила брандмауэра в GCP?

Ответ: Правила брандмауэра контролируют входящий и исходящий трафик.

Характеристики:

  • Stateful (обратный трафик разрешен автоматически)
  • Применяются к сети или конкретным экземплярам
  • На основе приоритетов (0-65535, ниже = выше приоритет)
  • По умолчанию: разрешить исходящий, запретить входящий

Компоненты правила:

  • Направление (входящий/исходящий)
  • Приоритет
  • Действие (разрешить/запретить)
  • Источник/назначение
  • Протоколы и порты
# Разрешить HTTP-трафик
gcloud compute firewall-rules create allow-http \
  --network=my-vpc \
  --allow=tcp:80 \
  --source-ranges=0.0.0.0/0 \
  --target-tags=web-server

# Разрешить внутреннюю связь
gcloud compute firewall-rules create allow-internal \
  --network=my-vpc \
  --allow=tcp:0-65535,udp:0-65535,icmp \
  --source-ranges=10.0.0.0/8

# Запретить определенный трафик
gcloud compute firewall-rules create deny-telnet \
  --network=my-vpc \
  --action=DENY \
  --rules=tcp:23 \
  --priority=1000

Распространенность: Очень часто
Сложность: Средне


GCP IAM

6. Объясните роли и разрешения IAM в GCP.

Ответ: IAM контролирует, кто что может делать с какими ресурсами.

Ключевые понятия:

  • Участник: Пользователь, сервисный аккаунт или группа
  • Роль: Набор разрешений
  • Политика: Связывает участников с ролями

Типы ролей:

  1. Примитивные: Владелец, Редактор, Зритель (широкие)
  2. Предопределенные: Специфичные для сервиса (например, Администратор Compute)
  3. Пользовательские: Определяемые пользователем разрешения
# Предоставить роль пользователю
gcloud projects add-iam-policy-binding my-project \
  --member=user:[email protected] \
  --role=roles/compute.instanceAdmin.v1

# Предоставить роль сервисному аккаунту
gcloud projects add-iam-policy-binding my-project \
  --member=serviceAccount:[email protected] \
  --role=roles/storage.objectViewer

# Список политик IAM
gcloud projects get-iam-policy my-project

# Удалить роль
gcloud projects remove-iam-policy-binding my-project \
  --member=user:[email protected] \
  --role=roles/compute.instanceAdmin.v1

Рекомендации:

  • Используйте предопределенные роли, когда это возможно
  • Следуйте принципу наименьших привилегий
  • Используйте сервисные аккаунты для приложений
  • Регулярный аудит разрешений

Распространенность: Очень часто
Сложность: Средне


Основные концепции GCP

7. Что такое регионы и зоны GCP?

Ответ:

Регион:

  • Географическое местоположение (например, us-central1, europe-west1)
  • Содержит несколько зон
  • Независимые домены отказоустойчивости
  • Выбирайте на основе задержки, соответствия требованиям, стоимости

Зона:

  • Изолированное местоположение в регионе
  • Единый домен отказоустойчивости
  • Развертывайте в разных зонах для высокой доступности
Loading diagram...

Пример:

# Список регионов
gcloud compute regions list

# Список зон
gcloud compute zones list

# Создать экземпляр в определенной зоне
gcloud compute instances create my-vm \
  --zone=us-central1-a

Распространенность: Очень часто
Сложность: Легко


8. Что такое сервисный аккаунт и когда его использовать?

Ответ: Сервисный аккаунт — это специальная учетная запись для приложений и ВМ.

Характеристики:

  • Не для людей
  • Используется приложениями
  • Может иметь роли IAM
  • Может создавать ключи для аутентификации

Варианты использования:

  • Экземпляры ВМ, обращающиеся к Cloud Storage
  • Приложения, вызывающие API GCP
  • CI/CD конвейеры
  • Межпроектный доступ
# Создать сервисный аккаунт
gcloud iam service-accounts create my-sa \
  --display-name="My Service Account"

# Предоставить роль сервисному аккаунту
gcloud projects add-iam-policy-binding my-project \
  --member=serviceAccount:[email protected] \
  --role=roles/storage.objectViewer

# Прикрепить к ВМ
gcloud compute instances create my-vm \
  [email protected] \
  --scopes=cloud-platform

Распространенность: Часто
Сложность: Легко-Средне


Serverless & Messaging

9. Что такое Cloud Pub/Sub и когда его использовать?

Ответ: Cloud Pub/Sub — это полностью управляемый сервис обмена сообщениями для асинхронной связи.

Ключевые понятия:

  • Топик (Topic): Именованный ресурс, в который отправляются сообщения
  • Подписка (Subscription): Именованный ресурс, представляющий поток сообщений
  • Издатель (Publisher): Отправляет сообщения в топики
  • Подписчик (Subscriber): Получает сообщения из подписок

Архитектура:

Loading diagram...

Основные операции:

# Создать топик
gcloud pubsub topics create my-topic

# Создать подписку
gcloud pubsub subscriptions create my-subscription \
  --topic=my-topic \
  --ack-deadline=60

# Опубликовать сообщение
gcloud pubsub topics publish my-topic \
  --message="Hello, World!"

# Получить сообщения
gcloud pubsub subscriptions pull my-subscription \
  --auto-ack \
  --limit=10

Пример издателя (Python):

from google.cloud import pubsub_v1
import json

# Создать клиент издателя
publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path('my-project', 'my-topic')

# Опубликовать сообщение
def publish_message(data):
    message_json = json.dumps(data)
    message_bytes = message_json.encode('utf-8')
    
    # Опубликовать с атрибутами
    future = publisher.publish(
        topic_path,
        message_bytes,
        event_type='order_created',
        user_id='123'
    )
    
    print(f'Published message ID: {future.result()}')

# Пакетная публикация для эффективности
def publish_batch(messages):
    futures = []
    for message in messages:
        message_bytes = json.dumps(message).encode('utf-8')
        future = publisher.publish(topic_path, message_bytes)
        futures.append(future)
    
    # Дождаться публикации всех сообщений
    for future in futures:
        future.result()

Пример подписчика (Python):

from google.cloud import pubsub_v1

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path('my-project', 'my-subscription')

def callback(message):
    print(f'Received message: {message.data.decode("utf-8")}')
    print(f'Attributes: {message.attributes}')
    
    # Обработать сообщение
    try:
        process_message(message.data)
        message.ack()  # Подтвердить успешную обработку
    except Exception as e:
        print(f'Error processing message: {e}')
        message.nack()  # Отрицательное подтверждение (повторная попытка)

# Подписаться
streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)

print(f'Listening for messages on {subscription_path}...')

try:
    streaming_pull_future.result()
except KeyboardInterrupt:
    streaming_pull_future.cancel()

Типы подписок:

1. Pull Subscription (Вытягивающая подписка):

# Подписчик извлекает сообщения по запросу
gcloud pubsub subscriptions create pull-sub \
  --topic=my-topic

2. Push Subscription (Отправляющая подписка):

# Pub/Sub отправляет сообщения на HTTPS-эндпоинт
gcloud pubsub subscriptions create push-sub \
  --topic=my-topic \
  --push-endpoint=https://myapp.example.com/webhook

Варианты использования:

  • Архитектуры, управляемые событиями
  • Связь между микросервисами
  • Конвейеры потоковой обработки
  • Прием данных IoT
  • Асинхронная обработка задач

Рекомендации:

  • Используйте атрибуты сообщений для фильтрации
  • Реализуйте идемпотентную обработку сообщений
  • Установите соответствующие сроки подтверждения
  • Используйте топики "мертвых писем" для неудачных сообщений
  • Мониторьте отставание подписки

Распространенность: Часто
Сложность: Средне


10. Что такое Cloud Run functions и как развернуть функцию?

Ответ: Cloud Run functions — это текущий вариант Google Cloud для serverless-кода, запускаемого по событиям. На собеседованиях все еще могут говорить «Cloud Functions»; практический смысл тот же: развернуть небольшие функции, которые реагируют на HTTP-запросы или события без управления серверами.

Триггеры:

  • HTTP-запросы
  • Сообщения Cloud Pub/Sub
  • События Cloud Storage
  • События Firestore
  • События Firebase

Пример HTTP-функции:

# main.py
import functions_framework
from flask import jsonify

@functions_framework.http
def hello_http(request):
    """HTTP Cloud Function"""
    request_json = request.get_json(silent=True)
    
    if request_json and 'name' in request_json:
        name = request_json['name']
    else:
        name = 'World'
    
    return jsonify({
        'message': f'Hello, {name}!',
        'status': 'success'
    })

Пример Pub/Sub-функции:

import base64
import json
import functions_framework

@functions_framework.cloud_event
def process_pubsub(cloud_event):
    """Triggered by Pub/Sub message"""
    # Decode message
    message_data = base64.b64decode(cloud_event.data["message"]["data"]).decode()
    message_json = json.loads(message_data)
    
    print(f'Processing message: {message_json}')
    
    # Process the message
    result = process_data(message_json)
    
    return result

Пример Storage-функции:

import functions_framework

@functions_framework.cloud_event
def process_file(cloud_event):
    """Triggered by Cloud Storage object creation"""
    data = cloud_event.data
    
    bucket = data["bucket"]
    name = data["name"]
    
    print(f'File {name} uploaded to {bucket}')
    
    # Process the file
    process_uploaded_file(bucket, name)

Развертывание:

# Развернуть HTTP-функцию
gcloud functions deploy hello_http \
  --runtime=python312 \
  --trigger-http \
  --allow-unauthenticated \
  --entry-point=hello_http \
  --region=us-central1

# Развернуть Pub/Sub-функцию
gcloud functions deploy process_pubsub \
  --runtime=python312 \
  --trigger-topic=my-topic \
  --entry-point=process_pubsub \
  --region=us-central1

# Развернуть Storage-функцию
gcloud functions deploy process_file \
  --runtime=python312 \
  --trigger-resource=my-bucket \
  --trigger-event=google.storage.object.finalize \
  --entry-point=process_file \
  --region=us-central1

# Развернуть с переменными окружения
gcloud functions deploy my_function \
  --runtime=python312 \
  --trigger-http \
  --set-env-vars DATABASE_URL=...,API_KEY=...

# Развернуть с определенной памятью и тайм-аутом
gcloud functions deploy my_function \
  --runtime=python312 \
  --trigger-http \
  --memory=512MB \
  --timeout=300s

Файл требований:

# requirements.txt
functions-framework==3.*
google-cloud-storage==2.*
google-cloud-pubsub==2.*
requests==2.*

Локальное тестирование:

# Установить Functions Framework
pip install functions-framework

# Запустить локально
functions-framework --target=hello_http --port=8080

# Протестировать с помощью curl
curl -X POST http://localhost:8080 \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice"}'

Мониторинг:

# Просмотреть логи
gcloud functions logs read hello_http \
  --region=us-central1 \
  --limit=50

# Просмотреть детали функции
gcloud functions describe hello_http \
  --region=us-central1

Рекомендации:

  • Делайте функции небольшими и сфокусированными
  • Используйте переменные окружения для конфигурации
  • Реализуйте правильную обработку ошибок
  • Установите соответствующие значения тайм-аута
  • Используйте Cloud Logging для отладки
  • Минимизируйте время холодного запуска

Распространенность: Очень часто
Сложность: Легко-Средне


CLI & Tools

11. Объясните общие команды gcloud CLI и конфигурацию.

Ответ: gcloud CLI — это основной инструмент для управления ресурсами GCP.

Начальная настройка:

# Установить gcloud SDK (macOS)
curl https://sdk.cloud.google.com | bash
exec -l $SHELL

# Инициализировать и аутентифицироваться
gcloud init

# Войти
gcloud auth login

# Установить проект по умолчанию
gcloud config set project my-project-id

# Установить регион/зону по умолчанию
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-a

Управление конфигурацией:

# Список конфигураций
gcloud config configurations list

# Создать новую конфигурацию
gcloud config configurations create dev-config

# Активировать конфигурацию
gcloud config configurations activate dev-config

# Установить свойства
gcloud config set account [email protected]
gcloud config set project dev-project

# Просмотреть текущую конфигурацию
gcloud config list

# Отменить установку свойства
gcloud config unset compute/zone

Общие команды по сервисам:

Compute Engine:

# Список экземпляров
gcloud compute instances list

# Создать экземпляр
gcloud compute instances create my-vm \
  --machine-type=e2-medium \
  --zone=us-central1-a

# SSH на экземпляр
gcloud compute ssh my-vm --zone=us-central1-a

# Остановить/запустить экземпляр
gcloud compute instances stop my-vm --zone=us-central1-a
gcloud compute instances start my-vm --zone=us-central1-a

# Удалить экземпляр
gcloud compute instances delete my-vm --zone=us-central1-a

Cloud Storage:

# Список бакетов
gsutil ls

# Создать бакет
gsutil mb -l us-central1 gs://my-bucket

# Загрузить файл
gsutil cp myfile.txt gs://my-bucket/

# Скачать файл
gsutil cp gs://my-bucket/myfile.txt ./

# Синхронизировать каталог
gsutil -m rsync -r ./local-dir gs://my-bucket/remote-dir

# Установить жизненный цикл бакета
gsutil lifecycle set lifecycle.json gs://my-bucket

IAM:

# Список политик IAM
gcloud projects get-iam-policy my-project

# Добавить привязку IAM
gcloud projects add-iam-policy-binding my-project \
  --member=user:[email protected] \
  --role=roles/viewer

# Создать сервисный аккаунт
gcloud iam service-accounts create my-sa \
  --display-name="My Service Account"

# Создать и скачать ключ
gcloud iam service-accounts keys create key.json \
  [email protected]

Kubernetes Engine:

# Список кластеров
gcloud container clusters list

# Получить учетные данные
gcloud container clusters get-credentials my-cluster \
  --zone=us-central1-a

# Создать кластер
gcloud container clusters create my-cluster \
  --num-nodes=3 \
  --zone=us-central1-a

Полезные флаги:

# Форматировать вывод
gcloud compute instances list --format=json
gcloud compute instances list --format=yaml
gcloud compute instances list --format="table(name,zone,status)"

# Фильтровать результаты
gcloud compute instances list --filter="zone:us-central1-a"
gcloud compute instances list --filter="status=RUNNING"

# Ограничить результаты
gcloud compute instances list --limit=10

# Сортировать результаты
gcloud compute instances list --sort-by=creationTimestamp

Полезные команды:

# Получить справку
gcloud help
gcloud compute instances create --help

# Просмотреть информацию о проекте
gcloud projects describe my-project

# Список доступных регионов/зон
gcloud compute regions list
gcloud compute zones list

# Просмотреть квоты
gcloud compute project-info describe \
  --project=my-project

# Включить API
gcloud services enable compute.googleapis.com

# Список включенных API
gcloud services list --enabled

Рекомендации:

  • Используйте конфигурации для разных сред
  • Установите проект и регион по умолчанию
  • Используйте --format для скриптов
  • Используйте --filter для сужения результатов
  • Включите автодополнение команд
  • Поддерживайте gcloud SDK в актуальном состоянии

Распространенность: Очень часто
Сложность: Легко-Средне


Заключение

Подготовка к собеседованию junior GCP cloud engineer в первую очередь требует практического мышления. Сильный ответ объясняет сервис, называет компромисс и описывает простой шаг, который вы сделали бы в консоли или CLI.

Сосредоточьтесь на этих темах:

  1. Compute: когда использовать Compute Engine, GKE, Cloud Run или Cloud Run functions
  2. Storage: классы бакетов, правила жизненного цикла, retention и безопасный доступ
  3. Networking: VPC, подсети, маршруты, правила брандмауэра и основы балансировки нагрузки
  4. IAM: предопределенные роли, сервисные аккаунты, least privilege и отказ от долгоживущих ключей
  5. Operations: логи, метрики, квоты, настройка gcloud и базовый troubleshooting

Перед собеседованием создайте небольшой проект, разверните VM или function, загрузите файл в Cloud Storage, выдайте сервисному аккаунту узкую роль и потренируйтесь объяснять каждое решение вслух.

Newsletter subscription

Еженедельные советы по карьере, которые действительно работают

Получайте последние идеи прямо на вашу почту

Создайте резюме, которое поможет вам устроиться на 60% быстрее

За несколько минут создайте персонализированное резюме, совместимое с ATS, которое доказано увеличивает количество собеседований в 6 раз.

Создать лучшее резюме

Поделиться этим постом

Удвойте Количество Приглашений на Собеседование

Кандидаты, адаптирующие свои резюме под описание вакансии, получают в 2,5 раза больше собеседований. Используйте наш ИИ для автоматической настройки вашего резюме для каждой заявки мгновенно.