{"id":7740,"date":"2025-11-12T12:59:17","date_gmt":"2025-11-12T07:29:17","guid":{"rendered":"https:\/\/www.testleaf.com\/blog\/?p=7740"},"modified":"2025-12-04T15:32:28","modified_gmt":"2025-12-04T10:02:28","slug":"top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience","status":"publish","type":"post","link":"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/","title":{"rendered":"Top 2026 DevOps Interview Questions and Expert Answers for 2\u20135 Years Experience"},"content":{"rendered":"<div style=\"margin-top: 0px; margin-bottom: 0px;\" class=\"sharethis-inline-share-buttons\" ><\/div><h2 data-start=\"415\" data-end=\"434\"><span class=\"ez-toc-section\" id=\"Introduction\"><\/span><strong data-start=\"418\" data-end=\"434\">Introduction<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#Introduction\" >Introduction<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#1_Linux_Fundamentals\" >1. Linux Fundamentals<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#2_Shell_Scripting\" >2. Shell Scripting<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#3_Git\" >3. Git<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#4_Jenkins\" >4. Jenkins<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#5_Docker\" >5. Docker<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#6_Kubernetes\" >6. Kubernetes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#7_Alert_Manager\" >7. Alert Manager<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#8_Prometheus\" >8. Prometheus<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#9_Grafana\" >9. Grafana<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#10_SonarQube\" >10. SonarQube<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#Conclusion\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/#FAQs\" >FAQs<\/a><\/li><\/ul><\/nav><\/div>\n\n<p data-start=\"435\" data-end=\"803\">Preparing for a <strong data-start=\"451\" data-end=\"479\">DevOps interview in 2026<\/strong>? The demand for DevOps engineers continues to skyrocket as companies adopt automation-first strategies, hybrid cloud infrastructure, and AI-assisted pipelines. Leading organizations like <a href=\"https:\/\/www.infosys.com\/\">Infosys<\/a>, <a href=\"https:\/\/www.tcs.com\/home-page\">TCS<\/a>, <a href=\"https:\/\/www.accenture.com\/in-en\">Accenture<\/a>, and AWS are seeking engineers who can manage CI\/CD, Kubernetes, and cloud monitoring with hands-on expertise.<\/p>\n<p data-start=\"805\" data-end=\"1090\">This guide covers <strong data-start=\"823\" data-end=\"880\">the <a href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/\">top DevOps interview questions and expert answers<\/a><\/strong> with real-world scenarios. Whether you\u2019re a QA transitioning to DevOps or an <a href=\"https:\/\/www.testleaf.com\/blog\/ai-ml-engineer-salary-in-india-2026-freshers-to-senior-level\/\">experienced engineer<\/a> preparing for a career leap, this article will help you <strong data-start=\"1035\" data-end=\"1090\">stand out and secure your dream DevOps job in 2026.<\/strong><\/p>\n<h2 id=\"1-linux\"><span class=\"ez-toc-section\" id=\"1_Linux_Fundamentals\"><\/span><strong>1. Linux Fundamentals<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-what-are-the-main-differences-between-linux-file-permissions-and-how-do-you-change-them\"><strong>Q1: What are the main differences between Linux file permissions and how do you change them?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Linux file permissions consist of three categories: owner (user), group, and others. Each has read (r=4), write (w=2), and execute (x=1) permissions. Use\u00a0<code>chmod<\/code>\u00a0to change permissions (e.g.,\u00a0<code>chmod 755 file.txt<\/code>\u00a0gives owner full permissions, others read+execute). Use\u00a0<code>chown<\/code>\u00a0to change ownership and\u00a0<code>chgrp<\/code>\u00a0to change group. Example:\u00a0<code>chmod u+x script.sh<\/code>\u00a0adds execute permission for the user.<\/p>\n<h3 id=\"q2-how-do-you-monitor-system-performance-and-identify-resource-bottlenecks-in-linux\"><strong>Q2: How do you monitor system performance and identify resource bottlenecks in Linux?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Use commands like\u00a0<code>top<\/code>\u00a0or\u00a0<code>htop<\/code>\u00a0for real-time CPU and memory usage,\u00a0<code>df -h<\/code>\u00a0for disk space,\u00a0<code>iostat<\/code>\u00a0for I\/O statistics, and\u00a0<code>vmstat<\/code>\u00a0for virtual memory stats. For real-time scenario: if a production server is slow, check\u00a0<code>top<\/code>\u00a0to see which process is consuming CPU, use\u00a0<code>lsof<\/code>\u00a0to check open files, and\u00a0<code>ss -tuln<\/code>\u00a0to check network connections. Load average in\u00a0<code>uptime<\/code>\u00a0shows system load.<\/p>\n<h3 id=\"q3-what-is-a-systemd-service-and-how-do-you-create-one\"><strong>Q3: What is a systemd service and how do you create one?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Systemd is the init system that manages services. Create a service file at\u00a0<code>\/etc\/systemd\/system\/myservice.service<\/code>\u00a0with sections for\u00a0<code>[Unit]<\/code>,\u00a0<code>[Service]<\/code>, and\u00a0<code>[Install]<\/code>. Example:<\/p>\n<pre><code>[Service]\r\nExecStart=\/path\/to\/application\r\nRestart=always\r\n<\/code><\/pre>\n<p>Then run\u00a0<code>systemctl daemon-reload<\/code>,\u00a0<code>systemctl enable myservice<\/code>, and\u00a0<code>systemctl start myservice<\/code>. This is used in real-time for managing microservices or applications on servers.<\/p>\n<h3 id=\"q4-how-do-you-manage-user-accounts-and-sudo-privileges-in-linux\"><strong>Q4: How do you manage user accounts and sudo privileges in Linux?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Create users with\u00a0<code>useradd -m -s \/bin\/bash username<\/code>, set passwords with\u00a0<code>passwd<\/code>. For sudo privileges, add users to the\u00a0<code>sudo<\/code>\u00a0group with\u00a0<code>usermod -aG sudo username<\/code>\u00a0or edit\u00a0<code>\/etc\/sudoers<\/code>\u00a0with\u00a0<code>visudo<\/code>. In production, you&#8217;d create service accounts with restricted privileges for running applications, and manage access control for security compliance.<\/p>\n<h3 id=\"q5-explain-the-linux-boot-process-and-how-systemd-differs-from-older-init-systems\"><strong>Q5: Explain the Linux boot process and how systemd differs from older init systems.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0The boot process: BIOS \u2192 bootloader (GRUB) \u2192 kernel \u2192 initramfs \u2192 systemd (PID 1). Systemd is faster than traditional init systems, uses parallel startup of services, provides dependency management, and includes journal logging. In real scenarios, systemd helps reduce server boot time and provides better service management for production deployments.<\/p>\n<p><strong>Continue Reading:<\/strong> <a href=\"https:\/\/www.testleaf.com\/blog\/selenium-interview-questions\/\">selenium interview questions<\/a><\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"2-shell-scripting\"><span class=\"ez-toc-section\" id=\"2_Shell_Scripting\"><\/span><strong>2. Shell Scripting<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-write-a-simple-shell-script-to-check-if-a-directory-exists-and-create-it-if-it-doesnt\"><strong>Q1: Write a simple shell script to check if a directory exists and create it if it doesn&#8217;t.<\/strong><\/h3>\n<p><strong>Ans:<\/strong><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\r\nDIR=\"\/path\/to\/directory\"\r\nif [ ! -d \"$DIR\" ]; then\r\n  mkdir -p \"$DIR\"\r\n  echo \"Directory created: $DIR\"\r\nelse\r\n  echo \"Directory already exists\"\r\nfi\r\n<\/code><\/pre>\n<p>This is commonly used in deployment scripts to ensure necessary directories exist before applications run.<\/p>\n<h3 id=\"q2-how-do-you-handle-errors-and-exit-codes-in-shell-scripts\"><strong>Q2: How do you <a href=\"https:\/\/www.testleaf.com\/blog\/selenium-exception-handling-guide-fix-the-5-most-common-errors\/\">handle errors<\/a> and exit codes in shell scripts?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Use\u00a0<code>set -e<\/code>\u00a0to exit on any error,\u00a0<code>set -o pipefail<\/code>\u00a0to catch errors in pipes. Check exit codes with\u00a0<code>$?<\/code>. Example:<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\r\nset -e\r\ncommand1\r\nif [ $? -ne 0 ]; then\r\n  echo \"Command failed\"\r\n  exit 1\r\nfi\r\n<\/code><\/pre>\n<p>Real scenario: In a CI\/CD pipeline, properly handling exit codes ensures that failed steps stop the pipeline immediately rather than continuing.<\/p>\n<h3 id=\"q3-write-a-script-that-processes-multiple-files-in-a-directory-with-a-loop\"><strong>Q3: Write a script that processes multiple files in a directory with a loop.<\/strong><\/h3>\n<p><strong>Ans:<\/strong><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\r\nfor file in \/path\/to\/files\/*; do\r\n  if [ -f \"$file\" ]; then\r\n    echo \"Processing: $file\"\r\n    grep \"pattern\" \"$file\" &gt; \"$file.backup\"\r\n  fi\r\ndone\r\n<\/code><\/pre>\n<p>Real use case: Log file rotation, processing backup files, or batch configuration updates.<\/p>\n<h3 id=\"q4-how-do-you-use-variables-arrays-and-string-manipulation-in-shell-scripts\"><strong>Q4: How do you use variables, arrays, and string manipulation in shell scripts?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Variables are defined with\u00a0<code>VAR=\"value\"<\/code>. Arrays use\u00a0<code>ARR=(\"one\" \"two\" \"three\")<\/code>\u00a0and accessed with\u00a0<code>${ARR[0]}<\/code>. String manipulation:\u00a0<code>${VAR:0:5}<\/code>\u00a0gets first 5 characters,\u00a0<code>${VAR\/old\/new}<\/code>\u00a0replaces text. Example:<\/p>\n<pre><code class=\"bash\">CONFIG_FILES=(\"app.conf\" \"db.conf\")\r\nfor config in \"${CONFIG_FILES[@]}\"; do\r\n  echo \"Loading: $config\"\r\ndone\r\n<\/code><\/pre>\n<p>Real scenario: Managing multiple configuration files in deployment scripts.<\/p>\n<p><a href=\"https:\/\/mcp-webinar.testleaf.com\/?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-7702 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Playwright-Masterclass.png\" alt=\"Playwright Masterclass\" width=\"2048\" height=\"512\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Playwright-Masterclass.png 2048w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Playwright-Masterclass-300x75.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Playwright-Masterclass-1024x256.png 1024w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Playwright-Masterclass-768x192.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Playwright-Masterclass-1536x384.png 1536w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Playwright-Masterclass-150x38.png 150w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><\/a><\/p>\n<h3 id=\"q5-write-a-script-that-monitors-a-process-and-restarts-it-if-its-down\"><strong>Q5: Write a script that monitors a process and restarts it if it&#8217;s down.<\/strong><\/h3>\n<p><strong>Ans:<\/strong><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\r\nPROCESS=\"nginx\"\r\nwhile true; do\r\n  if ! pgrep -x \"$PROCESS\" &gt; \/dev\/null; then\r\n    echo \"$PROCESS is down, restarting...\"\r\n    systemctl start $PROCESS\r\n    logger -t process_monitor \"$PROCESS was restarted\"\r\n  fi\r\n  sleep 60\r\ndone\r\n<\/code><\/pre>\n<p>Real scenario: Health check scripts in production to ensure critical services stay running, commonly used before modern orchestration like Kubernetes.<\/p>\n<p><strong>Further Reading:<\/strong> <a href=\"https:\/\/www.testleaf.com\/blog\/2025-top-automation-testing-infosys-interview-questions-with-expert-answers-from-testleaf-for-2-to-5-years-experience\/\">automation testing interview questions<\/a><\/p>\n<h2><\/h2>\n<h2 id=\"3-git\"><span class=\"ez-toc-section\" id=\"3_Git\"><\/span><strong>3. Git<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-explain-the-difference-between-git-merge-and-git-rebase-and-when-to-use-each\"><strong>Q1: Explain the difference between git merge and git rebase, and when to use each.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0<code>git merge<\/code>\u00a0creates a merge commit combining two branches, preserving history.\u00a0<code>git rebase<\/code>\u00a0replays commits from one branch onto another, creating a linear history. Use merge for shared branches (main\/develop) to preserve history. Use rebase for feature branches to keep history clean. Example: on feature branch,\u00a0<code>git rebase main<\/code>\u00a0before merging prevents merge commits. In production: teams often use merge for main branch for audit trail, rebase for feature branches.<\/p>\n<h3 id=\"q2-how-do-you-handle-merge-conflicts-in-git\"><strong>Q2: How do you handle merge conflicts in Git?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0When conflicts occur, edit the conflicted files to resolve them manually. Git marks conflicts with\u00a0<code>&lt;&lt;&lt;&lt;<\/code>,\u00a0<code>====<\/code>,\u00a0<code>&gt;&gt;&gt;&gt;<\/code>. After resolving, use\u00a0<code>git add file.txt<\/code>\u00a0and\u00a0<code>git commit<\/code>. Example: in a real scenario, two developers modify the same function, causing a conflict. You&#8217;ll see both versions and manually choose which to keep or merge them. Use\u00a0<code>git mergetool<\/code>\u00a0for graphical resolution or\u00a0<code>git diff<\/code>\u00a0to understand changes.<\/p>\n<h3 id=\"q3-what-is-git-stash-and-when-would-you-use-it\"><strong>Q3: What is git stash and when would you use it?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0<code>git stash<\/code>\u00a0temporarily saves uncommitted changes without committing. Use\u00a0<code>git stash save \"message\"<\/code>,\u00a0<code>git stash list<\/code>\u00a0to see stashes, and\u00a0<code>git stash pop<\/code>\u00a0to restore. Real scenario: you&#8217;re working on a feature, then suddenly need to switch to main branch to fix a critical bug. Stash your changes, switch branches, fix the bug, then pop the stash back. This prevents losing work.<\/p>\n<h3 id=\"q4-explain-git-cherry-pick-and-provide-a-real-world-use-case\"><strong>Q4: Explain git cherry-pick and provide a <a href=\"https:\/\/www.testleaf.com\/blog\/data-vs-information-examples-for-beginners\/\">real-world use case<\/a>.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0<code>git cherry-pick commit-hash<\/code>\u00a0applies a specific commit from one branch to another. Real scenario: a bug fix is committed to develop branch but needs to be in the release branch immediately. Instead of merging all of develop (which has incomplete features), cherry-pick only the bug fix commit:\u00a0<code>git cherry-pick abc123<\/code>. This is common in hotfix scenarios.<\/p>\n<h3 id=\"q5-how-do-you-set-up-and-manage-remote-repositories-and-handle-collaboration\"><strong>Q5: How do you set up and manage remote repositories and handle collaboration?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0<code>git remote add origin url<\/code>\u00a0connects to a remote.\u00a0<code>git push origin branch<\/code>\u00a0uploads commits,\u00a0<code>git pull origin branch<\/code>\u00a0downloads. For collaboration, use branches: each developer works on a feature branch, pushes to remote, and creates a pull request for review. Real scenario: multiple teams pushing to the same repo. Use branching strategy like Git Flow (main, develop, feature\/*, release\/<em>, hotfix\/<\/em>) to manage releases and prevent conflicts.<\/p>\n<p><strong>More Insights:<\/strong> <a href=\"https:\/\/www.testleaf.com\/blog\/top-30-playwright-interview-questions-and-answers-2025-updated-guide\/\">playwright interview questions<\/a><\/p>\n<h2 id=\"4-jenkins\"><span class=\"ez-toc-section\" id=\"4_Jenkins\"><\/span><strong>4. Jenkins<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-what-is-a-jenkins-pipeline-and-what-are-the-differences-between-declarative-and-scripted-pipelines\"><strong>Q1: What is a Jenkins pipeline and what are the differences between Declarative and Scripted pipelines?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Jenkins Pipeline is a suite of plugins for implementing <a href=\"https:\/\/www.testleaf.com\/blog\/retry-mechanism-testng-flaky-tests\/\"><strong>CI\/CD<\/strong><\/a> workflows. Declarative pipeline uses structured syntax with predefined sections (pipeline, agent, stages, post). Scripted pipeline uses Groovy scripts for more flexibility. Example Declarative:<\/p>\n<pre><code class=\"groovy\">pipeline {\r\n  agent any\r\n  stages {\r\n    stage('Build') {\r\n      steps { sh 'mvn build' }\r\n    }\r\n  }\r\n}\r\n<\/code><\/pre>\n<p>Real scenario: Use Declarative for standard workflows, Scripted for complex conditional logic.<\/p>\n<h3 id=\"q2-how-do-you-create-a-parameterized-jenkins-job\"><strong>Q2: How do you create a parameterized <a href=\"https:\/\/en.wikipedia.org\/wiki\/Jenkins_(software)\">Jenkins<\/a> job?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Add parameters in job configuration: string parameters, choice parameters, boolean parameters. Access them in scripts via\u00a0<code>${PARAM_NAME}<\/code>\u00a0or\u00a0<code>$PARAM_NAME<\/code>. Example: Create parameter\u00a0<code>ENVIRONMENT<\/code>\u00a0with choices (dev, staging, prod). In build step:\u00a0<code>deploy.sh ${ENVIRONMENT}<\/code>. Real use: single job for deploying to multiple environments without creating separate jobs.<\/p>\n<p><a href=\"https:\/\/selenium-webinar.testleaf.com\/?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><img decoding=\"async\" class=\"aligncenter wp-image-7676 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Selenium-Masterclass-1.png\" alt=\"Selenium Masterclass\" width=\"2048\" height=\"512\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Selenium-Masterclass-1.png 2048w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Selenium-Masterclass-1-300x75.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Selenium-Masterclass-1-1024x256.png 1024w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Selenium-Masterclass-1-768x192.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Selenium-Masterclass-1-1536x384.png 1536w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Selenium-Masterclass-1-150x38.png 150w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><\/a><\/p>\n<h3 id=\"q3-explain-jenkins-agentsnodes-and-why-youd-use-them\"><strong>Q3: Explain Jenkins agents\/nodes and why you&#8217;d use them.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Jenkins master schedules jobs, agents execute them. Agents are separate machines connected to master via SSH or JNLP. Tag agents by capabilities (docker, kubernetes, windows). In Jenkinsfile:\u00a0<code>agent { label 'docker' }<\/code>\u00a0runs job on Docker-capable node. Real scenario: main master stays stable, builds run on multiple agents, scaling horizontally as workload increases.<\/p>\n<h3 id=\"q4-how-do-you-set-up-webhook-triggered-builds-and-whats-the-benefit\"><strong>Q4: How do you set up webhook-triggered builds and what&#8217;s the benefit?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Webhook is an HTTP callback that triggers Jenkins when events occur in Git. Configure in GitHub\/GitLab: Settings \u2192 Webhooks \u2192 Jenkins URL. When code is pushed, Git sends payload to Jenkins, triggering build immediately. Real scenario: developer pushes code \u2192 GitHub sends webhook \u2192 Jenkins automatically starts build and testing within seconds, faster than polling.<\/p>\n<h3 id=\"q5-describe-a-real-time-cicd-pipeline-scenario-using-jenkins\"><strong>Q5: Describe a real-time CI\/CD pipeline scenario using Jenkins.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Developer pushes code \u2192 webhook triggers Jenkins \u2192 Checkout code \u2192 Run tests \u2192 Build Docker image \u2192 Push to registry \u2192 Deploy to staging \u2192 Run smoke tests \u2192 Manual approval \u2192 Deploy to production. Pipeline stages:<\/p>\n<pre><code class=\"groovy\">stages {\r\n  stage('Test') { steps { sh 'pytest' } }\r\n  stage('Build') { steps { sh 'docker build -t app:$BUILD_NUMBER .' } }\r\n  stage('Push') { steps { sh 'docker push registry\/app:$BUILD_NUMBER' } }\r\n  stage('Deploy Staging') { steps { sh 'kubectl apply -f staging.yaml' } }\r\n  stage('Approval') { steps { input 'Deploy to Prod?' } }\r\n  stage('Deploy Prod') { steps { sh 'kubectl apply -f prod.yaml' } }\r\n}\r\n<\/code><\/pre>\n<p><strong>Related Posts:<\/strong> <a href=\"https:\/\/www.testleaf.com\/blog\/top-25-api-automation-engineer-interview-questionsin-2025-with-answers\/\">api automation interview questions<\/a><\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"5-docker\"><span class=\"ez-toc-section\" id=\"5_Docker\"><\/span><strong>5. Docker<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-explain-the-difference-between-docker-images-and-containers-and-how-they-relate-to-each-other\"><strong>Q1: Explain the difference between <a href=\"https:\/\/www.testleaf.com\/blog\/dockerized-selenium-grid-for-scalable-test-execution\/\">Docker<\/a> images and containers, and how they relate to each other.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0A Docker image is a blueprint (read-only template) containing application code, dependencies, and environment. A container is a running instance of that image (like a class vs object). Create image from Dockerfile, run containers from images. Multiple containers can run from same image. Example: one MySQL image can run 10 containers, each isolated from others. In production: build image once, run containers across different servers.<\/p>\n<h3 id=\"q2-write-a-simple-dockerfile-and-explain-each-instruction\"><strong>Q2: Write a simple Dockerfile and explain each instruction.<\/strong><\/h3>\n<p><strong>Ans:<\/strong><\/p>\n<pre><code class=\"dockerfile\">FROM ubuntu:20.04\r\nWORKDIR \/app\r\nCOPY . .\r\nRUN apt-get update &amp;&amp; apt-get install -y python3\r\nENV APP_ENV=production\r\nEXPOSE 8000\r\nCMD [\"python3\", \"app.py\"]\r\n<\/code><\/pre>\n<p>FROM: base image. WORKDIR: sets directory. COPY: copies files. RUN: executes commands. ENV: sets variables. EXPOSE: documents port. CMD: default command. Real scenario: package Python app with dependencies, expose port, run in production.<\/p>\n<h3 id=\"q3-how-do-you-manage-data-persistence-in-docker-containers\"><strong>Q3: How do you manage data persistence in Docker containers?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Containers are ephemeral; data is lost when stopped. Use volumes for persistence. Three types: named volumes (<code>docker volume create mydata<\/code>), bind mounts (map host directory), tmpfs mounts (in-memory). Example:\u00a0<code>docker run -v mydata:\/app\/data myimage<\/code>\u00a0persists \/app\/data to named volume. Real scenario: database container needs persistent storage; use volume so data survives container restarts.<\/p>\n<h3 id=\"q4-explain-docker-networking-and-how-containers-communicate\"><strong>Q4: Explain Docker networking and how containers communicate.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Docker creates networks for container communication. Bridge network (default): containers on same host communicate via IP. Overlay network: containers on different hosts communicate (Swarm\/Kubernetes). Example:\u00a0<code>docker network create mynet<\/code>,\u00a0<code>docker run --network mynet --name web myimage<\/code>,\u00a0<code>docker run --network mynet --name db dbimage<\/code>. Container &#8220;web&#8221; reaches &#8220;db&#8221; via hostname. Real scenario: multi-container app (web, database, cache) runs isolated in custom network.<\/p>\n<h3 id=\"q5-describe-a-production-scenario-with-multi-stage-builds-and-optimization\"><strong>Q5: Describe a production scenario with multi-stage builds and optimization.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Multi-stage builds reduce final image size. First stage builds app, second stage copies only necessary artifacts:<\/p>\n<pre><code class=\"dockerfile\">FROM golang:1.19 AS builder\r\nWORKDIR \/app\r\nCOPY . .\r\nRUN go build -o myapp\r\n\r\nFROM alpine:latest\r\nWORKDIR \/app\r\nCOPY --from=builder \/app\/myapp .\r\nCMD [\".\/myapp\"]\r\n<\/code><\/pre>\n<p>First stage is large (includes build tools), second stage only has binary + alpine (tiny). Real scenario: build 1GB image with all tools, final image is 50MB with only runtime. Reduces deployment time and security surface.<\/p>\n<p><strong>You Should Also Read:<\/strong> <a href=\"https:\/\/www.testleaf.com\/blog\/epam-interview-questions-with-answers\/\">Epam interview questions<\/a><\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"6-kubernetes\"><span class=\"ez-toc-section\" id=\"6_Kubernetes\"><\/span><strong>6. Kubernetes<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-explain-the-basic-architecture-of-kubernetes-and-its-core-components\"><strong>Q1: Explain the <a href=\"https:\/\/www.testleaf.com\/blog\/roadmap-to-becoming-most-effective-test-architect\/\">basic architecture<\/a> of Kubernetes and its core components.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Kubernetes (K8s) is an orchestration platform. Master nodes contain: API Server (handles requests), Scheduler (assigns pods), Controller Manager (maintains state). Worker nodes contain: Kubelet (runs containers), kube-proxy (networking). Pods are smallest unit (one\/multiple containers). Real scenario: 100 microservices running, K8s automatically restarts failed pods, scales based on load, handles rolling updates.<\/p>\n<h3 id=\"q2-what-is-a-kubernetes-pod-and-how-does-it-differ-from-a-container\"><strong>Q2: What is a Kubernetes Pod and how does it differ from a container?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Pod is smallest K8s unit, wraps one\/multiple tightly-coupled containers sharing network. All containers in pod share IP and localhost. Containers outside pod need service to communicate. Example: main app + logging sidecar in one pod, both share localhost:8000. Real scenario: tightly-coupled services run in one pod, independent services run in separate pods.<\/p>\n<p><a href=\"https:\/\/ai-master-class.testleaf.com\/?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><img decoding=\"async\" class=\"aligncenter wp-image-7642 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Gen-AI-Masterclass.png\" alt=\"Gen AI Masterclass\" width=\"2048\" height=\"512\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Gen-AI-Masterclass.png 2048w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Gen-AI-Masterclass-300x75.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Gen-AI-Masterclass-1024x256.png 1024w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Gen-AI-Masterclass-768x192.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Gen-AI-Masterclass-1536x384.png 1536w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/11\/Gen-AI-Masterclass-150x38.png 150w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><\/a><\/p>\n<h3 id=\"q3-explain-kubernetes-services-and-the-different-types-available\"><strong>Q3: Explain Kubernetes Services and the different types available.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Service exposes pods to internal\/external traffic. Types: ClusterIP (internal only, default), NodePort (exposes on each node&#8217;s port), LoadBalancer (external load balancer). Example:<\/p>\n<pre><code class=\"yaml\">apiVersion: v1\r\nkind: Service\r\nmetadata:\r\n  name: my-service\r\nspec:\r\n  type: LoadBalancer\r\n  selector:\r\n    app: myapp\r\n  ports:\r\n  - protocol: TCP\r\n    port: 80\r\n    targetPort: 8000\r\n<\/code><\/pre>\n<p>Real scenario: deploy web app, create LoadBalancer service to route external traffic to pods.<\/p>\n<h3 id=\"q4-how-do-you-manage-configuration-and-secrets-in-kubernetes\"><strong>Q4: How do you manage configuration and secrets in Kubernetes?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0ConfigMap stores non-sensitive data (config files), Secret stores sensitive data (passwords, tokens). Example ConfigMap:<\/p>\n<pre><code class=\"yaml\">apiVersion: v1\r\nkind: ConfigMap\r\nmetadata:\r\n  name: app-config\r\ndata:\r\n  database_host: \"db.example.com\"\r\n<\/code><\/pre>\n<p>Pod references:\u00a0<code>valueFrom: configMapKeyRef<\/code>. Real scenario: change app config without rebuilding image, store database passwords securely in Secrets, avoid hardcoding.<\/p>\n<h3 id=\"q5-describe-a-real-time-kubernetes-deployment-scenario-with-auto-scaling-and-rolling-updates\"><strong>Q5: Describe a real-time Kubernetes deployment scenario with auto-scaling and rolling updates.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Deploy 5 replicas of app. Create Deployment:<\/p>\n<pre><code class=\"yaml\">apiVersion: apps\/v1\r\nkind: Deployment\r\nmetadata:\r\n  name: myapp\r\nspec:\r\n  replicas: 5\r\n  selector:\r\n    matchLabels:\r\n      app: myapp\r\n  template:\r\n    spec:\r\n      containers:\r\n      - name: app\r\n        image: myapp:v1\r\n<\/code><\/pre>\n<p>Setup HPA (Horizontal Pod Autoscaler): if CPU &gt; 70%, scale to max 10 pods. Real scenario: traffic spike \u2192 HPA scales to 10 pods \u2192 handles load. Traffic decreases \u2192 scales back to 5. New version released \u2192\u00a0<code>kubectl set image deployment\/myapp myapp=myapp:v2<\/code>\u00a0triggers rolling update (new pods start, old pods terminate gradually, zero downtime).<\/p>\n<p><strong>Also, Know More About:<\/strong> <a href=\"https:\/\/www.testleaf.com\/blog\/top-25-api-automation-engineer-interview-questionsin-2025-with-answers\/\">api testing interview questions<\/a><\/p>\n<p>&nbsp;<\/p>\n<h2><\/h2>\n<h2 id=\"7-alert-manager\"><span class=\"ez-toc-section\" id=\"7_Alert_Manager\"><\/span><strong>7. Alert Manager<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-what-is-alertmanager-and-how-does-it-differ-from-prometheus\"><strong>Q1: What is Alertmanager and how does it differ from Prometheus?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Prometheus scrapes metrics and evaluates alert rules. Alertmanager receives alerts from Prometheus and handles routing, grouping, deduplication, and notifications. Prometheus is metric collection, Alertmanager is alert management. Real scenario: Prometheus fires &#8220;HighCPU&#8221; alert, Alertmanager groups similar alerts, deduplicates duplicates, sends to Slack\/PagerDuty, silences during maintenance.<\/p>\n<h3 id=\"q2-how-do-you-configure-alert-routing-in-alertmanager\"><strong>Q2: How do you configure alert routing in Alertmanager?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Configure routes in\u00a0<code>alertmanager.yml<\/code>:<\/p>\n<pre><code class=\"yaml\">route:\r\n  receiver: 'default'\r\n  routes:\r\n  - match:\r\n      severity: critical\r\n    receiver: 'pagerduty'\r\n  - match:\r\n      severity: warning\r\n    receiver: 'slack'\r\nreceivers:\r\n- name: 'default'\r\n  slack_configs:\r\n  - api_url: 'YOUR_SLACK_URL'\r\n- name: 'pagerduty'\r\n  pagerduty_configs:\r\n  - service_key: 'YOUR_KEY'\r\n<\/code><\/pre>\n<p>Real scenario: critical alerts \u2192 PagerDuty (wake up oncall), warnings \u2192 Slack (notify team), info \u2192 email.<\/p>\n<p><a href=\"https:\/\/www.testleaf.com\/course\/playwright.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5709 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/07\/Playwright-online-class.png\" alt=\"Playwright automation testing\" width=\"2048\" height=\"512\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/07\/Playwright-online-class.png 2048w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/07\/Playwright-online-class-300x75.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/07\/Playwright-online-class-1024x256.png 1024w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/07\/Playwright-online-class-768x192.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/07\/Playwright-online-class-1536x384.png 1536w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/07\/Playwright-online-class-150x38.png 150w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><\/a><\/p>\n<h3 id=\"q3-what-is-alert-grouping-and-how-do-you-implement-it\"><strong>Q3: What is alert grouping and how do you implement it?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Grouping prevents alert storms by combining similar alerts. Group by labels in Alertmanager:<\/p>\n<pre><code class=\"yaml\">route:\r\n  group_by: ['alertname', 'cluster']\r\n  group_wait: 10s\r\n  group_interval: 10s\r\n  repeat_interval: 12h\r\n<\/code><\/pre>\n<p><code>group_by<\/code>\u00a0identifies similar alerts,\u00a0<code>group_wait<\/code>\u00a0waits before sending (accumulates alerts),\u00a0<code>group_interval<\/code>\u00a0wait between sends. Real scenario: 1000 pods with high CPU simultaneously \u2192 grouped into single alert instead of 1000 notifications.<\/p>\n<h3 id=\"q4-explain-alert-silencing-and-inhibition-rules\"><strong>Q4: Explain alert silencing and inhibition rules.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Silencing temporarily suppresses alerts. Inhibition prevents alerts when other alerts fire. Example: if &#8220;DatabaseDown&#8221; fires, inhibit &#8220;HighDatabaseLatency&#8221;:<\/p>\n<pre><code class=\"yaml\">inhibit_rules:\r\n- source_match:\r\n    alertname: 'DatabaseDown'\r\n  target_match:\r\n    alertname: 'HighDatabaseLatency'\r\n  equal: ['instance']\r\n<\/code><\/pre>\n<p>Real scenario: during planned maintenance, silence alerts manually. When database crashes, inhibit latency alerts (they&#8217;re expected).<\/p>\n<h3 id=\"q5-describe-a-real-time-alerting-workflow-with-escalation\"><strong>Q5: Describe a real-time alerting workflow with escalation.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Setup escalation policy:<\/p>\n<pre><code class=\"yaml\">route:\r\n  group_by: ['alertname']\r\n  group_wait: 5s\r\n  routes:\r\n  - match:\r\n      severity: critical\r\n    receiver: 'pagerduty'\r\n    repeat_interval: 5m\r\n  - match:\r\n      severity: warning\r\n    receiver: 'slack'\r\n    repeat_interval: 1h\r\n<\/code><\/pre>\n<p>Real scenario: critical alert fires \u2192 PagerDuty notifies oncall engineer. No ack in 5 mins \u2192 escalates to backup. Warning fires \u2192 Slack notifies team. If not resolved in 1 hour \u2192 escalate to manager. This ensures issues are addressed timely.<\/p>\n<p><strong>Also, Explore: <\/strong><a href=\"https:\/\/www.testleaf.com\/blog\/top-10-product-based-companies-in-chennai-for-tech-professionals\/\">product based companies in chennai<\/a><\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"8-prometheus\"><span class=\"ez-toc-section\" id=\"8_Prometheus\"><\/span><strong>8. Prometheus<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-explain-prometheus-architecture-and-how-it-collects-metrics\"><strong>Q1: Explain Prometheus architecture and how it collects metrics.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Prometheus is a time-series metrics database. Architecture: Prometheus server scrapes exporters\/applications at intervals, stores in time-series database, evaluates alert rules. Pull model (vs Push). Example: scrape Kubernetes nodes every 30s via node-exporter. Real scenario: Prometheus scrapes 100 microservices, stores metrics with timestamp, enables time-series queries.<\/p>\n<h3 id=\"q2-what-are-prometheus-metrics-types-and-provide-examples\"><strong>Q2: What are Prometheus metrics types and provide examples?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Four types: Counter (always increases, e.g., total requests), Gauge (up\/down, e.g., temperature), Histogram (distribution, e.g., request duration buckets), Summary (like histogram but different). Examples: &#8211; Counter:\u00a0<code>http_requests_total{method=\"GET\"}<\/code>\u00a0&#8211; Gauge:\u00a0<code>node_memory_available_bytes<\/code>\u00a0&#8211; Histogram:\u00a0<code>http_request_duration_seconds_bucket<\/code>\u00a0Real scenario: track API request count (counter), current CPU usage (gauge), response time distribution (histogram).<\/p>\n<h3 id=\"q3-how-do-you-write-promql-queries-to-extract-metrics\"><strong>Q3: How do you write PromQL queries to extract metrics?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0PromQL is Prometheus query language. Examples: &#8211;\u00a0<code>node_cpu_seconds_total<\/code>\u00a0(all CPU metrics) &#8211;\u00a0<code>rate(http_requests_total[5m])<\/code>\u00a0(requests per second in last 5 mins) &#8211;\u00a0<code>topk(5, node_memory_available_bytes)<\/code>\u00a0(top 5 nodes by available memory) &#8211;\u00a0<code>node_memory_available_bytes &gt; 1000000<\/code>\u00a0(alert if memory low) Real scenario: query &#8220;API response time 95th percentile in last hour&#8221;, &#8220;CPU usage by pod&#8221;, &#8220;disk space available&#8221;.<\/p>\n<p><a href=\"https:\/\/www.testleaf.com\/course\/genai-qa-engineers-training-course.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5555 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Babus-Gen-AI.png\" alt=\"Babu's Gen AI\" width=\"2048\" height=\"512\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Babus-Gen-AI.png 2048w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Babus-Gen-AI-300x75.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Babus-Gen-AI-1024x256.png 1024w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Babus-Gen-AI-768x192.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Babus-Gen-AI-1536x384.png 1536w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Babus-Gen-AI-150x38.png 150w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><\/a><\/p>\n<h3 id=\"q4-explain-prometheus-scrape-configuration-and-relabeling\"><strong>Q4: Explain Prometheus scrape configuration and relabeling.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Scrape config in\u00a0<code>prometheus.yml<\/code>:<\/p>\n<pre><code class=\"yaml\">scrape_configs:\r\n- job_name: 'kubernetes'\r\n  kubernetes_sd_configs:\r\n  - role: pod\r\n  metric_relabel_configs:\r\n  - source_labels: [__name__]\r\n    regex: 'go_.*'\r\n    action: drop\r\n<\/code><\/pre>\n<p>This discovers pods, scrapes metrics, drops Go metrics. Real scenario: auto-discover new pods in <a href=\"https:\/\/www.testleaf.com\/course\/kubernetes-certification-training-course.html\">Kubernetes<\/a>, relabel metrics to add environment labels, drop high-cardinality metrics.<\/p>\n<h3 id=\"q5-describe-a-real-time-monitoring-scenario-with-prometheus-and-recording-rules\"><strong>Q5: Describe a real-time monitoring scenario with Prometheus and recording rules.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Setup recording rules to pre-compute common queries:<\/p>\n<pre><code class=\"yaml\">groups:\r\n- name: cpu\r\n  interval: 30s\r\n  rules:\r\n  - record: 'instance:cpu:rate5m'\r\n    expr: 'rate(node_cpu_seconds_total[5m])'\r\n  - record: 'job:cpu:avg'\r\n    expr: 'avg(instance:cpu:rate5m) by (job)'\r\n<\/code><\/pre>\n<p>Real scenario: query\u00a0<code>cpu:avg<\/code>\u00a0(pre-computed) instead of computing from raw metrics every time. Faster dashboards, reduced query load. If 500 microservices send metrics, recording rules average CPU by service, store result, Grafana dashboard displays pre-computed values instantly.<\/p>\n<h2><\/h2>\n<h2 id=\"9-grafana\"><span class=\"ez-toc-section\" id=\"9_Grafana\"><\/span><strong>9. Grafana<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-what-is-grafana-and-how-does-it-integrate-with-prometheus\"><strong>Q1: What is Grafana and how does it integrate with Prometheus?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Grafana is a visualization platform for metrics\/logs. It queries Prometheus API to retrieve metrics, displays in dashboards with graphs, tables, alerts. Example: add Prometheus data source in Grafana, create dashboard panel with query\u00a0<code>rate(http_requests_total[5m])<\/code>, visualize as graph. Real scenario: operations team views production metrics, correlates events, identifies bottlenecks visually.<\/p>\n<h3 id=\"q2-how-do-you-create-a-grafana-dashboard-and-set-up-visualizations\"><strong>Q2: How do you create a Grafana dashboard and set up visualizations?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Create dashboard \u2192 add panels \u2192 select visualization (graph, gauge, heatmap). For each panel: set Prometheus query, configure axes\/colors. Example panel:<\/p>\n<pre><code>Title: \"API Response Time\"\r\nQuery: histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))\r\nVisualization: Graph\r\nY-axis: Seconds\r\nAlert: If &gt; 500ms, fire alert\r\n<\/code><\/pre>\n<p>Real scenario: build dashboard showing API latency, database connections, error rate; operations team monitors production health.<\/p>\n<h3 id=\"q3-explain-grafana-alerting-and-how-to-set-thresholds\"><strong>Q3: Explain Grafana alerting and how to set thresholds.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0In panel settings, add alert rule:<\/p>\n<pre><code>Condition: avg(B) &gt; 80\r\nFor: 5 minutes\r\nSend to: PagerDuty\r\nMessage: \"CPU usage high\"\r\n<\/code><\/pre>\n<p>If average CPU &gt; 80% for 5 minutes, alert fires. Real scenario: CPU exceeds threshold for sustained 5 minutes (not spikes), alert fires to prevent false positives.<\/p>\n<h3 id=\"q4-how-do-you-create-dashboard-variables-for-dynamic-filtering\"><strong>Q4: How do you create dashboard variables for dynamic filtering?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Add variables in dashboard settings. Example variable\u00a0<code>$instance<\/code>\u00a0with choices (prod-1, prod-2, prod-3). Use in queries:\u00a0<code>node_memory_available_bytes{instance=\"$instance\"}<\/code>. Dropdown allows team to switch instances without editing queries. Real scenario: single dashboard for monitoring 10 servers; select server from dropdown to view specific server metrics.<\/p>\n<p><a href=\"https:\/\/www.testleaf.com\/course\/selenium-automation-certification-training-course.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5159 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Selenium.jpg\" alt=\"Selenium training in chennai\" width=\"2048\" height=\"512\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Selenium.jpg 2048w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Selenium-300x75.jpg 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Selenium-1024x256.jpg 1024w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Selenium-768x192.jpg 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Selenium-1536x384.jpg 1536w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/06\/Selenium-150x38.jpg 150w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><\/a><\/p>\n<h3 id=\"q5-describe-a-real-time-monitoring-dashboard-scenario\"><strong>Q5: Describe a real-time monitoring dashboard scenario.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Build production dashboard for operations team: &#8211; Panel 1: API request rate (line graph) &#8211; Panel 2: Error rate percentage (gauge) &#8211; Panel 3: CPU usage by service (bar chart) &#8211; Panel 4: Database connections (stat) &#8211; Panel 5: Disk space (gauge) Variables:\u00a0<code>$service<\/code>,\u00a0<code>$environment<\/code>\u00a0Queries use variables:\u00a0<code>rate(http_requests_total{service=\"$service\"}[5m])<\/code>\u00a0Team selects service\/environment from dropdowns, sees all metrics update. Set alert: if error rate &gt; 5% for 2 mins, page oncall. Real-time visibility into application health enables quick incident response.<\/p>\n<h2><\/h2>\n<h2 id=\"10-sonarqube\"><span class=\"ez-toc-section\" id=\"10_SonarQube\"><\/span><strong>10. SonarQube<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"q1-what-is-sonarqube-and-what-does-it-analyze-in-code\"><strong>Q1: What is <a href=\"https:\/\/en.wikipedia.org\/wiki\/SonarQube\">SonarQube<\/a> and what does it analyze in code?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0SonarQube is a code quality and security analysis platform. Analyzes: bugs, code smells, vulnerabilities, code coverage, duplications, complexity. Generates reports with ratings (A-E). Real scenario: developer commits code, CI pipeline triggers SonarQube scan, detects SQL injection vulnerability, blocks merge, developer fixes, re-runs scan, passes.<\/p>\n<h3 id=\"q2-how-do-you-integrate-sonarqube-with-jenkins-cicd-pipeline\"><strong>Q2: How do you integrate SonarQube with Jenkins CI\/CD pipeline?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Install SonarScanner plugin, configure SonarQube server in Jenkins. In Jenkinsfile:<\/p>\n<pre><code class=\"groovy\">stage('SonarQube Scan') {\r\n  steps {\r\n    withSonarQubeEnv('SonarQube') {\r\n      sh 'sonar-scanner \\\r\n        -Dsonar.projectKey=myproject \\\r\n        -Dsonar.sources=src \\\r\n        -Dsonar.java.binaries=build'\r\n    }\r\n  }\r\n}\r\nstage('Quality Gate') {\r\n  steps {\r\n    waitForQualityGate abortPipeline: true\r\n  }\r\n}\r\n<\/code><\/pre>\n<p>Real scenario: build \u2192 test \u2192 SonarQube scan \u2192 if quality gate fails, stop pipeline; developer must fix code quality before merging.<\/p>\n<h3 id=\"q3-what-is-the-quality-gate-and-how-do-you-configure-it\"><strong>Q3: What is the Quality Gate and how do you configure it?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Quality Gate defines pass\/fail criteria. Configure in SonarQube: &#8211; Code coverage &lt; 80% \u2192 FAIL &#8211; Bugs &gt; 5 \u2192 FAIL &#8211; Security issues &gt; 0 \u2192 FAIL &#8211; Complexity &gt; 15 \u2192 FAIL Example: run SonarQube, if any condition fails, Quality Gate fails, CI pipeline stops. Real scenario: enforce standards; no code merges without 80% coverage or if it has security issues. Prevents technical debt accumulation.<\/p>\n<h3 id=\"q4-how-do-you-set-up-code-coverage-analysis-in-sonarqube\"><strong>Q4: How do you set up code coverage analysis in SonarQube?<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Generate coverage reports from test frameworks (JaCoCo for Java, pytest for Python). Example with Maven:<\/p>\n<pre><code class=\"bash\">mvn clean test jacoco:report\r\n<\/code><\/pre>\n<p>SonarQube detects coverage report (target\/site\/jacoco\/jacoco.xml), analyzes coverage percentage. In SonarQube dashboard: shows covered\/uncovered lines, coverage trend. Real scenario: track coverage over time, identify untested code, set threshold (&gt;80%), fail builds if below.<\/p>\n<h3 id=\"q5-describe-a-real-time-code-quality-workflow-in-production-cicd\"><strong>Q5: Describe a real-time code quality workflow in production CI\/CD.<\/strong><\/h3>\n<p><strong>Ans:<\/strong>\u00a0Developer commits code: 1. Jenkins triggers build 2. Run unit tests with coverage (pytest\/Maven) 3. SonarQube scans code for bugs\/vulnerabilities 4. Check Quality Gate: if code coverage &lt; 80% OR bugs detected \u2192 FAIL, send feedback to developer 5. If passes: merge to main, run integration tests 6. Deploy to staging\/production<\/p>\n<p><a href=\"https:\/\/www.testleaf.com\/all-courses.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4599 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/04\/Online-Classes.png\" alt=\"Online Classes\" width=\"2048\" height=\"512\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/04\/Online-Classes.png 2048w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/04\/Online-Classes-300x75.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/04\/Online-Classes-1024x256.png 1024w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/04\/Online-Classes-768x192.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/04\/Online-Classes-1536x384.png 1536w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/04\/Online-Classes-150x38.png 150w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><\/a><\/p>\n<p>Real scenario: 10 developers commit daily. SonarQube prevents low-quality code merging. Dashboard shows quality trends: Nov avg coverage 75%, target 85%, identify which modules lack tests. Security scan catches SQL injection before production. Code smell report suggests refactoring complex functions (complexity &gt; 15). Team improves code quality incrementally through automated gates.<\/p>\n<p>&nbsp;<\/p>\n<h2 data-start=\"5278\" data-end=\"5295\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span><strong data-start=\"5281\" data-end=\"5295\">Conclusion<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"257\" data-end=\"581\">These <strong data-start=\"263\" data-end=\"302\">DevOps interview questions for 2026<\/strong> cover every essential topic \u2014 from Linux and shell scripting to CI\/CD, Docker, Kubernetes, and cloud monitoring. They reflect what top employers look for in today\u2019s DevOps engineers: problem-solving skills, automation mindset, and hands-on experience across modern toolchains.<\/p>\n<p data-start=\"583\" data-end=\"832\">To advance your career, explore <a href=\"https:\/\/www.testleaf.com\/course\/azure-devops.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong data-start=\"615\" data-end=\"644\">online courses for DevOps<\/strong><\/a> that focus on real-world projects, CI\/CD pipelines, and cloud infrastructure. Continuous learning and practice are the keys to staying relevant in 2026\u2019s fast-evolving DevOps landscape.<\/p>\n<h2 data-start=\"6185\" data-end=\"6196\"><span class=\"ez-toc-section\" id=\"FAQs\"><\/span><strong data-start=\"6188\" data-end=\"6196\">FAQs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"6198\" data-end=\"6376\"><strong data-start=\"6198\" data-end=\"6254\">Q1: What are the top DevOps skills to learn in 2026?<\/strong><br data-start=\"6254\" data-end=\"6257\" \/>Focus on Kubernetes, Jenkins, Docker, cloud automation, Terraform, and observability tools like Prometheus and Grafana.<\/p>\n<p data-start=\"6378\" data-end=\"6555\"><strong data-start=\"6378\" data-end=\"6420\">Q2: Is DevOps still in demand in 2026?<\/strong><br data-start=\"6420\" data-end=\"6423\" \/>Absolutely! With AI-driven pipelines and hybrid cloud adoption, DevOps remains one of the top 3 highest-paying tech careers in 2026.<\/p>\n<p data-start=\"6557\" data-end=\"6743\"><strong data-start=\"6557\" data-end=\"6608\">Q3: How can I gain real-time DevOps experience?<\/strong><br data-start=\"6608\" data-end=\"6611\" \/>Work on CI\/CD projects, containerize applications, deploy them on Kubernetes, and integrate monitoring using Prometheus and Grafana.<\/p>\n<p data-start=\"6745\" data-end=\"6936\"><strong data-start=\"6745\" data-end=\"6802\">Q4: What\u2019s the best certification for DevOps in 2026?<\/strong><br data-start=\"6802\" data-end=\"6805\" \/>Certifications like AWS Certified DevOps Engineer, Docker Certified Associate, and Testleaf\u2019s DevOps Masterclass are highly valued.<\/p>\n<p data-start=\"6938\" data-end=\"7154\"><strong data-start=\"6938\" data-end=\"6991\">Q5: How can I start learning DevOps from scratch?<\/strong><br data-start=\"6991\" data-end=\"6994\" \/>Start with Git, Linux, Jenkins, and Docker basics \u2014 then progress to Kubernetes, Prometheus, and CI\/CD pipelines through <strong data-start=\"7115\" data-end=\"7153\">Testleaf\u2019s hands-on DevOps program<\/strong>.<\/p>\n<h5><strong>We Also Provide Training In:<\/strong><\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/selenium-automation-certification-training-course.html?utm_source=blog_post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong>Advanced Selenium Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/playwright.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong>Playwright Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/genai-qa-engineers-training-course.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong>Gen AI Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/aws-cloud-architect-certification-training-course.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong>AWS Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/rest-api-testing-certification-training-course.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong>REST API Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/full-stack-developer-certification-training-course.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong>Full Stack Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/appium-mobile-automation-certification-training-course.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong>Appium Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/dev-ops-master-certification-training-course.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong>DevOps Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/apache-jmeter-testing-training-course.html?utm_source=blog-post&amp;utm_medium=Organic&amp;utm_campaign=Blog_Post\"><strong>JMeter Performance Training<\/strong><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h6><strong>Author\u2019s Bio<\/strong>:<\/h6>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6744 size-full alignleft\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/09\/Kadhir.png\" sizes=\"(max-width: 200px) 100vw, 200px\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/09\/Kadhir.png 200w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/09\/Kadhir-150x150.png 150w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/09\/Kadhir-96x96.png 96w\" alt=\"Kadhir\" width=\"200\" height=\"200\" \/><\/p>\n<p>Content Writer at Testleaf, specializing in SEO-driven content for test automation, software development, and cybersecurity. I turn complex technical topics into clear, engaging stories that educate, inspire, and drive digital transformation.<\/p>\n<p><strong>Ezhirkadhir Raja<\/strong><\/p>\n<p>Content Writer \u2013 Testleaf<\/p>\n<p><a href=\"http:\/\/linkedin.com\/in\/ezhirkadhir\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/07\/linkedin.png\" alt=\"LinkedIn Logo\" width=\"28\" height=\"28\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Preparing for a DevOps interview in 2026? The demand for DevOps engineers continues to skyrocket as companies adopt automation-first strategies, hybrid cloud infrastructure, and AI-assisted pipelines. Leading organizations like Infosys, TCS, Accenture, and AWS are seeking engineers who can manage CI\/CD, Kubernetes, and cloud monitoring with hands-on expertise. This guide covers the top DevOps &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.testleaf.com\/blog\/top-2026-devops-interview-questions-and-expert-answers-for-2-5-years-experience\/\"> <span class=\"screen-reader-text\">Top 2026 DevOps Interview Questions and Expert Answers for 2\u20135 Years Experience<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":7741,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"default","site-content-layout":"default","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"categories":[49],"tags":[466,51,52,465,956,955],"class_list":["post-7740","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops-automation","tag-devops","tag-devops-automation","tag-devops-bootcamp","tag-devops-testing","tag-online-class","tag-online-devops-course"],"acf":[],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/posts\/7740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/comments?post=7740"}],"version-history":[{"count":6,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/posts\/7740\/revisions"}],"predecessor-version":[{"id":7744,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/posts\/7740\/revisions\/7744"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/media\/7741"}],"wp:attachment":[{"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/media?parent=7740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/categories?post=7740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/tags?post=7740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}