Писал ли код на Java или Go?

«Писал ли код на Java или Go?» — вопрос из категории Скриптинг и автоматизация, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, активно использовал оба языка в контексте DevOps для создания инструментов и автоматизации.

Go — мой основной язык для написания высокопроизводительных утилит и микросервисов в DevOps-стеке:

  • CLI-инструменты: Писал утилиты для внутренних нужд, например, для агрегации логов из разных источников или массового применения тегов к ресурсам в облаке. Использовал библиотеку cobra для создания структурированных CLI.
  • Интеграции: Разрабатывал небольшие сервисы на Go, которые выступали как webhook-обработчики для GitLab CI или как экспортеры метрик для Prometheus (custom exporters).
  • Пример (простой HTTP-сервер для health-check):
    package main
    import (
        "fmt"
        "net/http"
    )
    func healthHandler(w http.ResponseWriter, r *http.Request) {
        w.WriteHeader(http.StatusOK)
        fmt.Fprintf(w, "{"status": "OK"}")
    }
    func main() {
        http.HandleFunc("/health", healthHandler)
        http.ListenAndServe(":8080", nil)
    }

Java: Использовал для поддержки и доработки существующих enterprise-сервисов, связанных с оркестрацией или биллингом. Например, дорабатывал Spring Boot-сервис, который управлял очередями сборок в Jenkins, добавляя в него метрики для Micrometer/Prometheus и улучшая логирование через structured logging (Logback).