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

Вопросы для собеседования на позицию младшего Cloud Engineer GCP: Полное руководство

interview
career-advice
job-search
entry-level
Вопросы для собеседования на позицию младшего Cloud Engineer GCP: Полное руководство
MB

Milad Bonakdar

Автор

Освойте основы GCP с помощью исчерпывающих вопросов для собеседования, охватывающих Compute Engine, Cloud Storage, VPC, IAM и основные концепции Google Cloud для позиций младшего Cloud Engineer.


Введение

Google Cloud Platform (GCP) — это комплексный набор сервисов облачных вычислений, предлагающий вычислительные ресурсы, хранилище, сети, большие данные и возможности машинного обучения. Как начинающему облачному инженеру, вам потребуются базовые знания об основных сервисах GCP для построения и управления облачной инфраструктурой.

В этом руководстве рассматриваются основные вопросы для собеседования с начинающими облачными инженерами GCP, с упором на Compute Engine, Cloud Storage, VPC и IAM.


GCP Compute Engine

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

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

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

  • Пользовательские или предопределенные типы машин
  • Постоянные диски и локальные SSD
  • Вытесняемые ВМ для экономии затрат
  • Живая миграция для обслуживания
  • Глобальная балансировка нагрузки

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

  • Веб-хостинг
  • Серверы приложений
  • Пакетная обработка
  • Высокопроизводительные вычисления
# Создать экземпляр ВМ
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 Functions и как развернуть функцию?

Ответ: Cloud Functions — это серверная среда выполнения для создания приложений, управляемых событиями.

Триггеры:

  • 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=python39 \
  --trigger-http \
  --allow-unauthenticated \
  --entry-point=hello_http \
  --region=us-central1

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

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

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

# Развернуть с определенной памятью и тайм-аутом
gcloud functions deploy my_function \
  --runtime=python39 \
  --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 в актуальном состоянии

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


Заключение

Подготовка к собеседованию на должность младшего облачного инженера GCP требует понимания основных сервисов и концепций облачных вычислений. Сосредоточьтесь на:

  1. Compute Engine: Экземпляры ВМ, типы машин, диски
  2. Cloud Storage: Классы хранения, бакеты, жизненный цикл
  3. VPC: Сети, подсети, правила брандмауэра
  4. IAM: Роли, разрешения, сервисные аккаунты
  5. Основные концепции: Регионы, зоны, проекты

Практикуйтесь в использовании консоли GCP и gcloud CLI, чтобы получить практический опыт. Удачи!

Newsletter subscription

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

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

Похожие посты

Decorative doodle

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

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

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

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

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

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