Sobes.tech
Back to questions
Middle
3

Как тестировали сервис? Как разворачивали в Kubernetes?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Для тестирования сервиса на Go обычно использую модульное тестирование с пакетом testing. Пишу тесты для ключевых функций, покрывая разные сценарии, включая граничные случаи и ошибки. Для интеграционного тестирования можно поднять тестовую среду с помощью Docker Compose или использовать мок-сервисы.

Для развёртывания в Kubernetes создаю манифесты Deployment и Service, описывающие контейнер с сервисом, количество реплик, настройки ресурсов и порты. Использую ConfigMap и Secret для конфигураций и секретов. Развёртывание выполняю через kubectl apply -f или с помощью Helm-чартов для более сложных конфигураций.

Пример простого Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-go-service
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-go-service
  template:
    metadata:
      labels:
        app: my-go-service
    spec:
      containers:
      - name: my-go-service
        image: myregistry/my-go-service:latest
        ports:
        - containerPort: 8080

Тесты в Go:

func TestCalculate(t *testing.T) {
    result := Calculate(2, 3)
    if result != 5 {
        t.Errorf("Expected 5, got %d", result)
    }
}