С какими облачными платформами и сервисами вы работали?

«С какими облачными платформами и сервисами вы работали?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

AWS (Amazon Web Services):

  • EC2: Развертывание виртуальных серверов.
  • S3: Хранение и раздача статических файлов.
  • Lambda: Запуск серверных функций (FaaS).
  • RDS: Управляемые реляционные базы данных (PostgreSQL, MySQL).

Пример загрузки файла в S3 с использованием AWS SDK для Java:

import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
import java.nio.file.Paths;

// Создание клиента (лучше через Dependency Injection в реальном приложении)
S3Client s3Client = S3Client.builder()
        .region(Region.EU_WEST_1)
        .build();

// Формирование запроса на загрузку
PutObjectRequest request = PutObjectRequest.builder()
        .bucket("my-example-bucket")
        .key("uploads/file.txt")
        .build();

// Выполнение запроса
s3Client.putObject(request, Paths.get("./local-file.txt"));

Google Cloud Platform (GCP):

  • App Engine: Платформа как услуга (PaaS) для веб-приложений.
  • Cloud Storage: Объектное хранилище, аналог S3.

Microsoft Azure:

  • Virtual Machines (VMs): Аналог EC2.
  • Blob Storage: Объектное хранилище.

Другие:

  • Firebase: Для мобильной и веб-разработки (Realtime Database, Authentication).
  • Heroku: Платформа для деплоя приложений (PaaS).