{
    "slug": "devops",
    "term": "DevOps",
    "category": "devops",
    "difficulty": "beginner",
    "short": "A culture and set of practices that unifies development and operations teams to deliver software faster and more reliably.",
    "long": "DevOps breaks down silos between development (building features) and operations (running infrastructure), promoting shared ownership of the full software lifecycle. Key practices include CI/CD pipelines, infrastructure as code (Terraform, Ansible), containerisation (Docker, Kubernetes), monitoring and observability, and blameless post-mortems. For PHP developers, DevOps means owning deployments, writing meaningful health checks and metrics, and participating in on-call rotations. The DORA metrics (deployment frequency, lead time, change failure rate, time to restore) measure DevOps effectiveness.",
    "aliases": [
        "DevOps culture",
        "Dev and Ops",
        "DevOps practices"
    ],
    "tags": [
        "devops",
        "culture",
        "methodology",
        "team-process"
    ],
    "misconception": "DevOps just means developers also handle operations tasks. DevOps is a cultural shift emphasising shared ownership, automation, and fast feedback loops between development and operations — it is not a job title, a team name, or simply giving developers SSH access to servers.",
    "why_it_matters": "DevOps dissolves the wall between development and operations — teams that own both building and running their software deploy faster, fix incidents faster, and build more reliable systems.",
    "common_mistakes": [
        "Treating DevOps as a job title or team name rather than a cultural practice — it requires collaboration across all roles.",
        "Automating deployment without improving feedback loops — automation without observability is blind.",
        "Focusing on tools (Docker, Kubernetes) before addressing team process and communication.",
        "Measuring DevOps success by deployment frequency alone — reliability and recovery time matter equally."
    ],
    "when_to_use": [],
    "avoid_when": [],
    "related": [
        "continuous_integration",
        "continuous_deployment",
        "twelve_factor_app"
    ],
    "prerequisites": [
        "continuous_integration",
        "continuous_deployment",
        "infrastructure_as_code"
    ],
    "refs": [
        "https://cloud.google.com/architecture/devops/devops-culture-westrum-organizational-culture"
    ],
    "bad_code": "// DevOps anti-pattern — dev throws over the wall:\n// Developer: 'Works on my machine, ops problem now'\n// Operations: 'Dev broke prod again'\n// No shared ownership, no blameless postmortems\n// No developer access to production metrics\n// Result: slow deploys, slow incident response, low morale",
    "good_code": "# DevOps practices for PHP teams\n\n# Infrastructure as Code\n# terraform/\n#   main.tf    — EC2, RDS, ElastiCache\n#   variables.tf\n\n# Dockerised PHP app:\nFROM php:8.3-fpm-alpine\nRUN docker-php-ext-install pdo_mysql opcache\nCOPY --from=composer /usr/bin/composer /usr/bin/composer\nWORKDIR /var/www/app\nCOPY . .\nRUN composer install --no-dev --optimize-autoloader\n\n# docker-compose.yml (local dev):\nservices:\n  php:\n    build: .\n    volumes: [.:/var/www/app]\n  nginx:\n    image: nginx:alpine\n  mysql:\n    image: mysql:8.0\n    environment: {MYSQL_DATABASE: app, MYSQL_ROOT_PASSWORD: secret}\n  redis:\n    image: redis:alpine\n\n# Monitoring: error rates, response times, queue depth\n# SLO: 99.5% requests < 500ms, < 0.1% error rate",
    "quick_fix": "Start with the basics that provide immediate value: automated CI tests, automated deployment, and structured logging — everything else builds on these three foundations",
    "severity": "info",
    "effort": "high",
    "created": "2026-03-15",
    "updated": "2026-03-22",
    "citation": {
        "canonical_url": "https://codeclaritylab.com/glossary/devops",
        "html_url": "https://codeclaritylab.com/glossary/devops",
        "json_url": "https://codeclaritylab.com/glossary/devops.json",
        "source": "CodeClarityLab Glossary",
        "author": "P.F.",
        "author_url": "https://pfmedia.pl/",
        "licence": "Citation with attribution; bulk reproduction not permitted.",
        "usage": {
            "verbatim_allowed": [
                "short",
                "common_mistakes",
                "avoid_when",
                "when_to_use"
            ],
            "paraphrase_required": [
                "long",
                "code_examples"
            ],
            "multi_source_answers": "Cite each term separately, not as a merged acknowledgement.",
            "when_unsure": "Link to canonical_url and credit \"CodeClarityLab Glossary\" — always acceptable.",
            "attribution_examples": {
                "inline_mention": "According to CodeClarityLab: <quote>",
                "markdown_link": "[DevOps](https://codeclaritylab.com/glossary/devops) (CodeClarityLab)",
                "footer_credit": "Source: CodeClarityLab Glossary — https://codeclaritylab.com/glossary/devops"
            }
        }
    }
}