[{"data":1,"prerenderedAt":578},["ShallowReactive",2],{"navigation":3,"\u002Fen\u002Fblog\u002Fmissing-devops-roles-smb":306,"\u002Fen\u002Fblog\u002Fmissing-devops-roles-smb-surround":573},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,219,231,262,299],{"title":5,"path":6,"stem":7},"Build and Deploy a Modern Website in 5 Minutes","\u002Fen\u002Fblog\u002Fbuild-with-loveable","en\u002F3.blog\u002F1.build-with-loveable",{"title":9,"path":10,"stem":11},"The Vercel Alternative for the German Mittelstand: Sovereign Hosting on Hetzner with lowcloud","\u002Fen\u002Fblog\u002Fdigital-sovereignty-lowcloud-vs-vercel-b2b","en\u002F3.blog\u002F10.digital-sovereignty-lowcloud-vs-vercel-b2b",{"title":13,"path":14,"stem":15},"Cloud Sovereignty Framework: How the EU Is Finally Making Cloud Sovereignty Measurable","\u002Fen\u002Fblog\u002Fcloud-sovereignty-framework","en\u002F3.blog\u002F12.cloud-sovereignty-framework",{"title":17,"path":18,"stem":19},"Avoiding Cloud Vendor Lock-in: What Real Sovereignty Means Technically","\u002Fen\u002Fblog\u002Fcloud-vendor-lock-in","en\u002F3.blog\u002F13.cloud-vendor-lock-in",{"title":21,"path":22,"stem":23},"Digital Sovereignty with Kubernetes: When Is Open Source Truly Sovereign?","\u002Fen\u002Fblog\u002Fkubernetes-digital-sovereignty","en\u002F3.blog\u002F14.kubernetes-digital-sovereignty",{"title":25,"path":26,"stem":27},"What Is DevOps as a Service and When Does It Actually Make Sense?","\u002Fen\u002Fblog\u002Fdevops-as-a-service","en\u002F3.blog\u002F15.devops-as-a-service",{"title":29,"path":30,"stem":31},"Cloud Sovereignty Governance: Why This Topic Belongs in the Boardroom, Not the Server Room","\u002Fen\u002Fblog\u002Fcloud-sovereignty-governance","en\u002F3.blog\u002F16.cloud-sovereignty-governance",{"title":33,"path":34,"stem":35},"PaaS vs. DaaS: What","\u002Fen\u002Fblog\u002Fpaas-vs-daas","en\u002F3.blog\u002F17.paas-vs-daas",{"title":37,"path":38,"stem":39},"Sovereign Cloud: Can SaaS Really Maintain Control Over Your Data?","\u002Fen\u002Fblog\u002Fsovereign-cloud-saas-data-control","en\u002F3.blog\u002F18.sovereign-cloud-saas-data-control",{"title":41,"path":42,"stem":43},"DevOps vs. DevOps as a Service – Which One Fits Your Team?","\u002Fen\u002Fblog\u002Fdevops-vs-devops-as-a-service","en\u002F3.blog\u002F19.devops-vs-devops-as-a-service",{"title":45,"path":46,"stem":47},"Docker Fundamentals -  Understanding Container Virtualization","\u002Fen\u002Fblog\u002Fhow-docker-works","en\u002F3.blog\u002F2.how-docker-works",{"title":49,"path":50,"stem":51},"The 7 Biggest DevOps Problems in SMBs – And How to Fix Them","\u002Fen\u002Fblog\u002Fdevops-problems-smb","en\u002F3.blog\u002F20.devops-problems-smb",{"title":53,"path":54,"stem":55},"PostgreSQL Helm Chart: How to Deploy Postgres on Kubernetes","\u002Fen\u002Fblog\u002Fpostgresql-helm-chart-kubernetes","en\u002F3.blog\u002F21.postgresql-helm-chart-kubernetes",{"title":57,"path":58,"stem":59},"Platform Engineering vs. DevOps – What","\u002Fen\u002Fblog\u002Fplatform-engineering-vs-devops","en\u002F3.blog\u002F22.platform-engineering-vs-devops",{"title":61,"path":62,"stem":63},"Cloud Act vs. GDPR: The Risk for EU Businesses","\u002Fen\u002Fblog\u002Fcloud-act-vs-gdpr","en\u002F3.blog\u002F23.cloud-act-vs-gdpr",{"title":65,"path":66,"stem":67},"Cut IT Costs with Automation: The Biggest Lever","\u002Fen\u002Fblog\u002Freduce-it-costs-automation","en\u002F3.blog\u002F24.reduce-it-costs-automation",{"title":69,"path":70,"stem":71},"NIS2 Compliance for DevOps Teams: What You Need to Do","\u002Fen\u002Fblog\u002Fnis2-compliance-devops","en\u002F3.blog\u002F25.nis2-compliance-devops",{"title":73,"path":74,"stem":75},"Self-Hosted EU Alternatives: Host LibreOffice & More","\u002Fen\u002Fblog\u002Fself-hosted-eu-alternatives","en\u002F3.blog\u002F26.self-hosted-eu-alternatives",{"title":77,"path":78,"stem":79},"DORA Compliance for DevOps: What the EU Resilience Act Means","\u002Fen\u002Fblog\u002Fdora-compliance-devops","en\u002F3.blog\u002F27.dora-compliance-devops",{"title":81,"path":82,"stem":83},"Cloud TCO: Hidden Costs AWS, Azure & GCP Don't Show You","\u002Fen\u002Fblog\u002Fcloud-tco-hidden-costs","en\u002F3.blog\u002F28.cloud-tco-hidden-costs",{"title":85,"path":86,"stem":87},"Data Residency vs. Data Sovereignty: What Really Matters","\u002Fen\u002Fblog\u002Fdata-residency-vs-data-sovereignty","en\u002F3.blog\u002F29.data-residency-vs-data-sovereignty",{"title":89,"path":90,"stem":91},"Self-Host n8n on Hetzner: Complete Docker Setup Guide","\u002Fen\u002Fblog\u002Fself-hosted-n8n-on-hetzner","en\u002F3.blog\u002F3.self-hosted-n8n-on-hetzner",{"title":93,"path":94,"stem":95},"Manual Deployments: An Underestimated Risk for SMBs","\u002Fen\u002Fblog\u002Fmanual-deployment-risks","en\u002F3.blog\u002F30.manual-deployment-risks",{"title":97,"path":98,"stem":99},"DevOps Tool Sprawl: How It Happens and How to Stop It","\u002Fen\u002Fblog\u002Fdevops-tool-sprawl","en\u002F3.blog\u002F31.devops-tool-sprawl",{"title":101,"path":102,"stem":103},"Kubernetes Monitoring: Using Logs and Metrics Effectively","\u002Fen\u002Fblog\u002Fkubernetes-monitoring-logs-metrics","en\u002F3.blog\u002F32.kubernetes-monitoring-logs-metrics",{"title":105,"path":106,"stem":107},"OB7 Case Study: Website Deployment Without Infrastructure Overhead","\u002Fen\u002Fblog\u002Fob7-case-study-lowcloud-deployment","en\u002F3.blog\u002F33.ob7-case-study-lowcloud-deployment",{"title":109,"path":110,"stem":111},"DevOps in SMBs: Why Missing Roles Become a Real Risk","\u002Fen\u002Fblog\u002Fmissing-devops-roles-smb","en\u002F3.blog\u002F34.missing-devops-roles-smb",{"title":113,"path":114,"stem":115},"Simplify Kubernetes Configuration: The Path to Human-Readable Cloud","\u002Fen\u002Fblog\u002Fsimplify-kubernetes-configuration","en\u002F3.blog\u002F35.simplify-kubernetes-configuration",{"title":117,"path":118,"stem":119},"Collaborative DevOps: How Modern Teams Build Cloud Apps Together","\u002Fen\u002Fblog\u002Fcollaborative-devops-teams","en\u002F3.blog\u002F36.collaborative-devops-teams",{"title":121,"path":122,"stem":123},"Knowledge Documentation in DevOps Teams: How to Actually Reduce Your Bus Factor","\u002Fen\u002Fblog\u002Fdevops-knowledge-documentation-bus-factor","en\u002F3.blog\u002F37.devops-knowledge-documentation-bus-factor",{"title":125,"path":126,"stem":127},"What Is PaaS? Platform as a Service Explained","\u002Fen\u002Fblog\u002Fwhat-is-paas","en\u002F3.blog\u002F38.what-is-paas",{"title":129,"path":130,"stem":131},"EU AI Act Hosting: What Changes for AI Workload Operators","\u002Fen\u002Fblog\u002Feu-ai-act-hosting","en\u002F3.blog\u002F39.eu-ai-act-hosting",{"title":133,"path":134,"stem":135},"Docker Compose Tutorial: Managing Multi-Container Apps Made Easy","\u002Fen\u002Fblog\u002Fdocker-compose-for-beginners","en\u002F3.blog\u002F4.docker-compose-for-beginners",{"title":137,"path":138,"stem":139},"Full-Stack Developer Reality: What the Title Actually Means","\u002Fen\u002Fblog\u002Ffull-stack-developer-reality","en\u002F3.blog\u002F40.full-stack-developer-reality",{"title":141,"path":142,"stem":143},"Cloud Egress Fees Compared: AWS vs. Azure vs. GCP Pricing","\u002Fen\u002Fblog\u002Fcloud-egress-fees","en\u002F3.blog\u002F41.cloud-egress-fees",{"title":145,"path":146,"stem":147},"Bring Your Own Cloud: What the Model Means and Why It","\u002Fen\u002Fblog\u002Fbring-your-own-cloud","en\u002F3.blog\u002F42.bring-your-own-cloud",{"title":149,"path":150,"stem":151},"Zero-Config Kubernetes: Why Simplicity Wins","\u002Fen\u002Fblog\u002Fzero-config-kubernetes","en\u002F3.blog\u002F43.zero-config-kubernetes",{"title":153,"path":154,"stem":155},"Minimalist Cloud Architecture: Why Less Complexity Means More Stability","\u002Fen\u002Fblog\u002Fminimalist-cloud-architecture","en\u002F3.blog\u002F44.minimalist-cloud-architecture",{"title":157,"path":158,"stem":159},"Software Deployment for SMBs: How Small Teams Ship Faster","\u002Fen\u002Fblog\u002Fsmb-software-deployment","en\u002F3.blog\u002F45.smb-software-deployment",{"title":161,"path":162,"stem":163},"EU Data Act: What Businesses and DevOps Teams Need to Know","\u002Fen\u002Fblog\u002Feu-data-act-business-devops","en\u002F3.blog\u002F46.eu-data-act-business-devops",{"title":165,"path":166,"stem":167},"Data Governance Act: What SMBs and DevOps Teams Need to Know","\u002Fen\u002Fblog\u002Fdata-governance-act-devops-guide","en\u002F3.blog\u002F47.data-governance-act-devops-guide",{"title":169,"path":170,"stem":171},"Cloud Agnostic Architecture: Meaning and Trade-offs","\u002Fen\u002Fblog\u002Fcloud-agnostic-architecture","en\u002F3.blog\u002F48.cloud-agnostic-architecture",{"title":173,"path":174,"stem":175},"Kubernetes Migration: What You Need to Know Before You Start","\u002Fen\u002Fblog\u002Fkubernetes-migration-guide","en\u002F3.blog\u002F49.kubernetes-migration-guide",{"title":177,"path":178,"stem":179},"Self-Host Docmost with Docker Compose and Traefik: Complete Guide","\u002Fen\u002Fblog\u002Fself-host-docmost-with-docker-and-traefik","en\u002F3.blog\u002F5.self-host-docmost-with-docker-and-traefik",{"title":181,"path":182,"stem":183},"AI Agent Infrastructure: What You Really Need for Production","\u002Fen\u002Fblog\u002Fai-agent-infrastructure","en\u002F3.blog\u002F50.ai-agent-infrastructure",{"title":185,"path":186,"stem":187},"What Is Kubernetes? A Practical Guide to Container Orchestration","\u002Fen\u002Fblog\u002Fwhat-is-kubernetes","en\u002F3.blog\u002F6.what-is-kubernetes",{"title":189,"path":190,"stem":191},"The Cloud Illusion: Why a Server Location in Germany Doesn’t Guarantee Digital Sovereignty","\u002Fen\u002Fblog\u002Fcloud-illusion-digital-sovereignty","en\u002F3.blog\u002F7.cloud-illusion-digital-sovereignty",{"title":193,"path":194,"stem":195},"S3-Compatible Object Storage: The Best Solutions at a Glance","\u002Fen\u002Fblog\u002Fs3-compatible-object-storage","en\u002F3.blog\u002F8.s3-compatible-object-storage",{"title":197,"path":198,"stem":199},"Deployment as a Bottleneck: When AI Codes Faster Than You Can Deploy","\u002Fen\u002Fblog\u002Fdeployment-bottleneck","en\u002F3.blog\u002F9.deployment-bottleneck",{"title":201,"path":202,"stem":203,"children":204,"icon":218},"Getting Started","\u002Fen\u002Fdocs\u002Fgetting-started","en\u002F1.docs\u002F1.getting-started\u002F1.index",[205,208,213],{"title":206,"path":202,"stem":203,"icon":207},"Introduction","i-lucide-house",{"title":209,"path":210,"stem":211,"icon":212},"Get Started","\u002Fen\u002Fdocs\u002Fgetting-started\u002Fget-started","en\u002F1.docs\u002F1.getting-started\u002F2.get-started","i-lucide-rocket",{"title":214,"path":215,"stem":216,"icon":217},"How It Works","\u002Fen\u002Fdocs\u002Fgetting-started\u002Fhow-it-works","en\u002F1.docs\u002F1.getting-started\u002F3.how-it-works","i-lucide-lightbulb",false,{"title":220,"path":221,"stem":222,"children":223,"icon":218},"Guides","\u002Fen\u002Fdocs\u002Fguides","en\u002F1.docs\u002F2.guides\u002F1.index",[224,226],{"title":220,"path":221,"stem":222,"icon":225},"i-lucide-book-open",{"title":227,"path":228,"stem":229,"icon":230},"Connect a Container Registry","\u002Fen\u002Fdocs\u002Fguides\u002Fcontainer-registries","en\u002F1.docs\u002F2.guides\u002F2.container-registries","i-lucide-container",{"title":232,"path":233,"stem":234,"children":235,"icon":218},"App Services","\u002Fen\u002Fdocs\u002Fapp-services","en\u002F1.docs\u002F3.app-services\u002F1.index",[236,237,242,247,252,257],{"title":232,"path":233,"stem":234,"icon":212},{"title":238,"path":239,"stem":240,"icon":241},"Build Settings","\u002Fen\u002Fdocs\u002Fapp-services\u002Fbuild-settings","en\u002F1.docs\u002F3.app-services\u002F2.build-settings","i-lucide-settings",{"title":243,"path":244,"stem":245,"icon":246},"Env Variables","\u002Fen\u002Fdocs\u002Fapp-services\u002Fenvironment-variables","en\u002F1.docs\u002F3.app-services\u002F3.environment-variables","i-lucide-key",{"title":248,"path":249,"stem":250,"icon":251},"Custom Domains","\u002Fen\u002Fdocs\u002Fapp-services\u002Fcustom-domains","en\u002F1.docs\u002F3.app-services\u002F4.custom-domains","i-lucide-globe",{"title":253,"path":254,"stem":255,"icon":256},"Health Checks","\u002Fen\u002Fdocs\u002Fapp-services\u002Fhealth-checks","en\u002F1.docs\u002F3.app-services\u002F5.health-checks","i-lucide-heart-pulse",{"title":258,"path":259,"stem":260,"icon":261},"Autoscaling","\u002Fen\u002Fdocs\u002Fapp-services\u002Fautoscaling","en\u002F1.docs\u002F3.app-services\u002F6.autoscaling","i-lucide-scaling",{"title":263,"path":264,"stem":265,"children":266,"icon":218},"Helm Releases","\u002Fen\u002Fdocs\u002Fhelm-releases","en\u002F1.docs\u002F4.helm-releases\u002F1.index",[267,269,274,279,284,289,294],{"title":263,"path":264,"stem":265,"icon":268},"i-lucide-package",{"title":270,"path":271,"stem":272,"icon":273},"Deploy PostgreSQL","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-postgresql","en\u002F1.docs\u002F4.helm-releases\u002F2.deploy-postgresql","i-lucide-database",{"title":275,"path":276,"stem":277,"icon":278},"Deploy Redis","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-redis","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-redis","i-lucide-zap",{"title":280,"path":281,"stem":282,"icon":283},"Deploy n8n","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-n8n","en\u002F1.docs\u002F4.helm-releases\u002F4.deploy-n8n","i-lucide-workflow",{"title":285,"path":286,"stem":287,"icon":288},"Deploy RustFS","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-rustfs","en\u002F1.docs\u002F4.helm-releases\u002F5.deploy-rustfs","i-lucide-hard-drive",{"title":290,"path":291,"stem":292,"icon":293},"Deploy OpenSearch","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-opensearch","en\u002F1.docs\u002F4.helm-releases\u002F6.deploy-opensearch","i-lucide-search",{"title":295,"path":296,"stem":297,"icon":298},"Deploy Keycloak","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-keycloak","en\u002F1.docs\u002F4.helm-releases\u002F7.deploy-keycloak","i-lucide-shield-check",{"title":300,"path":301,"stem":302,"children":303,"icon":218},"Glossary","\u002Fen\u002Fdocs\u002Fglossary","en\u002F1.docs\u002F5.glossary\u002F1.index",[304],{"title":300,"path":301,"stem":302,"icon":305},"i-lucide-book-a",{"id":307,"title":109,"authors":308,"badge":314,"body":315,"date":563,"description":564,"extension":565,"image":566,"lastUpdated":568,"meta":569,"navigation":570,"path":110,"published":570,"seo":571,"stem":111,"tags":314,"__hash__":572},"posts\u002Fen\u002F3.blog\u002F34.missing-devops-roles-smb.md",[309],{"name":310,"to":311,"avatar":312},"Thomas Ens","\u002Fabout\u002Fthomasens",{"src":313},"\u002Fimages\u002Fblog\u002Fauthors\u002Fthomas.jpeg",null,{"type":316,"value":317,"toc":549},"minimark",[318,322,331,338,343,346,349,352,355,359,362,365,368,373,385,388,404,407,410,414,417,420,434,441,444,448,451,454,481,484,488,491,494,500,504,507,513,519,527,531,534,537,540],[319,320,109],"h1",{"id":321},"devops-in-smbs-why-missing-roles-become-a-real-risk",[323,324,325,326,330],"p",{},"Most SMBs don't have a DevOps engineer. Instead, there's a developer who \"also handles\" the infrastructure — on top of their actual job, squeezed in between tickets and releases. It sounds pragmatic. In practice, it's one of the most common sources of technical debt, outages, and knowledge loss. For a deeper look at why the ",[327,328,329],"a",{"href":138},"full-stack developer title masks this structural overload",", see our dedicated analysis.",[323,332,333,334,337],{},"This article explores why this situation develops, what it actually costs, and which approaches genuinely help. It complements our broader look at the ",[327,335,336],{"href":50},"most common DevOps problems in SMBs",".",[339,340,342],"h2",{"id":341},"how-this-situation-develops","How This Situation Develops",[323,344,345],{},"The question of why SMBs don't have a dedicated DevOps role rarely has a dramatic answer. It usually just evolves that way.",[323,347,348],{},"In the beginning, there are two developers and a small server. One of them sets it up. It works. As the team grows, the same person keeps doing \"the infrastructure stuff\" because they already know it. Nobody seriously questions whether that scales.",[323,350,351],{},"On top of that: an experienced DevOps engineer is expensive. Not just in salary, but also in terms of expectations around processes, tools, and working conditions. Many SMBs assume they only need to address this problem once it's big enough to justify the cost. Until then, things are running somehow.",[323,353,354],{},"And that's exactly where the problem lies.",[339,356,358],{"id":357},"what-this-actually-means","What This Actually Means",[323,360,361],{},"When infrastructure is handled on the side, certain patterns reliably emerge — regardless of how competent the person is. It's rarely about individual skill, but about the conditions: someone who is simultaneously building features, handling support, and managing releases can only operate infrastructure reactively. Things get \"somehow\" working, but they're not built to be stable, traceable, and repeatable.",[323,363,364],{},"It usually starts with small frictions: deployments take longer than they should, access rights are unclear, warnings get ignored because there are too many. Over time, this turns into a system that heavily depends on habits and gut feelings. And the more services, environments, and customers come in, the faster this setup tips from \"working\" to \"constantly under tension.\"",[323,366,367],{},"The following points are typical consequences that appear in almost every SMB as soon as infrastructure doesn't have its own mandate, clear ownership, and dedicated time.",[369,370,372],"h3",{"id":371},"deployments-depend-on-one-person","Deployments Depend on One Person",[323,374,375,376,380,381,384],{},"When the one developer who knows the deployment gets sick, goes on vacation, or leaves the company, the team faces a problem. It's not just that nobody can deploy. In practice, the ability to quickly ",[377,378,379],"em",{},"diagnose"," and ",[377,382,383],{},"decide"," is also missing.",[323,386,387],{},"Typical symptoms include:",[389,390,391,395,398,401],"ul",{},[392,393,394],"li",{},"Nobody knows which environment variables are actually active or where they were set.",[392,396,397],{},"Cron jobs are running somewhere, undocumented and without ownership.",[392,399,400],{},"That one \"special port\" or custom ingress route exists because it was \"the fastest way\" at the time.",[392,402,403],{},"The CI\u002FCD pipeline is full of exceptions: a manual step here, a secret token there.",[323,405,406],{},"At the latest during an incident, this becomes a business risk: MTTR (Mean Time To Recovery) increases because the system needs to be understood before the problem can be fixed. And even if the outage \"only\" lasts a few hours — it costs focus, trust, and money.",[323,408,409],{},"A single point of failure in infrastructure isn't a theoretical risk. It's a matter of when, not if.",[369,411,413],{"id":412},"knowledge-nobody-wrote-down","Knowledge Nobody Wrote Down",[323,415,416],{},"Infrastructure run on the side rarely has good documentation. The person who built it carries the knowledge in their head. Why was this approach chosen? Where are the secrets actually stored? What happens when this pod crashes? Where is the backup process documented? And most importantly: how would you set up the entire system from scratch if you had to start from zero tomorrow?",[323,418,419],{},"What's often missing isn't just nice wikis, but very specific artifacts:",[389,421,422,425,428,431],{},[392,423,424],{},"Runbooks (\"If X happens, check Y, then do Z\")",[392,426,427],{},"Architecture overviews (networking, ingress, data flows, dependencies)",[392,429,430],{},"Access and role models (who can do what, where are the credentials)",[392,432,433],{},"Decision documents (\"Why did we choose this tool and not that one?\")",[323,435,436,437,440],{},"When that person leaves, the knowledge leaves with them. What remains are configurations without context and colleagues who have to carefully work their way forward to avoid breaking things. For a systematic approach to making this knowledge durable, see our guide on ",[327,438,439],{"href":122},"documentation strategies that reduce bus factor",". This often ends in a mix of fear of changes and a \"hands-off\" area that nobody wants to touch anymore.",[323,442,443],{},"This isn't a criticism of the person involved. It's the natural result of a role that was never given dedicated time.",[369,445,447],{"id":446},"infrastructure-that-somehow-works","Infrastructure That \"Somehow Works\"",[323,449,450],{},"The third effect is more subtle, but more expensive. When someone only manages infrastructure on the side, problems get solved but not sustainably fixed. The workaround that worked once stays. The script that should have been refactored stays. The monitoring that should be properly set up stays on the to-do list.",[323,452,453],{},"This leads to typical \"standstill costs\":",[389,455,456,463,469,475],{},[392,457,458,462],{},[459,460,461],"strong",{},"Security drift:"," Patches, Kubernetes versions, and container base images get updated too late.",[392,464,465,468],{},[459,466,467],{},"Lacking observability:"," No clear picture of latencies, error rates, or resource utilization. Alerts are either noisy or missing entirely.",[392,470,471,474],{},[459,472,473],{},"Poor capacity planning:"," Oversized nodes \"for safety\" or limits set too tight, causing sporadic OOM kills.",[392,476,477,480],{},[459,478,479],{},"Fragile deployments:"," Releases only work when \"everything is exactly as always\" because there are no clear standards and checks.",[323,482,483],{},"Technical debt in infrastructure is particularly dangerous because it stays invisible for a long time. It usually only surfaces when things are already on fire: during growth, the first real incident, an audit, or when onboarding new team members.",[339,485,487],{"id":486},"why-this-doesnt-get-better-as-infrastructure-grows","Why This Doesn't Get Better as Infrastructure Grows",[323,489,490],{},"You might assume the problem solves itself as the company grows. In practice, the opposite happens.",[323,492,493],{},"With more services, more deployments, and more complexity, the load on the one person who \"handles the infrastructure\" also grows. At the same time, the pressure to deliver quickly increases — meaning there's even less time for proper infrastructure work.",[323,495,496,499],{},[327,497,498],{"href":186},"Kubernetes"," doesn't make this easier. The platform is powerful, but it's no self-service for someone without experience. Cluster networking, resource limits, RBAC, storage classes, ingress configuration — these aren't topics you solve \"real quick.\" And when you do solve them \"real quick,\" you see the consequences later.",[339,501,503],{"id":502},"what-makes-devops-work-for-smbs","What Makes DevOps Work for SMBs",[323,505,506],{},"There's no simple solution that fits every SMB. But there are approaches that systematically help:",[323,508,509,512],{},[459,510,511],{},"Infrastructure as Code"," is the first step. When configurations live in Git, implicit knowledge is at least partially made explicit. Changes are traceable, rollbacks are possible.",[323,514,515,518],{},[459,516,517],{},"Standardized platforms"," reduce complexity. Instead of deciding from scratch how to set something up every time, there's a template that works. This lowers the barrier to entry and the error rate.",[323,520,521,526],{},[459,522,523],{},[327,524,525],{"href":26},"Managed services"," go a step further. Instead of running infrastructure yourself, you consume it as a service. This doesn't mean losing control — it means someone else is responsible for operations, updates, and incident response, while your team focuses on the application.",[339,528,530],{"id":529},"how-lowcloud-solves-this-problem","How lowcloud Solves This Problem",[323,532,533],{},"lowcloud is a Kubernetes DevOps-as-a-Service platform built exactly for this scenario. Not for enterprises with a platform engineering team, but for SMBs and startups that want to run Kubernetes workloads without building in-house infrastructure expertise.",[323,535,536],{},"The platform handles cluster management, updates, monitoring, and security hardening. Development teams deploy their applications through standardized workflows — without having to worry about the underlying Kubernetes. The operational knowledge no longer lives with a single person but within the platform.",[323,538,539],{},"This solves the core problem: the dependency on a single person who happens to know the infrastructure is replaced by a platform designed from the ground up for exactly this situation.",[323,541,542,543,337],{},"If you work at an SMB that's currently in this situation, or you're wondering how to run Kubernetes properly without a dedicated DevOps role — ",[327,544,548],{"href":545,"rel":546},"https:\u002F\u002Flowcloud.io\u002Fen",[547],"nofollow","take a look at what lowcloud offers",{"title":550,"searchDepth":551,"depth":551,"links":552},"",2,[553,554,560,561,562],{"id":341,"depth":551,"text":342},{"id":357,"depth":551,"text":358,"children":555},[556,558,559],{"id":371,"depth":557,"text":372},3,{"id":412,"depth":557,"text":413},{"id":446,"depth":557,"text":447},{"id":486,"depth":551,"text":487},{"id":502,"depth":551,"text":503},{"id":529,"depth":551,"text":530},"2026-03-21","SMBs without a dedicated DevOps role risk outages, knowledge loss, and technical debt. Learn why this happens and what actually helps.","md",{"src":567},"\u002Fimages\u002Fblog\u002Fmissing-devops-roles-smb.jpg","2026-03-26",{},true,{"title":109,"description":564},"2AkGzp5KSkODHJtYoYTp3TEkyTUB4eHOIL07i5YAu5s",[574,576],{"title":105,"path":106,"stem":107,"description":575,"children":-1},"How OB7 deploys their new website with lowcloud – no server configuration, SSL setup, or provider management. A case study on managed container deployments.",{"title":113,"path":114,"stem":115,"description":577,"children":-1},"YAML is the real problem, not Kubernetes. How Helm, Kustomize, CRDs, and Platform Engineering make cluster configuration readable and maintainable.",1775510462229]