[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content:legacy:page:\u002Finterviews\u002Fdevops-cloud":3,"content:legacy:navigation":218,"content:legacy:surround:\u002Finterviews\u002Fdevops-cloud":546},{"id":4,"title":5,"body":6,"description":205,"extension":206,"icon":207,"meta":208,"modifiedAt":209,"navigation":210,"path":211,"publishedAt":212,"seo":213,"sitemap":214,"stem":215,"updatedAt":216,"__hash__":217},"interviews\u002Finterviews\u002Fdevops-cloud.md","DevOps and Cloud",{"type":7,"value":8,"toc":203},"minimark",[9,32,50,68,95,113,131,149,167,185],[10,11,12,23],"collapsible",{},[13,14,16],"template",{"v-slot:title":15},"",[17,18,19],"ol",{},[20,21,22],"li",{},"What is the difference between a container image and a running container?",[13,24,25,29],{"v-slot:content":15},[26,27,28],"p",{},"An image is an immutable, layered filesystem plus metadata describing how to start a process. A container is a runtime instance of that image with an isolated process view and a writable layer.",[26,30,31],{},"Persist important data outside the writable layer, run a focused foreground process, and treat containers as replaceable rather than repairing them manually.",[10,33,34,42],{},[13,35,36],{"v-slot:title":15},[17,37,39],{"start":38},2,[20,40,41],{},"How do you make a Docker image smaller and safer?",[13,43,44,47],{"v-slot:content":15},[26,45,46],{},"Use a minimal trusted base, multi-stage builds, a precise build context, deterministic dependencies, and only copy runtime artifacts into the final stage. Run as a non-root user and avoid embedding secrets.",[26,48,49],{},"Scan the resulting image, rebuild it when base fixes are released, and keep build tools out of production layers.",[10,51,52,60],{},[13,53,54],{"v-slot:title":15},[17,55,57],{"start":56},3,[20,58,59],{},"What should a reliable CI pipeline verify?",[13,61,62,65],{"v-slot:content":15},[26,63,64],{},"Start with fast deterministic checks: formatting, linting, types, unit tests, and security or dependency policies. Then build the exact deployable artifact and run focused integration or contract tests against it.",[26,66,67],{},"Cache safely, isolate flaky tests instead of normalizing them, publish test evidence, and avoid rebuilding different artifacts for later environments.",[10,69,70,78],{},[13,71,72],{"v-slot:title":15},[17,73,75],{"start":74},4,[20,76,77],{},"Compare rolling, blue-green, and canary deployments.",[13,79,80,92],{"v-slot:content":15},[81,82,83,86,89],"ul",{},[20,84,85],{},"Rolling gradually replaces instances and is resource-efficient, but old and new versions coexist.",[20,87,88],{},"Blue-green keeps two complete environments and switches traffic, enabling fast rollback at higher cost.",[20,90,91],{},"Canary exposes a small percentage of traffic first and expands based on health signals.",[26,93,94],{},"Database and message compatibility must support the overlap period for every strategy.",[10,96,97,105],{},[13,98,99],{"v-slot:title":15},[17,100,102],{"start":101},5,[20,103,104],{},"Why use infrastructure as code?",[13,106,107,110],{"v-slot:content":15},[26,108,109],{},"Infrastructure as code makes intended state reviewable, repeatable, testable, and recoverable. It reduces undocumented console changes and supports consistent environments.",[26,111,112],{},"Keep state and secrets protected, review plans, pin providers, separate blast-radius boundaries, and detect or reconcile drift rather than assuming the code is always reality.",[10,114,115,123],{},[13,116,117],{"v-slot:title":15},[17,118,120],{"start":119},6,[20,121,122],{},"What is the difference between Kubernetes readiness and liveness checks?",[13,124,125,128],{"v-slot:content":15},[26,126,127],{},"Readiness determines whether a pod should receive traffic. Liveness determines whether the process should be restarted. Startup checks give slow applications time to initialize before liveness begins.",[26,129,130],{},"A liveness check should not fail merely because a downstream dependency is unavailable, or an outage can trigger unnecessary restart loops.",[10,132,133,141],{},[13,134,135],{"v-slot:title":15},[17,136,138],{"start":137},7,[20,139,140],{},"Requests versus limits in container scheduling: why do they matter?",[13,142,143,146],{"v-slot:content":15},[26,144,145],{},"Requests inform placement and reserve expected resources. Limits cap resource usage according to runtime behavior: CPU is commonly throttled, while exceeding memory can terminate the container.",[26,147,148],{},"Set them from measured usage and service objectives. Very low limits create instability; no boundaries allow one workload to harm neighbors.",[10,150,151,159],{},[13,152,153],{"v-slot:title":15},[17,154,156],{"start":155},8,[20,157,158],{},"How should production secrets be managed?",[13,160,161,164],{"v-slot:content":15},[26,162,163],{},"Store secrets in a dedicated secret manager or protected platform facility, grant least-privilege access through workload identity, encrypt transport and storage, and rotate credentials.",[26,165,166],{},"Do not bake secrets into images, source control, logs, or client bundles. Audit access and plan for revocation after accidental exposure.",[10,168,169,177],{},[13,170,171],{"v-slot:title":15},[17,172,174],{"start":173},9,[20,175,176],{},"What makes an alert actionable?",[13,178,179,182],{"v-slot:content":15},[26,180,181],{},"An actionable alert indicates user impact or a credible imminent risk, includes the affected service and context, links to a runbook, and has a clear owner. Prefer symptoms tied to service objectives over noisy low-level events.",[26,183,184],{},"Track false positives and response outcomes; alert fatigue is a reliability problem because it hides real incidents.",[10,186,187,195],{},[13,188,189],{"v-slot:title":15},[17,190,192],{"start":191},10,[20,193,194],{},"What should happen during a blameless post-incident review?",[13,196,197,200],{"v-slot:content":15},[26,198,199],{},"Build a factual timeline, describe impact and detection, identify contributing technical and organizational conditions, explain what helped or slowed recovery, and assign prioritized follow-up work.",[26,201,202],{},"Blameless does not mean accountability-free. It focuses accountability on improving systems and decisions rather than punishing an individual for predictable human behavior.",{"title":15,"searchDepth":38,"depth":38,"links":204},[],"DevOps interview questions about containers, delivery pipelines, infrastructure, Kubernetes, and production operations.","md","logos:docker-icon",{},null,true,"\u002Finterviews\u002Fdevops-cloud","2026-09-21",{"title":5,"description":205},{"loc":211,"lastmod":212},"interviews\u002Fdevops-cloud","2026-09-21T22:49:35+07:00","sxZU3mCiAFAKUZJNFwr0oJiHoY6cOTFhC8sv4Q9Um0k",[219,370,478,493],{"title":220,"icon":221,"path":222,"stem":223,"children":224,"page":235},"Posts","fluent-color:data-bar-vertical-ascending-24","\u002Fposts","posts",[225,236,254,280,290,304,314,324,334,360],{"title":226,"icon":227,"redirect":228,"path":229,"stem":230,"children":231,"page":235},"Database","material-icon-theme:database","\u002Fposts\u002Fdatabase\u002Freplication-strategy","\u002Fposts\u002Fdatabase","posts\u002Fdatabase",[232],{"title":233,"path":228,"stem":234,"icon":209},"Database Replication strategy in large systems","posts\u002Fdatabase\u002Freplication-strategy",false,{"title":237,"icon":238,"redirect":239,"path":240,"stem":241,"children":242,"page":235},"Docker","vscode-icons:file-type-docker2","\u002Fposts\u002Fdocker\u002Fdocker-commands","\u002Fposts\u002Fdocker","posts\u002Fdocker",[243,246,250],{"title":244,"path":239,"stem":245,"icon":209},"Docker commands essentials","posts\u002Fdocker\u002Fdocker-commands",{"title":247,"path":248,"stem":249,"icon":209},"Some useful Dockerfile templates","\u002Fposts\u002Fdocker\u002Fdockerfile-templates","posts\u002Fdocker\u002Fdockerfile-templates",{"title":251,"path":252,"stem":253,"icon":209},"Setup Docker environment on Windows","\u002Fposts\u002Fdocker\u002Fsetup-docker-on-window","posts\u002Fdocker\u002Fsetup-docker-on-window",{"title":255,"icon":256,"redirect":257,"path":258,"stem":259,"children":260,"page":235},"Git & GitHub","material-icon-theme:git","\u002Fposts\u002Fgit\u002Fbrightly-decorate-graph","\u002Fposts\u002Fgit","posts\u002Fgit",[261,264,268,272,276],{"title":262,"path":257,"stem":263,"icon":209},"Brightly decorate your GitHub Graph","posts\u002Fgit\u002Fbrightly-decorate-graph",{"title":265,"path":266,"stem":267,"icon":209},"Download a specific folder on GitHub repository","\u002Fposts\u002Fgit\u002Fdownload-specific-folder","posts\u002Fgit\u002Fdownload-specific-folder",{"title":269,"path":270,"stem":271,"icon":209},"Syncing Git Tags across to other repositories","\u002Fposts\u002Fgit\u002Fsyncing-tags-across-repositories","posts\u002Fgit\u002Fsyncing-tags-across-repositories",{"title":273,"path":274,"stem":275,"icon":209},"Unlocking GitHub Achievement badges","\u002Fposts\u002Fgit\u002Funlocking-achievement-badges","posts\u002Fgit\u002Funlocking-achievement-badges",{"title":277,"path":278,"stem":279,"icon":209},"Essential Git commands every developer should master","\u002Fposts\u002Fgit\u002Fuseful-commands-like-pro","posts\u002Fgit\u002Fuseful-commands-like-pro",{"title":281,"icon":282,"redirect":283,"path":284,"stem":285,"children":286,"page":235},"Golang","material-icon-theme:go","\u002Fposts\u002Fgolang\u002Foptimizing-performance-with-pgo","\u002Fposts\u002Fgolang","posts\u002Fgolang",[287],{"title":288,"path":283,"stem":289,"icon":209},"Optimizing Performance in Go Applications with PGO","posts\u002Fgolang\u002Foptimizing-performance-with-pgo",{"title":291,"icon":292,"redirect":293,"path":294,"stem":295,"children":296,"page":235},"JavaScript","vscode-icons:file-type-js","\u002Fposts\u002Fjavascript\u002F9-lines-of-tips","\u002Fposts\u002Fjavascript","posts\u002Fjavascript",[297,300],{"title":298,"path":293,"stem":299,"icon":209},"9 lines of JavaScript replace 50 lines of code","posts\u002Fjavascript\u002F9-lines-of-tips",{"title":301,"path":302,"stem":303,"icon":209},"Javascript Promises - Specific functions and use cases","\u002Fposts\u002Fjavascript\u002Fpromises-cheatsheet","posts\u002Fjavascript\u002Fpromises-cheatsheet",{"title":305,"icon":306,"redirect":307,"path":308,"stem":309,"children":310,"page":235},"Node","material-icon-theme:nodejs-alt","\u002Fposts\u002Fnodejs\u002Fevent-loop","\u002Fposts\u002Fnodejs","posts\u002Fnodejs",[311],{"title":312,"path":307,"stem":313,"icon":209},"Secret about Event Loop flow in Nodejs","posts\u002Fnodejs\u002Fevent-loop",{"title":315,"icon":316,"redirect":317,"path":318,"stem":319,"children":320,"page":235},"Nuxt","vscode-icons:file-type-nuxt","\u002Fposts\u002Fnuxt\u002Fenable-pwa-in-nuxt","\u002Fposts\u002Fnuxt","posts\u002Fnuxt",[321],{"title":322,"path":317,"stem":323,"icon":209},"Enable PWA and Service Worker in Nuxt","posts\u002Fnuxt\u002Fenable-pwa-in-nuxt",{"title":325,"icon":326,"redirect":327,"path":328,"stem":329,"children":330,"page":235},"Performance","emojione:rocket","\u002Fposts\u002Fperformance\u002Fbackground-image-injection-problem","\u002Fposts\u002Fperformance","posts\u002Fperformance",[331],{"title":332,"path":327,"stem":333,"icon":209},"Background-Image injection problem in UX","posts\u002Fperformance\u002Fbackground-image-injection-problem",{"title":335,"icon":336,"redirect":337,"path":338,"stem":339,"children":340,"page":235},"Tutorial","fluent-color:book-open-lightbulb-24","\u002Fposts\u002Ftutorial\u002Fclassification-and-functionality-of-the-servers","\u002Fposts\u002Ftutorial","posts\u002Ftutorial",[341,344,348,352,356],{"title":342,"path":337,"stem":343,"icon":209},"Classification and functionality of the servers","posts\u002Ftutorial\u002Fclassification-and-functionality-of-the-servers",{"title":345,"path":346,"stem":347,"icon":209},"What is the difference between localhost and 127.0.0.1?","\u002Fposts\u002Ftutorial\u002Fdifferent-between-localhost-and-127-0-0-1","posts\u002Ftutorial\u002Fdifferent-between-localhost-and-127-0-0-1",{"title":349,"path":350,"stem":351,"icon":209},"8 essential network protocols every programmer should know","\u002Fposts\u002Ftutorial\u002Fessential-network-protocols","posts\u002Ftutorial\u002Fessential-network-protocols",{"title":353,"path":354,"stem":355,"icon":209},"Pre rels in header link tag - SEO technique enhancement","\u002Fposts\u002Ftutorial\u002Fpre-rels-in-header-link-tag","posts\u002Ftutorial\u002Fpre-rels-in-header-link-tag",{"title":357,"path":358,"stem":359,"icon":209},"Better code with SOLID principles","\u002Fposts\u002Ftutorial\u002Fwhat-is-solid","posts\u002Ftutorial\u002Fwhat-is-solid",{"title":361,"icon":362,"redirect":363,"path":364,"stem":365,"children":366,"page":235},"UI\u002FUX","devicon:figma","\u002Fposts\u002Fuiux\u002Fcommon-button-mistake","\u002Fposts\u002Fuiux","posts\u002Fuiux",[367],{"title":368,"path":363,"stem":369,"icon":209},"Common Button Mistake in UI\u002FUX","posts\u002Fuiux\u002Fcommon-button-mistake",{"title":371,"icon":372,"path":373,"stem":374,"children":375,"page":235},"Cheatsheets","fluent-color:paw-16","\u002Fcheatsheets","cheatsheets",[376,381,386,389,394,397,402,406,411,416,421,426,431,436,440,444,449,454,458,463,468,473],{"title":377,"path":378,"stem":379,"icon":380},"Bash","\u002Fcheatsheets\u002Fbash","cheatsheets\u002Fbash","material-icon-theme:powershell",{"title":382,"path":383,"stem":384,"icon":385},"CSS","\u002Fcheatsheets\u002Fcss","cheatsheets\u002Fcss","vscode-icons:file-type-css2",{"title":237,"path":387,"stem":388,"icon":238},"\u002Fcheatsheets\u002Fdocker","cheatsheets\u002Fdocker",{"title":390,"path":391,"stem":392,"icon":393},"Git","\u002Fcheatsheets\u002Fgit","cheatsheets\u002Fgit","devicon:git",{"title":281,"path":395,"stem":396,"icon":282},"\u002Fcheatsheets\u002Fgo","cheatsheets\u002Fgo",{"title":398,"path":399,"stem":400,"icon":401},"HTML","\u002Fcheatsheets\u002Fhtml","cheatsheets\u002Fhtml","material-icon-theme:html",{"title":291,"path":403,"stem":404,"icon":405},"\u002Fcheatsheets\u002Fjavascript","cheatsheets\u002Fjavascript","material-icon-theme:javascript",{"title":407,"path":408,"stem":409,"icon":410},"Latex","\u002Fcheatsheets\u002Flatex","cheatsheets\u002Flatex","material-icon-theme:latexmk",{"title":412,"path":413,"stem":414,"icon":415},"Linux","\u002Fcheatsheets\u002Flinux","cheatsheets\u002Flinux","devicon:linux",{"title":417,"path":418,"stem":419,"icon":420},"Markdown","\u002Fcheatsheets\u002Fmarkdown","cheatsheets\u002Fmarkdown","material-icon-theme:markdown",{"title":422,"path":423,"stem":424,"icon":425},"Mongo","\u002Fcheatsheets\u002Fmongo","cheatsheets\u002Fmongo","devicon:mongodb",{"title":427,"path":428,"stem":429,"icon":430},"Nest","\u002Fcheatsheets\u002Fnest","cheatsheets\u002Fnest","material-icon-theme:nest",{"title":432,"path":433,"stem":434,"icon":435},"Next","\u002Fcheatsheets\u002Fnext","cheatsheets\u002Fnext","logos:nextjs-icon",{"title":305,"path":437,"stem":438,"icon":439},"\u002Fcheatsheets\u002Fnode","cheatsheets\u002Fnode","material-icon-theme:nodejs",{"title":315,"path":441,"stem":442,"icon":443},"\u002Fcheatsheets\u002Fnuxt","cheatsheets\u002Fnuxt","material-icon-theme:nuxt",{"title":445,"path":446,"stem":447,"icon":448},"React","\u002Fcheatsheets\u002Freact","cheatsheets\u002Freact","material-icon-theme:react",{"title":450,"path":451,"stem":452,"icon":453},"Redis","\u002Fcheatsheets\u002Fredis","cheatsheets\u002Fredis","vscode-icons:folder-type-redis-opened",{"title":455,"path":456,"stem":457,"icon":227},"SQL","\u002Fcheatsheets\u002Fsql","cheatsheets\u002Fsql",{"title":459,"path":460,"stem":461,"icon":462},"Typescript","\u002Fcheatsheets\u002Ftypescript","cheatsheets\u002Ftypescript","material-icon-theme:typescript",{"title":464,"path":465,"stem":466,"icon":467},"Vercel","\u002Fcheatsheets\u002Fvercel","cheatsheets\u002Fvercel","vscode-icons:file-type-light-vercel",{"title":469,"path":470,"stem":471,"icon":472},"Vue","\u002Fcheatsheets\u002Fvue","cheatsheets\u002Fvue","material-icon-theme:vue",{"title":474,"path":475,"stem":476,"icon":477},"Windows","\u002Fcheatsheets\u002Fwindow","cheatsheets\u002Fwindow","material-icon-theme:folder-windows",{"title":479,"icon":480,"path":481,"stem":482,"children":483,"page":235},"Prompts","fluent-color:bot-sparkle-24","\u002Fprompts","prompts",[484],{"title":485,"path":486,"stem":487,"children":488,"page":235},"Image Generation","\u002Fprompts\u002Fimage-generation","prompts\u002Fimage-generation",[489],{"title":490,"path":491,"stem":492,"icon":480},"Futuristic Cloud Workspace","\u002Fprompts\u002Fimage-generation\u002Ffuturistic-cloud-workspace","prompts\u002Fimage-generation\u002Ffuturistic-cloud-workspace",{"title":494,"icon":495,"path":496,"stem":497,"children":498,"page":235},"Interviews","lucide:messages-square","\u002Finterviews","interviews",[499,503,504,507,511,516,521,526,531,536,541],{"title":500,"path":501,"stem":502,"icon":495},"Behavioral Engineering","\u002Finterviews\u002Fbehavioral-engineering","interviews\u002Fbehavioral-engineering",{"title":5,"path":211,"stem":215,"icon":207},{"title":398,"path":505,"stem":506,"icon":401},"\u002Finterviews\u002Fhtml","interviews\u002Fhtml",{"title":291,"path":508,"stem":509,"icon":510},"\u002Finterviews\u002Fjavascript","interviews\u002Fjavascript","logos:javascript",{"title":512,"path":513,"stem":514,"icon":515},"Node.js and API Design","\u002Finterviews\u002Fnodejs-api","interviews\u002Fnodejs-api","logos:nodejs-icon",{"title":517,"path":518,"stem":519,"icon":520},"Software Testing","\u002Finterviews\u002Fsoftware-testing","interviews\u002Fsoftware-testing","lucide:flask-conical",{"title":522,"path":523,"stem":524,"icon":525},"SQL and Databases","\u002Finterviews\u002Fsql-databases","interviews\u002Fsql-databases","lucide:database",{"title":527,"path":528,"stem":529,"icon":530},"System Design","\u002Finterviews\u002Fsystem-design","interviews\u002Fsystem-design","lucide:network",{"title":532,"path":533,"stem":534,"icon":535},"TypeScript","\u002Finterviews\u002Ftypescript","interviews\u002Ftypescript","logos:typescript-icon",{"title":537,"path":538,"stem":539,"icon":540},"Vue and Nuxt","\u002Finterviews\u002Fvue-nuxt","interviews\u002Fvue-nuxt","logos:nuxt-icon",{"title":542,"path":543,"stem":544,"icon":545},"Web Security","\u002Finterviews\u002Fweb-security","interviews\u002Fweb-security","lucide:shield-check",[547,548],{"title":500,"path":501,"stem":502,"children":-1},{"title":398,"path":505,"stem":506,"children":-1}]