Что такое Groovy и как он используется в DevOps?

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

Ответ

Groovy — это динамический язык программирования для JVM, полностью совместимый с Java-синтаксисом, но с более лаконичным и выразительным кодом. В DevOps он широко применяется для написания скриптов автоматизации и, что критически важно, для создания Jenkins Pipeline as Code.

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

  • Скриптовая природа: Не требует компиляции перед выполнением, идеален для скриптов развертывания и инфраструктуры.
  • Прямой доступ к Java-библиотекам: Может использовать любой Java-пакет, что открывает доступ ко всем инструментам экосистемы (например, AWS SDK, Docker Client, утилиты для работы с Kubernetes).
  • Поддержка DSL (Domain-Specific Language): Позволяет создавать читаемые конфигурации, как в Jenkins Declarative Pipeline.

Пример Jenkinsfile (Declarative Pipeline) на Groovy:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean compile'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
        stage('Deploy') {
            steps {
                sh './deploy-to-k8s.sh'
            }
        }
    }
}

Основные сценарии использования в DevOps:

  1. Jenkins Pipelines: Основной язык для скриптовых (Scripted) и декларативных (Declarative) пайплайнов.
  2. Скрипты для Gradle: Хотя Kotlin набирает популярность, Groovy остается основным языком для написания build.gradle скриптов.
  3. Автоматизация платформы: Создание утилит для управления инфраструктурой благодаря простому синтаксису и Java-совместимости.