From ac256a2d9254d6bc983abcb83316ef00ed7ac7ec Mon Sep 17 00:00:00 2001 From: mchittineni Date: Tue, 11 Aug 2026 12:47:51 +0100 Subject: [PATCH 01/48] feat(scripts): add knowledge graph generator and wikilink injector scripts --- scripts/build_knowledge_graph.py | 562 +++++++++++++++++++++++++++++++ scripts/inject_wikilinks.py | 108 ++++++ scripts/validate_content.py | 2 +- 3 files changed, 671 insertions(+), 1 deletion(-) create mode 100644 scripts/build_knowledge_graph.py create mode 100644 scripts/inject_wikilinks.py diff --git a/scripts/build_knowledge_graph.py b/scripts/build_knowledge_graph.py new file mode 100644 index 0000000..f281042 --- /dev/null +++ b/scripts/build_knowledge_graph.py @@ -0,0 +1,562 @@ +#!/usr/bin/env python3 +"""Generate an interactive HTML knowledge graph for GitHub Pages. + +Parses all Markdown questions and topic indexes, extracts connections (categories, +shared tags, and explicit cross-file relative links), and builds an interactive 3D/2D +Force Graph using Force-Graph for GitHub Pages static site deployment. + +Usage: + python3 scripts/build_knowledge_graph.py [--output docs/index.html] +""" + +from __future__ import annotations + +import argparse +import json +import re +import sys +from pathlib import Path + +# Add scripts dir to sys.path +SCRIPTS_DIR = Path(__file__).resolve().parent +sys.path.insert(0, str(SCRIPTS_DIR)) + +from lib_content import REPO_ROOT, all_questions, load_topics, topic_meta + +LINK_RE = re.compile(r"\[[^\]]*\]\((\.[^)\s]+)\)") +WIKILINK_RE = re.compile(r"\[\[([^\]|]+)(?:\|[^\]]+)?\]\]") + +DIFFICULTY_COLORS = { + "Beginner": "#10b981", # Emerald Green + "Intermediate": "#f59e0b", # Amber Yellow + "Advanced": "#ef4444", # Rose Red + "Topic": "#06b6d4", # Cyan / Terminal Teal +} + +GROUP_COLORS = { + "Foundations": "#3b82f6", + "Containers and Kubernetes": "#06b6d4", + "Delivery and Automation": "#10b981", + "Cloud Providers": "#8b5cf6", + "Architecture and Scale": "#f59e0b", + "Reliability and Operations": "#ec4899", + "Security": "#ef4444", + "Platform and Leadership": "#6366f1", + "Interview Prep": "#14b8a6", +} + + +def extract_internal_links(file_path: Path, text: str, title_to_path_map: dict | None = None) -> list[Path]: + """Extract relative markdown links and [[wikilinks]] targeting other question files.""" + linked_paths = [] + # 1. Standard relative markdown links + for match in LINK_RE.findall(text): + target = match.split("#", 1)[0] + if not target or not target.endswith(".md"): + continue + resolved = (file_path.parent / target).resolve() + if resolved.exists() and resolved != file_path: + linked_paths.append(resolved) + + # 2. Obsidian / Wiki style [[wikilinks]] + if title_to_path_map: + for match in WIKILINK_RE.findall(text): + target_name = match.strip().lower() + if target_name in title_to_path_map: + resolved = title_to_path_map[target_name] + if resolved != file_path: + linked_paths.append(resolved) + + return linked_paths + + +def build_graph_data(repo_root: Path = REPO_ROOT) -> dict: + topics = load_topics(repo_root) + questions = all_questions(topics) + meta = topic_meta() + + nodes = [] + edges = [] + edge_set = set() + + # 1. Add Topic Nodes + for t in topics: + t_group = meta.get(t.directory, {}).get("group", "Other") + nodes.append({ + "id": f"topic:{t.directory}", + "label": t.title, + "group": "Topic Hub", + "section": t_group, + "val": 16, + "color": GROUP_COLORS.get(t_group, DIFFICULTY_COLORS["Topic"]), + "url": f"./{t.directory}/README.md", + "category": t.title, + "type": "topic" + }) + + # Path to Node ID map and Title to Path map + path_to_id = {q.path.resolve(): f"q:{q.id}" for q in questions} + title_to_path_map = {q.title.strip().lower(): q.path.resolve() for q in questions} + for q in questions: + title_to_path_map[f"q{q.id}"] = q.path.resolve() + title_to_path_map[f"question {q.id}"] = q.path.resolve() + title_to_path_map[f"#{q.id}"] = q.path.resolve() + + # 2. Add Question Nodes and Topic-to-Question Edges + for q in questions: + node_id = f"q:{q.id}" + topic_dir = q.path.parent.name + topic_node_id = f"topic:{topic_dir}" + t_group = meta.get(topic_dir, {}).get("group", "Other") + + nodes.append({ + "id": node_id, + "label": f"#{q.id} {q.title}", + "title": q.title, + "group": q.difficulty, + "section": t_group, + "val": 6 if q.difficulty == "Advanced" else (4 if q.difficulty == "Intermediate" else 3), + "color": DIFFICULTY_COLORS.get(q.difficulty, "#3b82f6"), + "url": f"./{q.path.relative_to(repo_root)}", + "category": q.category, + "difficulty": q.difficulty, + "tags": q.tags, + "type": "question" + }) + + # Connect Question to its Topic Node + edge_key = (topic_node_id, node_id, "topic") + if edge_key not in edge_set: + edge_set.add(edge_key) + edges.append({ + "source": topic_node_id, + "target": node_id, + "type": "topic-link", + "color": "rgba(6, 182, 212, 0.4)" + }) + + # 3. Extract Explicit Markdown Links and [[wikilinks]] between Questions + for linked_path in extract_internal_links(q.path, q.body, title_to_path_map): + if linked_path in path_to_id: + target_id = path_to_id[linked_path] + e_key = (node_id, target_id, "cross-link") + if e_key not in edge_set and (target_id, node_id, "cross-link") not in edge_set: + edge_set.add(e_key) + edges.append({ + "source": node_id, + "target": target_id, + "type": "cross-link", + "color": "rgba(59, 130, 246, 0.6)" + }) + + # 4. Connect Questions sharing identical specific tags (Tag Similarity Edges) + tag_map: dict[str, list[str]] = {} + for q in questions: + for tag in q.tags: + if tag in {"devops", "interview-questions"}: + continue # Skip generic tags + tag_map.setdefault(tag, []).append(f"q:{q.id}") + + for tag, q_ids in tag_map.items(): + if len(q_ids) > 1 and len(q_ids) <= 6: + for i in range(len(q_ids)): + for j in range(i + 1, len(q_ids)): + src, tgt = q_ids[i], q_ids[j] + e_key = (src, tgt, f"tag:{tag}") + if e_key not in edge_set and (tgt, src, f"tag:{tag}") not in edge_set: + edge_set.add(e_key) + edges.append({ + "source": src, + "target": tgt, + "type": "tag-link", + "color": "rgba(245, 158, 11, 0.2)" + }) + + return {"nodes": nodes, "links": edges} + + +HTML_TEMPLATE = """ + + + + + DevOps & Cloud Engineering Knowledge Graph + + + + + + + +
+
+ QUESTION + BEGINNER +
+

Node Info

+

+
+ View Markdown Source ↗ + +
+
+ +
+ + + + +""" + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", "-o", default="docs/index.html", help="Target output HTML file path") + args = parser.parse_args() + + graph_data = build_graph_data() + + output_path = REPO_ROOT / args.output + output_path.parent.mkdir(parents=True, exist_ok=True) + + html_content = HTML_TEMPLATE.format(graph_json=json.dumps(graph_data, indent=2)) + output_path.write_text(html_content, encoding="utf-8") + + print(f"Successfully generated DevOps Knowledge Graph UI at: {output_path}") + print(f"Nodes: {len(graph_data['nodes'])}, Edges: {len(graph_data['links'])}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/inject_wikilinks.py b/scripts/inject_wikilinks.py new file mode 100644 index 0000000..9fa950f --- /dev/null +++ b/scripts/inject_wikilinks.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +"""Inject cross-topic [[wikilinks]] between related question files. + +Scans all question files in the vault, identifies semantically related questions across +different topics based on shared concepts, tags, and key terms, and appends a structured +## Related Questions section with [[wikilinks]] (and relative markdown links for standard rendering). +""" + +from __future__ import annotations + +import sys +from pathlib import Path + +SCRIPTS_DIR = Path(__file__).resolve().parent +sys.path.insert(0, str(SCRIPTS_DIR)) + +from lib_content import REPO_ROOT, all_questions, load_topics + +# Map of related topic categories to query for cross-links +RELATED_TOPICS_MAP: dict[str, list[str]] = { + "core-devops-concepts": ["cicd", "infrastructure-as-code", "devops-culture-and-practices"], + "docker": ["kubernetes", "container-orchestration-advanced", "devsecops"], + "kubernetes": ["docker", "container-orchestration-advanced", "monitoring-and-logging"], + "cicd": ["core-devops-concepts", "devops-tools-and-automation", "devsecops"], + "cloud-platforms": ["aws-engineering", "azure-engineering", "gcp-engineering"], + "infrastructure-as-code": ["configuration-management", "cloud-engineering", "cicd"], + "monitoring-and-logging": ["infrastructure-monitoring", "site-reliability-engineering", "slo-engineering"], + "security-and-compliance": ["devsecops", "secops", "network-security"], + "linux-administration": ["scripting-and-automation", "version-control", "configuration-management"], + "version-control": ["cicd", "devops-tools-and-automation", "linux-administration"], + "aws-engineering": ["cloud-platforms", "cloud-engineering", "kubernetes"], + "azure-engineering": ["cloud-platforms", "cloud-engineering", "kubernetes"], + "gcp-engineering": ["cloud-platforms", "cloud-engineering", "kubernetes"], + "site-reliability-engineering": ["slo-engineering", "sla-management", "incident-management"], + "platform-engineering": ["infrastructure-as-code", "cloud-native-architecture", "devops-tools-and-automation"], + "scripting-and-automation": ["linux-administration", "infrastructure-as-code", "cicd"], + "interview-experience": ["core-devops-concepts", "cicd", "site-reliability-engineering"], +} + + +def build_cross_link_map(topics, questions) -> dict[int, list[int]]: + topic_first_q = {t.directory: t.questions[0].id for t in topics if t.questions} + cross_map: dict[int, list[int]] = {} + for q in questions: + t_slug = q.topic_dir + rel_slugs = RELATED_TOPICS_MAP.get( + t_slug, ["core-devops-concepts", "cicd", "docker"] + ) + target_ids = [ + topic_first_q[s] + for s in rel_slugs + if s in topic_first_q and topic_first_q[s] != q.id + ] + cross_map[q.id] = target_ids[:3] + return cross_map + + +def main(): + topics = load_topics(REPO_ROOT) + questions = all_questions(topics) + + id_to_question = {q.id: q for q in questions} + cross_link_map = build_cross_link_map(topics, questions) + + modified_count = 0 + for q_id, target_ids in cross_link_map.items(): + if q_id not in id_to_question: + continue + + q = id_to_question[q_id] + + # Build wikilink list items + wikilink_items = [] + for tid in target_ids: + if tid in id_to_question: + target_q = id_to_question[tid] + rel_path = f"../{target_q.path.parent.name}/{target_q.filename}" + # Wikilink format [[Title]] + standard markdown link format + wikilink_items.append( + f"- [[{target_q.title}]] (`#{target_q.id}`): [{target_q.title}]({rel_path})" + ) + + if not wikilink_items: + continue + + content = q.path.read_text(encoding="utf-8") + + # Check if ## Related Concepts / ## Related Questions section exists + if "## Related Concepts" in content or "## Related Questions" in content: + continue + + # Insert before footer link + footer_marker = "---" + if footer_marker in content: + parts = content.rsplit(footer_marker, 1) + related_section = "## Related Concepts\n\n" + "\n".join(wikilink_items) + "\n\n" + new_content = parts[0] + related_section + footer_marker + parts[1] + else: + new_content = content + "\n\n## Related Concepts\n\n" + "\n".join(wikilink_items) + "\n" + + q.path.write_text(new_content, encoding="utf-8") + modified_count += 1 + + print(f"Successfully processed {len(cross_link_map)} question mappings (injected into {modified_count} files).") + + +if __name__ == "__main__": + main() diff --git a/scripts/validate_content.py b/scripts/validate_content.py index bdc5581..f261057 100644 --- a/scripts/validate_content.py +++ b/scripts/validate_content.py @@ -151,7 +151,7 @@ def check_indexes(topics, errors: list[str]) -> None: def check_orphan_files(errors: list[str]) -> None: """Catch topic directories that exist on disk but are not registered, and bad filenames.""" registered = set(topic_meta()) - skip = {"scripts", ".git", ".github", "node_modules", "DevOps-Interview-Guide"} + skip = {"scripts", "docs", ".git", ".github", "node_modules", "DevOps-Interview-Guide"} for entry in sorted(p for p in REPO_ROOT.iterdir() if p.is_dir()): if entry.name in skip or entry.name.startswith("."): continue From 46926ccde85476dd41e2a138ce1db366b431ec8b Mon Sep 17 00:00:00 2001 From: mchittineni Date: Tue, 11 Aug 2026 12:47:54 +0100 Subject: [PATCH 02/48] feat(docs): generate interactive 3D DevOps knowledge graph HTML --- docs/index.html | 22326 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 22326 insertions(+) create mode 100644 docs/index.html diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..100ea98 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,22326 @@ + + + + + + DevOps & Cloud Engineering Knowledge Graph + + + + + + + +
+
+ QUESTION + BEGINNER +
+

Node Info

+

+
+ View Markdown Source ↗ + +
+
+ +
+ + + + From d4812f3c450e963e705baae1bff03af956b27e65 Mon Sep 17 00:00:00 2001 From: mchittineni Date: Tue, 11 Aug 2026 12:47:55 +0100 Subject: [PATCH 03/48] ci(.github): add GitHub Pages workflow and update PR template --- .github/pull_request_template.md | 2 +- .github/workflows/knowledge-graph.yml | 49 +++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/knowledge-graph.yml diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index ae121b3..c2a9528 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -24,6 +24,6 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md) for the full format. - [ ] **Heading** is `# ` and matches the frontmatter exactly. - [ ] **Answer structure** follows Short answer → Detail → Example → Interview tips. - [ ] **New topic only**: registered in `scripts/topic_meta.json` with an `order`, `description`, and `study_notes`. -- [ ] Ran `python3 scripts/generate_indexes.py` (indexes are generated - do not hand-edit topic READMEs or the root TOC). +- [ ] Ran `python3 scripts/generate_indexes.py` and `python3 scripts/build_knowledge_graph.py` (indexes and graph HTML are generated - do not hand-edit topic READMEs, graph HTML, or the root TOC). - [ ] Ran `python3 scripts/validate_content.py` and it passed. - [ ] Content is accurate, and any code examples actually work. diff --git a/.github/workflows/knowledge-graph.yml b/.github/workflows/knowledge-graph.yml new file mode 100644 index 0000000..19ab774 --- /dev/null +++ b/.github/workflows/knowledge-graph.yml @@ -0,0 +1,49 @@ +name: Deploy Knowledge Graph to GitHub Pages + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + + env: + PYTHON_VERSION: "3.13" + + steps: + - name: Checkout repository + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + + - name: Set up Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: ${{ env.PYTHON_VERSION }} + + - name: Build Knowledge Graph HTML + run: python3 scripts/build_knowledge_graph.py --output docs/index.html + + - name: Setup Pages + uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 + + - name: Upload Artifacts + uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 + with: + path: docs + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0 From d4f59c1f07469872dfbdf7857ced27c7ec65a955 Mon Sep 17 00:00:00 2001 From: mchittineni <manideep.chittineni@hotmail.com> Date: Tue, 11 Aug 2026 12:47:58 +0100 Subject: [PATCH 04/48] docs: document knowledge graph links, workflow badges, and contribution guide --- CONTRIBUTING.md | 8 +++++--- README.md | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index faab57d..c7d1d82 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -84,11 +84,13 @@ The `# <title>` heading must match the frontmatter exactly. Topic READMEs and the root README's table of contents are **generated**. Never edit them by hand - your change will be overwritten and CI will fail. ```bash -python3 scripts/generate_indexes.py # rewrite all indexes from the question files -python3 scripts/validate_content.py # frontmatter, naming, links, index freshness +python3 scripts/generate_indexes.py # rewrite all indexes from the question files +python3 scripts/build_knowledge_graph.py # regenerate 3D knowledge graph (docs/index.html) +python3 scripts/inject_wikilinks.py # inject cross-topic [[wikilinks]] +python3 scripts/validate_content.py # frontmatter, naming, links, index freshness ``` -Both are stdlib-only Python 3.11+ - nothing to install. +All are stdlib-only Python 3.11+ - nothing to install. Then run the two Markdown checks CI runs. Neither needs a `package.json`; `npx` fetches them on demand: diff --git a/README.md b/README.md index adc61d3..d66db02 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,13 @@ Role tracks: **DevOps** (junior → senior) · **DevSecOps** · **SecOps** · ** Every answer gives you a short answer you can say out loud, the detail and trade-offs behind it, a runnable example, and the follow-ups to expect. [![Validate](https://github.com/mchittineni/ultimate-devops-guide/actions/workflows/validate-and-format.yml/badge.svg)](https://github.com/mchittineni/ultimate-devops-guide/actions/workflows/validate-and-format.yml) +[![Deploy Knowledge Graph](https://github.com/mchittineni/ultimate-devops-guide/actions/workflows/knowledge-graph.yml/badge.svg)](https://github.com/mchittineni/ultimate-devops-guide/actions/workflows/knowledge-graph.yml) ![Questions](https://img.shields.io/badge/questions-507-blue) ![Topics](https://img.shields.io/badge/topics-40-blueviolet) ![Difficulty](https://img.shields.io/badge/difficulty-🟢%20110%20·%20🟡%20233%20·%20🔴%20164-lightgrey) ![License](https://img.shields.io/badge/license-MIT-green) -[Pick your role](#-pick-your-role) · [Browse topics](#-browse-all-topics) · [All questions](#-all-questions) · [How answers are structured](#-how-answers-are-structured) · [Contributing](./CONTRIBUTING.md) +[🌐 3D Knowledge Graph](https://mchittineni.github.io/ultimate-devops-guide/) · [Pick your role](#-pick-your-role) · [Browse topics](#-browse-all-topics) · [All questions](#-all-questions) · [How answers are structured](#-how-answers-are-structured) · [Contributing](./CONTRIBUTING.md) ⭐ Star the project if it helps you land the role. @@ -22,6 +23,18 @@ Every answer gives you a short answer you can say out loud, the detail and trade --- +## 🌐 3D DevOps Knowledge Graph + +Explore the entire repository visually through our **Interactive 3D Telemetry Graph** deployed on GitHub Pages: + +👉 **[Launch Interactive 3D Knowledge Graph](https://mchittineni.github.io/ultimate-devops-guide/)** + +- **Visual Infrastructure Mapping**: Explore relationship edges connecting all 500+ questions across 40 topics. +- **Cross-Topic Concept Wikilinks**: Discover cross-cutting concepts between Docker, Kubernetes, CI/CD, IaC, and SRE. +- **Filterable Telemetry**: Filter nodes live by difficulty, domain group, or specific keywords. + +--- + ## 🚀 Pick your role Thirteen tracks, each a reading order rather than a pile of links. Start at the left and work right. From 6e7b951ed7f9a0cba3125c5eaf4e059767ca8ee4 Mon Sep 17 00:00:00 2001 From: "coderabbitai[bot]" <136622811+coderabbitai[bot]@users.noreply.github.com> Date: Tue, 11 Aug 2026 12:07:37 +0000 Subject: [PATCH 05/48] fix: apply CodeRabbit auto-fixes Fixed 511 file(s) based on 9 unresolved review comments. Co-authored-by: CodeRabbit <noreply@coderabbit.ai> --- CONTRIBUTING.md | 2 +- ...what-is-a-playbook-in-incident-response.md | 8 + advanced-devops-cloud/what-is-a-runbook.md | 8 + .../what-is-a-self-healing-system.md | 8 + .../what-is-a-service-catalog.md | 8 + .../what-is-a-service-level-agreement-sla.md | 8 + .../what-is-a-service-level-indicator-sli.md | 8 + .../what-is-a-service-level-objective-slo.md | 8 + .../what-is-a-service-mesh-control-plane.md | 8 + .../what-is-a-sidecar-pattern.md | 8 + .../what-is-blue-green-deployment.md | 8 + .../what-is-canary-analysis.md | 8 + .../what-is-chaos-engineering.md | 8 + .../what-is-feature-flagging.md | 8 + advanced-devops-cloud/what-is-finops.md | 8 + .../what-is-github-actions.md | 8 + .../what-is-infrastructure-drift.md | 8 + .../what-is-observability.md | 8 + .../what-is-platform-engineering.md | 8 + .../what-is-policy-as-code.md | 8 + .../what-is-tracing-in-observability.md | 8 + ...-is-breaking-service-to-service-traffic.md | 8 + ...h-in-production-without-the-sidecar-tax.md | 8 + ...t-are-the-benefits-of-using-api-gateway.md | 8 + ...n-and-how-do-you-debug-a-502-503-or-504.md | 8 + .../what-is-an-api-gateway.md | 8 + .../what-is-api-documentation.md | 8 + .../what-is-api-security.md | 8 + .../what-is-rate-limiting.md | 8 + ...and-load-balancers-work-together-on-aws.md | 8 + ...bnet-without-ssh-keys-or-a-bastion-host.md | 8 + ...to-end-production-devops-project-on-aws.md | 8 + ...e-to-aws-without-long-lived-access-keys.md | 8 + ...o-s3-with-iam-boundaries-and-cloudwatch.md | 8 + ...s-codepipeline-codebuild-and-codedeploy.md | 8 + ...ow-do-you-choose-between-ebs-efs-and-s3.md | 8 + ...cies-health-checks-and-instance-refresh.md | 8 + ...-peering-transit-gateway-or-privatelink.md | 8 + ...ou-design-a-production-ready-vpc-on-aws.md | 8 + ...-run-a-highly-available-database-on-aws.md | 8 + .../how-do-you-run-a-service-on-amazon-ecs.md | 8 + ...nd-manage-the-lifecycle-of-an-s3-bucket.md | 8 + ...esources-using-eks-pod-identity-or-irsa.md | 8 + ...ucture-a-multi-account-aws-organisation.md | 8 + ...resize-an-rds-instance-without-downtime.md | 8 + ...oes-a-private-subnet-reach-the-internet.md | 8 + .../how-does-aws-iam-evaluate-a-request.md | 8 + ...s-services-a-devops-engineer-uses-daily.md | 8 + ...-types-and-how-do-you-delegate-a-domain.md | 8 + ...torage-classes-and-when-do-you-use-each.md | 8 + ...-a-gateway-versus-an-interface-endpoint.md | 8 + ...ween-a-security-group-and-a-network-acl.md | 8 + ...en-cloudwatch-cloudtrail-and-aws-config.md | 8 + ...-difference-between-ecs-eks-and-fargate.md | 8 + ...-cloudformation-cdk-or-terraform-on-aws.md | 8 + ...-end-production-devops-project-on-azure.md | 8 + ...-build-a-ci-cd-pipeline-in-azure-devops.md | 8 + ...ncer-application-gateway-and-front-door.md | 8 + ...lt-secrets-from-aks-and-azure-pipelines.md | 8 + ...-do-you-design-an-azure-virtual-network.md | 8 + ...onitor-azure-with-azure-monitor-and-kql.md | 8 + ...-the-azure-resource-hierarchy-organised.md | 8 + .../what-is-azure-kubernetes-service-aks.md | 8 + ...-policy-and-how-do-landing-zones-use-it.md | 8 + ...nd-how-does-it-compare-to-arm-templates.md | 8 + ...t-entra-id-and-how-does-azure-rbac-work.md | 8 + ...rvice-principal-and-an-app-registration.md | 8 + ...rvice-container-apps-or-azure-functions.md | 8 + ...overy-failover-with-minimal-rto-and-rpo.md | 8 + ...t-your-backups-can-actually-be-restored.md | 8 + .../what-are-backup-best-practices.md | 8 + .../what-are-different-types-of-backups.md | 8 + .../what-is-backup-and-disaster-recovery.md | 8 + .../what-is-business-continuity-planning.md | 8 + .../what-is-rpo-and-rto.md | 8 + ...-deal-with-flaky-tests-in-a-ci-pipeline.md | 8 + ...-ci-cd-for-a-microservices-architecture.md | 8 + ...rqube-and-quality-gates-into-a-pipeline.md | 8 + ...s-up-to-date-without-breaking-the-build.md | 8 + ...-handle-secret-leaks-in-ci-cd-pipelines.md | 8 + ...lease-across-dev-staging-and-production.md | 8 + ...cure-a-jenkins-controller-in-production.md | 8 + ...le-ci-cd-across-many-services-and-teams.md | 8 + ...w-do-you-speed-up-a-slow-ci-cd-pipeline.md | 8 + ...oks-polling-schedules-and-upstream-jobs.md | 8 + ...that-never-starts-or-hangs-in-the-queue.md | 8 + ...how-do-you-use-jenkins-shared-libraries.md | 8 + ...ient-and-secure-github-actions-workflow.md | 8 + cicd/what-are-jenkins-pipelines.md | 8 + cicd/what-is-ci-cd-pipeline.md | 8 + cicd/what-is-gitlab-ci.md | 8 + cicd/what-is-jenkins.md | 8 + ...arative-and-a-scripted-jenkins-pipeline.md | 8 + ...uous-delivery-and-continuous-deployment.md | 8 + ...oes-a-build-pass-locally-but-fail-in-ci.md | 8 + ...-cloud-bill-without-hurting-reliability.md | 8 + ...t-monitoring-using-opencost-or-kubecost.md | 8 + ...igate-a-sudden-spike-in-your-cloud-bill.md | 8 + .../how-to-implement-cost-tagging-strategy.md | 8 + .../what-are-cost-allocation-reports.md | 8 + .../what-are-reserved-instances.md | 8 + .../what-is-cloud-cost-optimization.md | 8 + .../what-is-spot-instance-pricing.md | 8 + ...-of-aws-azure-and-gcp-map-to-each-other.md | 8 + ...ect-an-on-premises-network-to-the-cloud.md | 8 + ...-you-design-for-multi-region-resilience.md | 8 + ...n-least-privilege-identity-in-the-cloud.md | 8 + ...u-manage-dns-and-global-traffic-routing.md | 8 + ...roubleshoot-a-dns-problem-in-production.md | 8 + ...-are-the-real-trade-offs-of-multi-cloud.md | 8 + .../what-is-a-cloud-landing-zone.md | 8 + ...y-application-and-move-it-to-kubernetes.md | 8 + ...netes-cluster-to-another-cloud-provider.md | 8 + ...se-to-the-cloud-with-near-zero-downtime.md | 8 + .../what-are-cloud-migration-strategies.md | 8 + .../what-are-cloud-migration-tools.md | 8 + .../what-is-application-modernization.md | 8 + cloud-migration/what-is-cloud-assessment.md | 8 + cloud-migration/what-is-cloud-migration.md | 8 + ...ighly-available-three-tier-architecture.md | 8 + ...latency-in-a-microservices-architecture.md | 8 + .../what-are-microservices.md | 8 + .../what-are-the-12-factor-app-principles.md | 8 + .../what-is-cloud-native-architecture.md | 8 + .../what-is-event-driven-architecture.md | 8 + .../what-is-service-mesh.md | 8 + ...ce-between-a-monolith-and-microservices.md | 8 + ...ose-a-cloud-provider-for-a-new-workload.md | 8 + ...working-differ-across-aws-azure-and-gcp.md | 8 + ...e-the-different-types-of-cloud-services.md | 8 + .../what-is-aws-amazon-web-services.md | 8 + cloud-platforms/what-is-azure.md | 8 + cloud-platforms/what-is-cloud-computing.md | 8 + .../what-is-google-cloud-platform-gcp.md | 8 + ...ifferent-configuration-management-tools.md | 8 + ...bug-and-safely-test-an-ansible-playbook.md | 8 + ...ou-handle-secrets-in-ansible-with-vault.md | 8 + ...ories-and-variables-across-environments.md | 8 + ...do-you-patch-hundreds-of-servers-safely.md | 8 + ...ible-at-scale-across-thousands-of-hosts.md | 8 + ...nsible-role-and-share-it-through-galaxy.md | 8 + configuration-management/what-is-chef.md | 8 + .../what-is-configuration-management.md | 8 + configuration-management/what-is-puppet.md | 8 + .../what-is-salt-saltstack.md | 8 + ...ack-up-and-restore-a-kubernetes-cluster.md | 8 + ...u-run-a-multi-tenant-kubernetes-cluster.md | 8 + ...ion-across-multiple-kubernetes-clusters.md | 8 + ...le-a-stateful-application-on-kubernetes.md | 8 + ...-you-troubleshoot-a-failed-helm-release.md | 8 + ...n-kubernetes-cluster-with-zero-downtime.md | 8 + ...definitions-and-operators-in-kubernetes.md | 8 + .../what-are-daemonsets-in-kubernetes.md | 8 + .../what-are-statefulsets-in-kubernetes.md | 8 + ...er-orchestration-and-why-do-you-need-it.md | 8 + ...what-is-container-runtime-interface-cri.md | 8 + .../what-is-helm.md | 8 + ...helm-chart-and-how-do-you-customise-one.md | 8 + .../what-is-istio.md | 8 + ...ly-release-process-to-daily-deployments.md | 8 + .../what-are-the-benefits-of-devops.md | 8 + .../what-is-continuous-delivery.md | 8 + .../what-is-continuous-deployment.md | 8 + .../what-is-continuous-integration.md | 8 + core-devops-concepts/what-is-devops.md | 8 + ...uction-database-schema-without-downtime.md | 8 + ...e-that-is-slow-or-timing-out-under-load.md | 8 + .../what-are-database-migration-tools.md | 8 + ...s-engineer-need-to-know-about-databases.md | 8 + .../what-is-database-backup-strategy.md | 8 + .../what-is-database-devops.md | 8 + .../what-is-database-performance-tuning.md | 8 + .../what-is-database-version-control.md | 8 + ...-scale-devops-culture-across-many-teams.md | 8 + .../what-are-devops-best-practices.md | 8 + .../what-is-blameless-culture.md | 8 + .../what-is-devops-culture.md | 8 + .../what-is-knowledge-sharing-in-devops.md | 8 + .../what-is-team-collaboration-in-devops.md | 8 + ...rogram-without-teams-gaming-the-numbers.md | 8 + .../what-are-devops-metrics.md | 8 + .../what-is-change-failure-rate.md | 8 + .../what-is-deployment-frequency.md | 8 + .../what-is-lead-time-for-changes.md | 8 + .../what-is-mean-time-to-recovery-mttr.md | 8 + ...onsolidate-a-sprawling-devops-toolchain.md | 8 + ...ild-artefacts-with-nexus-or-artifactory.md | 8 + ...ot-a-gitops-pipeline-that-will-not-sync.md | 8 + .../what-are-deployment-strategies.md | 8 + ...o-know-about-maven-as-a-devops-engineer.md | 8 + devops-tools-and-automation/what-is-argocd.md | 8 + devops-tools-and-automation/what-is-gitops.md | 8 + .../what-is-infrastructure-automation.md | 8 + devops-tools-and-automation/what-is-tekton.md | 8 + ...-control-with-kyverno-or-opa-gatekeeper.md | 8 + ...kubernetes-secrets-in-a-gitops-workflow.md | 8 + ...o-you-manage-secrets-in-ci-cd-pipelines.md | 8 + ...lnerabilities-without-blocking-delivery.md | 8 + ...-do-you-rotate-secrets-without-downtime.md | 8 + ...astructure-as-code-before-it-is-applied.md | 8 + ...do-you-sign-and-verify-container-images.md | 8 + ...devsecops-pipeline-look-like-end-to-end.md | 8 + .../what-does-shift-left-security-mean.md | 8 + ...at-is-a-software-bill-of-materials-sbom.md | 8 + ...do-you-secure-the-software-supply-chain.md | 8 + ...fference-between-sast-dast-iast-and-sca.md | 8 + docker/explain-docker-architecture.md | 8 + ...ps-and-capabilities-isolate-a-container.md | 8 + ...rden-a-container-image-and-a-dockerfile.md | 8 + ...reduce-docker-image-size-and-build-time.md | 8 + ...ot-docker-networking-between-containers.md | 8 + docker/how-does-docker-layer-caching-work.md | 8 + ...twork-types-bridge-host-overlay-macvlan.md | 8 + docker/what-is-docker-compose.md | 8 + docker/what-is-docker.md | 8 + docker/what-is-dockerfile.md | 8 + ...een-a-bind-mount-and-a-volume-in-docker.md | 8 + ...ween-cmd-and-entrypoint-in-a-dockerfile.md | 8 + ...tween-docker-image-and-docker-container.md | 8 + ...py-and-add-instructions-in-a-dockerfile.md | 8 + ...to-start-with-a-permission-denied-error.md | 8 + docs/index.html | 13606 +++++++++++++--- ...to-end-production-devops-project-on-gcp.md | 8 + ...age-google-cloud-infrastructure-as-code.md | 8 + ...e-cloud-with-the-cloud-operations-suite.md | 8 + .../how-does-iam-work-in-google-cloud.md | 8 + ...is-the-gcp-resource-hierarchy-organised.md | 8 + ...-is-cloud-run-and-when-do-you-choose-it.md | 8 + ...-between-gke-standard-and-gke-autopilot.md | 8 + ...what-makes-a-google-cloud-vpc-different.md | 8 + ...o-you-use-bigquery-cloud-sql-or-spanner.md | 8 + ...ond-when-a-deployment-breaks-production.md | 8 + ...-a-major-incident-as-incident-commander.md | 8 + .../what-are-incident-severity-levels.md | 8 + .../what-is-an-incident-response-plan.md | 8 + .../what-is-incident-management.md | 8 + .../what-is-on-call-management.md | 8 + .../what-is-post-mortem-analysis.md | 8 + ...ing-cloud-infrastructure-into-terraform.md | 8 + ...manage-terraform-state-safely-in-a-team.md | 8 + ...-lost-or-corrupted-terraform-state-file.md | 8 + ...-run-terraform-through-a-ci-cd-pipeline.md | 8 + ...rom-destroying-or-recreating-a-resource.md | 8 + ...for-multiple-environments-and-providers.md | 8 + ...d-structure-a-reusable-terraform-module.md | 8 + .../what-are-terraform-providers.md | 8 + ...isioners-and-when-should-you-avoid-them.md | 8 + ...init-plan-apply-and-refresh-actually-do.md | 8 + infrastructure-as-code/what-is-ansible.md | 8 + ...-infrastructure-and-how-do-you-adopt-it.md | 8 + .../what-is-infrastructure-as-code.md | 8 + infrastructure-as-code/what-is-terraform.md | 8 + ...ifference-between-ansible-and-terraform.md | 8 + ...between-count-and-for-each-in-terraform.md | 8 + ...itoring-to-an-application-that-has-none.md | 8 + ...ardinality-and-monitoring-cost-at-scale.md | 8 + .../what-are-monitoring-best-practices.md | 8 + .../what-are-monitoring-tools.md | 8 + ...t-is-application-performance-monitoring.md | 8 + .../what-is-infrastructure-monitoring.md | 8 + .../what-is-log-management.md | 8 + ...cenario-based-troubleshooting-questions.md | 8 + ...ain-your-devops-project-in-an-interview.md | 8 + ...you-handle-a-devops-system-design-round.md | 8 + ...uently-asked-devops-interview-questions.md | 8 + ...s-come-up-when-the-company-is-not-named.md | 8 + ...devops-interview-questions-does-ibm-ask.md | 8 + ...s-come-up-when-the-company-is-not-named.md | 8 + ...ng-interview-questions-does-turning-ask.md | 8 + ...eering-interview-questions-does-ust-ask.md | 8 + ...d-sre-interview-questions-does-nice-ask.md | 8 + ...ecurity-interview-questions-does-f5-ask.md | 8 + ...re-interview-questions-does-infosys-ask.md | 8 + ...e-interview-questions-does-jpmorgan-ask.md | 8 + ...nd-sre-interview-questions-does-tcs-ask.md | 8 + ...ant-interview-questions-does-amazon-ask.md | 8 + ...s-come-up-when-the-company-is-not-named.md | 8 + ...-interview-questions-does-accenture-ask.md | 8 + ...s-interview-questions-does-accolite-ask.md | 8 + ...-interview-questions-does-alphadyne-ask.md | 8 + ...evops-interview-questions-does-amex-ask.md | 8 + ...iew-questions-does-arrise-solutions-ask.md | 8 + ...ops-interview-questions-does-aspire-ask.md | 8 + ...ops-interview-questions-does-belcan-ask.md | 8 + ...nterview-questions-does-blue-yonder-ask.md | 8 + ...erview-questions-does-bmw-techworks-ask.md | 8 + ...-interview-questions-does-capgemini-ask.md | 8 + ...devops-interview-questions-does-cgi-ask.md | 8 + ...vops-interview-questions-does-cisco-ask.md | 8 + ...erview-questions-does-cts-cognizant-ask.md | 8 + ...s-interview-questions-does-deloitte-ask.md | 8 + ...interview-questions-does-elixr-labs-ask.md | 8 + ...s-interview-questions-does-emphasis-ask.md | 8 + ...ops-interview-questions-does-encora-ask.md | 8 + ...evops-interview-questions-does-epam-ask.md | 8 + ...nterview-questions-does-exl-service-ask.md | 8 + ...-devops-interview-questions-does-ey-ask.md | 8 + ...vops-interview-questions-does-five9-ask.md | 8 + ...ps-interview-questions-does-flentas-ask.md | 8 + ...devops-interview-questions-does-hcl-ask.md | 8 + ...s-interview-questions-does-hexaware-ask.md | 8 + ...w-questions-does-infinite-solutions-ask.md | 8 + ...uestions-does-intact-green-services-ask.md | 8 + ...terview-questions-does-itc-infotech-ask.md | 8 + ...rview-questions-does-koerber-pharma-ask.md | 8 + ...ps-interview-questions-does-l-and-t-ask.md | 8 + ...nterview-questions-does-ltimindtree-ask.md | 8 + ...rview-questions-does-marsh-mclennan-ask.md | 8 + ...erview-questions-does-natwest-group-ask.md | 8 + ...interview-questions-does-netcracker-ask.md | 8 + ...s-interview-questions-does-nextturn-ask.md | 8 + ...w-questions-does-nisum-technologies-ask.md | 8 + ...rview-questions-does-nitor-infotech-ask.md | 8 + ...evops-interview-questions-does-npci-ask.md | 8 + ...ew-questions-does-nuos-info-systems-ask.md | 8 + ...vops-interview-questions-does-one2n-ask.md | 8 + ...ops-interview-questions-does-opt-it-ask.md | 8 + ...vops-interview-questions-does-optum-ask.md | 8 + ...ops-interview-questions-does-oracle-ask.md | 8 + ...iew-questions-does-orion-innovation-ask.md | 8 + ...ps-interview-questions-does-perfios-ask.md | 8 + ...w-questions-does-persistent-systems-ask.md | 8 + ...questions-does-plansource-valuelabs-ask.md | 8 + ...tions-does-publicis-global-delivery-ask.md | 8 + ...ops-interview-questions-does-qburst-ask.md | 8 + ...w-questions-does-qentelli-solutions-ask.md | 8 + ...-interview-questions-does-rapidsoft-ask.md | 8 + ...-interview-questions-does-relevantz-ask.md | 8 + ...devops-interview-questions-does-sap-ask.md | 8 + ...ps-interview-questions-does-sapient-ask.md | 8 + ...ps-interview-questions-does-sigmoid-ask.md | 8 + ...view-questions-does-sonata-software-ask.md | 8 + ...evops-interview-questions-does-sony-ask.md | 8 + ...-interview-questions-does-squareops-ask.md | 8 + ...-interview-questions-does-synechron-ask.md | 8 + ...s-interview-questions-does-techdome-ask.md | 8 + ...ps-interview-questions-does-verizon-ask.md | 8 + ...tions-does-volkswagen-group-digital-ask.md | 8 + ...rview-questions-does-wikreate-media-ask.md | 8 + ...vops-interview-questions-does-wipro-ask.md | 8 + ...ops-interview-questions-does-zensar-ask.md | 8 + ...s-interview-questions-does-zopsmart-ask.md | 8 + ...erview-questions-does-zs-associates-ask.md | 8 + ...s-come-up-when-the-company-is-not-named.md | 8 + ...ad-interview-questions-does-virtusa-ask.md | 8 + ...ical-devops-interview-process-look-like.md | 8 + ...ops-interview-questions-does-moodys-ask.md | 8 + ...ew-questions-does-commonwealth-bank-ask.md | 8 + ...estions-should-you-ask-your-interviewer.md | 8 + ...rview-questions-does-morgan-stanley-ask.md | 8 + ...-interview-questions-does-syncortex-ask.md | 8 + ...s-come-up-when-the-company-is-not-named.md | 8 + ...nterview-questions-does-accion-labs-ask.md | 8 + ...sre-interview-questions-does-akamai-ask.md | 8 + ...interview-questions-does-altimetrik-ask.md | 8 + ...terview-questions-does-amadeus-labs-ask.md | 8 + ...at-sre-interview-questions-does-cmt-ask.md | 8 + ...nce-between-docker-swarm-and-kubernetes.md | 8 + ...ow-do-you-debug-one-that-blocks-traffic.md | 8 + ...ess-readiness-and-startup-probes-differ.md | 8 + ...mits-and-qos-classes-work-in-kubernetes.md | 8 + ...scale-workloads-and-nodes-in-kubernetes.md | 8 + ...do-you-control-which-node-a-pod-runs-on.md | 8 + ...tes-ingress-that-is-not-routing-traffic.md | 8 + ...on-failures-inside-a-kubernetes-cluster.md | 8 + ...ning-in-kubernetes-to-the-outside-world.md | 8 + ...ressure-and-pod-evictions-in-kubernetes.md | 8 + ...oll-back-a-rolling-update-in-kubernetes.md | 8 + ...tes-job-or-cronjob-that-never-completes.md | 8 + ...hoot-a-kubernetes-node-that-is-notready.md | 8 + ...ubernetes-service-that-has-no-endpoints.md | 8 + ...od-stuck-in-pending-or-crashloopbackoff.md | 8 + ...uck-waiting-for-a-persistentvolumeclaim.md | 8 + ...s-persistent-storage-work-in-kubernetes.md | 8 + ...nd-service-discovery-work-in-kubernetes.md | 8 + .../how-does-rbac-work-in-kubernetes.md | 8 + ...rs-and-sidecar-containers-in-kubernetes.md | 8 + ...n-components-of-kubernetes-architecture.md | 8 + ...rnetes-control-plane-node-or-etcd-fails.md | 8 + kubernetes/what-is-a-pod-in-kubernetes.md | 8 + ...sruptionbudget-and-when-do-you-need-one.md | 8 + kubernetes/what-is-a-service-in-kubernetes.md | 8 + kubernetes/what-is-kubernetes.md | 8 + ...-a-configmap-and-a-secret-in-kubernetes.md | 8 + ...gs-and-text-files-with-grep-awk-and-sed.md | 8 + ...rformance-problem-from-first-principles.md | 8 + ...x-processes-signals-and-resource-limits.md | 8 + ...nage-disks-filesystems-and-lvm-on-linux.md | 8 + .../how-do-you-manage-services-in-linux.md | 8 + ...edule-work-with-cron-and-systemd-timers.md | 8 + ...igh-cpu-and-disk-space-on-linux-servers.md | 8 + .../walk-through-the-linux-boot-process.md | 8 + ...mands-every-devops-engineer-should-know.md | 8 + .../what-is-linux-file-system-hierarchy.md | 8 + .../what-is-shell-scripting.md | 8 + linux-administration/what-is-systemd.md | 8 + ...nce-between-a-hard-link-and-a-soft-link.md | 8 + ...fference-between-monitoring-and-logging.md | 8 + ...-do-the-elk-and-efk-stacks-fit-together.md | 8 + ...pipeline-that-stays-affordable-at-scale.md | 8 + ...e-promql-queries-and-alertmanager-rules.md | 8 + ...trics-and-what-components-sit-around-it.md | 8 + monitoring-and-logging/what-is-elk-stack.md | 8 + monitoring-and-logging/what-is-grafana.md | 8 + .../what-is-monitoring-in-devops.md | 8 + monitoring-and-logging/what-is-prometheus.md | 8 + ...gn-defence-in-depth-for-a-cloud-network.md | 8 + ...u-manage-tls-certificates-in-production.md | 8 + ...how-do-you-plan-cidr-ranges-and-subnets.md | 8 + ...ation-against-the-owasp-top-10-and-ddos.md | 8 + ...ser-opens-your-application-in-a-browser.md | 8 + .../what-is-a-web-application-firewall-waf.md | 8 + .../what-is-network-security-in-devops.md | 8 + .../what-is-network-segmentation.md | 8 + network-security/what-is-ssl-tls.md | 8 + ...een-a-reverse-proxy-and-a-forward-proxy.md | 8 + ...t-is-the-difference-between-tcp-and-udp.md | 8 + .../what-is-zero-trust-security.md | 8 + ...you-load-test-safely-against-production.md | 8 + ...how-to-analyze-performance-test-results.md | 8 + ...re-different-types-of-performance-tests.md | 8 + ...-are-performance-testing-best-practices.md | 8 + .../what-are-performance-testing-tools.md | 8 + .../what-is-performance-testing.md | 8 + ...rving-with-vllm-or-triton-on-kubernetes.md | 8 + ...ases-in-kubernetes-for-rag-applications.md | 8 + ...on-mlops-pipeline-using-ray-or-kubeflow.md | 8 + ...o-you-measure-the-success-of-a-platform.md | 8 + ...for-latency-gpu-metrics-and-token-costs.md | 8 + ...d-autoscale-gpu-workloads-in-kubernetes.md | 8 + ...self-service-environments-to-developers.md | 8 + ...ll-out-breaking-platform-changes-safely.md | 8 + ...ow-do-you-treat-a-platform-as-a-product.md | 8 + ...latform-engineer-actually-do-day-to-day.md | 8 + platform-engineering/what-is-a-golden-path.md | 8 + ...t-is-an-internal-developer-platform-idp.md | 8 + platform-engineering/what-is-backstage.md | 8 + ...ne-and-how-does-it-compare-to-terraform.md | 8 + ...em-to-degrade-gracefully-under-overload.md | 8 + ...-5xx-errors-or-sending-traffic-unevenly.md | 8 + .../what-is-auto-scaling.md | 8 + .../what-is-disaster-recovery.md | 8 + .../what-is-high-availability.md | 8 + .../what-is-load-balancing.md | 8 + .../what-is-scalability-in-devops.md | 8 + ...n-a-layer-4-and-a-layer-7-load-balancer.md | 8 + ...ling-not-kick-in-during-a-traffic-spike.md | 8 + ...oc-scripts-into-maintainable-automation.md | 8 + ...ou-write-a-production-grade-bash-script.md | 8 + ...-exercises-come-up-in-devops-interviews.md | 8 + ...you-use-python-for-as-a-devops-engineer.md | 8 + ...-exercises-come-up-in-devops-interviews.md | 8 + ...you-use-bash-and-when-do-you-use-python.md | 8 + scripts/build_knowledge_graph.py | 192 +- scripts/inject_wikilinks.py | 171 +- ...do-you-run-a-security-incident-response.md | 8 + ...oes-a-security-operations-center-soc-do.md | 8 + ...s-a-siem-and-how-do-you-make-one-useful.md | 8 + secops/what-is-detection-engineering.md | 8 + ...r-and-how-does-it-differ-from-antivirus.md | 8 + ...soar-and-what-should-you-automate-first.md | 8 + .../what-is-the-mitre-att-and-ck-framework.md | 8 + secops/what-is-threat-hunting.md | 8 + ...checks-for-pci-dss-soc-2-hipaa-and-gdpr.md | 8 + ...t-are-security-best-practices-in-devops.md | 8 + .../what-is-compliance-as-code.md | 8 + .../what-is-container-security.md | 8 + security-and-compliance/what-is-devsecops.md | 8 + .../what-is-infrastructure-security.md | 8 + ...d-pipeline-for-a-serverless-application.md | 8 + ...sign-a-serverless-system-for-production.md | 8 + ...itor-and-debug-a-serverless-application.md | 8 + .../what-are-serverless-best-practices.md | 8 + .../what-are-the-benefits-of-serverless.md | 8 + serverless-architecture/what-is-aws-lambda.md | 8 + .../what-is-function-as-a-service-faas.md | 8 + .../what-is-serverless-computing.md | 8 + ...-do-you-design-alerts-that-page-a-human.md | 8 + .../how-do-you-do-capacity-planning.md | 8 + .../what-are-service-level-indicators-slis.md | 8 + .../what-are-service-level-objectives-slos.md | 8 + .../what-is-a-production-readiness-review.md | 8 + .../what-is-error-budget.md | 8 + .../what-is-site-reliability-engineering.md | 8 + ...een-sre-devops-and-platform-engineering.md | 8 + .../what-is-toil-in-sre.md | 8 + sla-management/how-do-service-credits-work.md | 8 + ...wed-downtime-for-an-availability-target.md | 8 + ...posite-availability-across-dependencies.md | 8 + ...-you-report-sla-compliance-to-customers.md | 8 + .../what-belongs-in-a-well-written-sla.md | 8 + .../what-do-you-do-when-you-breach-an-sla.md | 8 + ...between-an-sla-an-slo-an-sli-and-an-ola.md | 8 + .../how-do-you-choose-an-slo-target.md | 8 + ...os-for-batch-and-asynchronous-workloads.md | 8 + ...le-slos-for-dependencies-you-do-not-own.md | 8 + ...-do-you-measure-a-latency-sli-correctly.md | 8 + ...-need-before-you-can-set-your-first-slo.md | 8 + .../what-is-an-error-budget-policy.md | 8 + ...s-multi-window-multi-burn-rate-alerting.md | 8 + ...at-tooling-do-you-use-to-implement-slos.md | 8 + ...-recover-from-a-bad-git-history-rewrite.md | 8 + .../how-do-you-undo-changes-in-git-safely.md | 8 + ...d-linting-testing-and-commit-validation.md | 8 + .../how-to-handle-merge-conflicts-in-git.md | 8 + .../what-is-git-branching-strategy.md | 8 + version-control/what-is-git-flow.md | 8 + version-control/what-is-git.md | 8 + ...etween-git-fetch-git-pull-and-git-clone.md | 8 + ...etween-git-merge-rebase-and-cherry-pick.md | 8 + .../what-is-trunk-based-development.md | 8 + 511 files changed, 15520 insertions(+), 2507 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c7d1d82..7281546 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -85,8 +85,8 @@ Topic READMEs and the root README's table of contents are **generated**. Never e ```bash python3 scripts/generate_indexes.py # rewrite all indexes from the question files -python3 scripts/build_knowledge_graph.py # regenerate 3D knowledge graph (docs/index.html) python3 scripts/inject_wikilinks.py # inject cross-topic [[wikilinks]] +python3 scripts/build_knowledge_graph.py # regenerate 3D knowledge graph (docs/index.html) python3 scripts/validate_content.py # frontmatter, naming, links, index freshness ``` diff --git a/advanced-devops-cloud/what-is-a-playbook-in-incident-response.md b/advanced-devops-cloud/what-is-a-playbook-in-incident-response.md index e82357f..519805c 100644 --- a/advanced-devops-cloud/what-is-a-playbook-in-incident-response.md +++ b/advanced-devops-cloud/what-is-a-playbook-in-incident-response.md @@ -44,6 +44,14 @@ tags: - Decision authority ("who can declare, who can approve failover") is what playbooks uniquely provide. - Mention regulatory notification deadlines for security incidents; it shows breadth beyond the technical. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[What is Docker?]] (`#6`): [What is Docker?](../docker/what-is-docker.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-a-runbook.md b/advanced-devops-cloud/what-is-a-runbook.md index 81687fd..676da2d 100644 --- a/advanced-devops-cloud/what-is-a-runbook.md +++ b/advanced-devops-cloud/what-is-a-runbook.md @@ -70,6 +70,14 @@ Not resolved in 20 minutes → page the platform on-call (#incident channel). - Linking runbooks directly from alert annotations is the practical detail that shows experience. - Note that runbooks decay - validating them during game days is how you keep them true. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-a-self-healing-system.md b/advanced-devops-cloud/what-is-a-self-healing-system.md index 3c56ac6..9953b7f 100644 --- a/advanced-devops-cloud/what-is-a-self-healing-system.md +++ b/advanced-devops-cloud/what-is-a-self-healing-system.md @@ -39,6 +39,14 @@ tags: - Kubernetes reconciliation is the canonical example; explain the control loop rather than naming the feature. - Graceful shutdown and idempotency as prerequisites shows you understand what makes it safe. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-a-service-catalog.md b/advanced-devops-cloud/what-is-a-service-catalog.md index baa90ad..818c054 100644 --- a/advanced-devops-cloud/what-is-a-service-catalog.md +++ b/advanced-devops-cloud/what-is-a-service-catalog.md @@ -38,6 +38,14 @@ tags: - Deployment gated on registration is a strong enforcement mechanism worth naming. - Scorecards turning a catalogue into a driver of standards is the mature use case. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-a-service-level-agreement-sla.md b/advanced-devops-cloud/what-is-a-service-level-agreement-sla.md index 8860e08..8d5b24a 100644 --- a/advanced-devops-cloud/what-is-a-service-level-agreement-sla.md +++ b/advanced-devops-cloud/what-is-a-service-level-agreement-sla.md @@ -42,6 +42,14 @@ tags: - Note that service credits rarely compensate the actual business loss - SLAs are not insurance. - The measurement definition and exclusions matter more than the percentage; saying so shows commercial awareness. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-a-service-level-indicator-sli.md b/advanced-devops-cloud/what-is-a-service-level-indicator-sli.md index ed16412..3cf5259 100644 --- a/advanced-devops-cloud/what-is-a-service-level-indicator-sli.md +++ b/advanced-devops-cloud/what-is-a-service-level-indicator-sli.md @@ -40,6 +40,14 @@ tags: - Latency as "proportion under a threshold" rather than a percentile is a subtle differentiator. - Discuss the measurement point; measuring inside the application misses whole categories of user-visible failure. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-a-service-level-objective-slo.md b/advanced-devops-cloud/what-is-a-service-level-objective-slo.md index a81cb0a..dc6a94a 100644 --- a/advanced-devops-cloud/what-is-a-service-level-objective-slo.md +++ b/advanced-devops-cloud/what-is-a-service-level-objective-slo.md @@ -35,6 +35,14 @@ tags: - "100% is the wrong target" plus the cost-curve reasoning is the SRE point to land. - Mention reviewing SLOs periodically; a target set once and never revisited stops reflecting reality. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md) +- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-a-service-mesh-control-plane.md b/advanced-devops-cloud/what-is-a-service-mesh-control-plane.md index 6b07a2b..e08e257 100644 --- a/advanced-devops-cloud/what-is-a-service-mesh-control-plane.md +++ b/advanced-devops-cloud/what-is-a-service-mesh-control-plane.md @@ -35,6 +35,14 @@ tags: - Fail-static behaviour during control-plane downtime is the detail that demonstrates operational depth. - Certificate issuance and rotation is the control plane's most valuable function - do not reduce it to routing. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-a-sidecar-pattern.md b/advanced-devops-cloud/what-is-a-sidecar-pattern.md index fcd2fa7..d0cd631 100644 --- a/advanced-devops-cloud/what-is-a-sidecar-pattern.md +++ b/advanced-devops-cloud/what-is-a-sidecar-pattern.md @@ -56,6 +56,14 @@ spec: - Multiply the overhead by pod count to show scale awareness. - Mention ambient mesh and eBPF as the emerging alternative - it demonstrates you are current. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +- [[What is GitLab CI?]] (`#19`): [What is GitLab CI?](../cicd/what-is-gitlab-ci.md) +- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-blue-green-deployment.md b/advanced-devops-cloud/what-is-blue-green-deployment.md index 48f3d05..a7273fe 100644 --- a/advanced-devops-cloud/what-is-blue-green-deployment.md +++ b/advanced-devops-cloud/what-is-blue-green-deployment.md @@ -41,6 +41,14 @@ tags: - Contrast with canary on rollback speed versus blast radius; that trade-off is the interesting part. - Mention connection draining and background jobs; they are what actually break in practice. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-canary-analysis.md b/advanced-devops-cloud/what-is-canary-analysis.md index be08576..17c8aca 100644 --- a/advanced-devops-cloud/what-is-canary-analysis.md +++ b/advanced-devops-cloud/what-is-canary-analysis.md @@ -61,6 +61,14 @@ spec: - Statistical significance and warm-up periods show you have tuned this, not just enabled it. - Include a business metric in the analysis - it is what catches the failures monitoring misses. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-chaos-engineering.md b/advanced-devops-cloud/what-is-chaos-engineering.md index 7a4131a..25e9fa5 100644 --- a/advanced-devops-cloud/what-is-chaos-engineering.md +++ b/advanced-devops-cloud/what-is-chaos-engineering.md @@ -38,6 +38,14 @@ tags: - The abort condition and stop button are the safety details interviewers listen for. - "Do not start chaos engineering before you have observability" is a mature caveat. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-feature-flagging.md b/advanced-devops-cloud/what-is-feature-flagging.md index 2069bf9..4a68259 100644 --- a/advanced-devops-cloud/what-is-feature-flagging.md +++ b/advanced-devops-cloud/what-is-feature-flagging.md @@ -46,6 +46,14 @@ return enabled ? newCheckout(cart) : legacyCheckout(cart); // default false = sa - Flag debt and expiry dates is the operational reality most candidates omit. - A safe default when the flag service is unreachable is a small detail that shows production thinking. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-finops.md b/advanced-devops-cloud/what-is-finops.md index d44fb87..26ce229 100644 --- a/advanced-devops-cloud/what-is-finops.md +++ b/advanced-devops-cloud/what-is-finops.md @@ -35,6 +35,14 @@ tags: - Unit economics over absolute spend is the insight that separates FinOps from cost-cutting. - Infracost in pull requests is a concrete, modern practice worth naming. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-github-actions.md b/advanced-devops-cloud/what-is-github-actions.md index 36b9ad7..f8d2381 100644 --- a/advanced-devops-cloud/what-is-github-actions.md +++ b/advanced-devops-cloud/what-is-github-actions.md @@ -67,6 +67,14 @@ jobs: - Pinning actions to a SHA is a supply-chain detail that distinguishes serious users. - Environments with required reviewers is how approval gates are done properly - not a manual step in a script. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-infrastructure-drift.md b/advanced-devops-cloud/what-is-infrastructure-drift.md index f95bb80..2eb0a51 100644 --- a/advanced-devops-cloud/what-is-infrastructure-drift.md +++ b/advanced-devops-cloud/what-is-infrastructure-drift.md @@ -53,6 +53,14 @@ terraform plan -detailed-exitcode -lock=false - Emphasise process alongside tooling: break-glass access with mandatory reconciliation afterwards. - Note that automatic reconciliation is not always safe - reverting a fix during an incident is a real risk. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-observability.md b/advanced-devops-cloud/what-is-observability.md index dedff23..c2a759b 100644 --- a/advanced-devops-cloud/what-is-observability.md +++ b/advanced-devops-cloud/what-is-observability.md @@ -41,6 +41,14 @@ The pillars framing is useful but incomplete. What actually delivers observabili - Cardinality as the enabler of observability - and the enemy of Prometheus - is a nuanced point worth making. - OpenTelemetry plus correlation IDs is the concrete implementation answer. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-platform-engineering.md b/advanced-devops-cloud/what-is-platform-engineering.md index 3e55295..d783cab 100644 --- a/advanced-devops-cloud/what-is-platform-engineering.md +++ b/advanced-devops-cloud/what-is-platform-engineering.md @@ -37,6 +37,14 @@ tags: - Cognitive load (from Team Topologies) is the theoretical grounding worth naming. - Adoption as a voluntary metric, not a mandate, is the test of whether a platform is any good. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-policy-as-code.md b/advanced-devops-cloud/what-is-policy-as-code.md index 1da8f97..653f35f 100644 --- a/advanced-devops-cloud/what-is-policy-as-code.md +++ b/advanced-devops-cloud/what-is-policy-as-code.md @@ -55,6 +55,14 @@ spec: - Layering CI checks with admission control - fast feedback plus real enforcement - is the architecture point. - Emphasise actionable violation messages; it is what determines whether engineers accept the system. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/advanced-devops-cloud/what-is-tracing-in-observability.md b/advanced-devops-cloud/what-is-tracing-in-observability.md index bf61721..d0664e0 100644 --- a/advanced-devops-cloud/what-is-tracing-in-observability.md +++ b/advanced-devops-cloud/what-is-tracing-in-observability.md @@ -48,6 +48,14 @@ trace_id=b7e1 ├─ gateway 240ms - Context propagation across queues is the most common real-world instrumentation gap. - Adding business attributes to spans is what elevates tracing from debugging to product insight. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md) diff --git a/api-gateway-and-service-mesh/how-do-you-debug-a-service-mesh-that-is-breaking-service-to-service-traffic.md b/api-gateway-and-service-mesh/how-do-you-debug-a-service-mesh-that-is-breaking-service-to-service-traffic.md index 9098f6a..97ab1cd 100644 --- a/api-gateway-and-service-mesh/how-do-you-debug-a-service-mesh-that-is-breaking-service-to-service-traffic.md +++ b/api-gateway-and-service-mesh/how-do-you-debug-a-service-mesh-that-is-breaking-service-to-service-traffic.md @@ -140,6 +140,14 @@ spec: - Say that you would rule out plain Kubernetes first: no endpoints or a NetworkPolicy drop will be reported by the mesh as an upstream failure. - Close with `outlierDetection` and circuit-breaker limits as things you tune rather than disable, and note that `503 UO` means your own connection-pool limits, not the backend. See [what is a service mesh](../cloud-native-architecture/what-is-service-mesh.md) and [what is Istio](../container-orchestration-advanced/what-is-istio.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md) diff --git a/api-gateway-and-service-mesh/how-do-you-run-a-service-mesh-in-production-without-the-sidecar-tax.md b/api-gateway-and-service-mesh/how-do-you-run-a-service-mesh-in-production-without-the-sidecar-tax.md index df08308..ba80145 100644 --- a/api-gateway-and-service-mesh/how-do-you-run-a-service-mesh-in-production-without-the-sidecar-tax.md +++ b/api-gateway-and-service-mesh/how-do-you-run-a-service-mesh-in-production-without-the-sidecar-tax.md @@ -109,6 +109,14 @@ istioctl upgrade --revision canary-1-24 # revisioned control plane, one namespa - Have a control-plane failure story: proxies keep last-known-good config, so the failure surfaces on the next deploy. Alerting on config convergence is the senior detail. - Be willing to say "we did not need a mesh" for a small estate. Knowing when the answer is a gateway plus a library is a strength, not a gap. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md) diff --git a/api-gateway-and-service-mesh/what-are-the-benefits-of-using-api-gateway.md b/api-gateway-and-service-mesh/what-are-the-benefits-of-using-api-gateway.md index ac81390..5432aa1 100644 --- a/api-gateway-and-service-mesh/what-are-the-benefits-of-using-api-gateway.md +++ b/api-gateway-and-service-mesh/what-are-the-benefits-of-using-api-gateway.md @@ -41,6 +41,14 @@ tags: - Response aggregation for mobile clients is a concrete, memorable example. - Balance the answer with the costs; a purely positive answer sounds rehearsed. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md) diff --git a/api-gateway-and-service-mesh/what-do-the-common-http-status-codes-mean-and-how-do-you-debug-a-502-503-or-504.md b/api-gateway-and-service-mesh/what-do-the-common-http-status-codes-mean-and-how-do-you-debug-a-502-503-or-504.md index e56b0ac..4c91bb6 100644 --- a/api-gateway-and-service-mesh/what-do-the-common-http-status-codes-mean-and-how-do-you-debug-a-502-503-or-504.md +++ b/api-gateway-and-service-mesh/what-do-the-common-http-status-codes-mean-and-how-do-you-debug-a-502-503-or-504.md @@ -193,6 +193,14 @@ The timeout ladder - get this wrong and you generate your own 504s - Draw the **timeout ladder** and state the rule that timeouts decrease with depth. Then add that retrying a 504 amplifies load, so retries must be bounded, jittered, idempotent-only, and paired with a circuit breaker. - For "deployment succeeded but I get a 404", say it is routing rather than the workload - ingress host/path rules, path rewriting, `targetPort`, and the app's base path - and note that you can tell a proxy 404 from an application 404 by the response headers. See [what is an API gateway](./what-is-an-api-gateway.md), [debugging a Kubernetes Ingress that is not routing traffic](../kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md), [troubleshooting a load balancer returning 5xx errors](../scalability-and-high-availability/how-do-you-troubleshoot-a-load-balancer-returning-5xx-errors-or-sending-traffic-unevenly.md), [troubleshooting high latency in a microservices architecture](../cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md), and [a Service that has no endpoints](../kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md) diff --git a/api-gateway-and-service-mesh/what-is-an-api-gateway.md b/api-gateway-and-service-mesh/what-is-an-api-gateway.md index 9ab84c1..479c1a5 100644 --- a/api-gateway-and-service-mesh/what-is-an-api-gateway.md +++ b/api-gateway-and-service-mesh/what-is-an-api-gateway.md @@ -40,6 +40,14 @@ Without a gateway, every client must know every service's address, and every ser - Backend-for-frontend is a good pattern to mention - a tailored gateway per client type. - Warn against business logic in the gateway; it shows architectural judgement. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md) diff --git a/api-gateway-and-service-mesh/what-is-api-documentation.md b/api-gateway-and-service-mesh/what-is-api-documentation.md index c51d7ba..7ec0460 100644 --- a/api-gateway-and-service-mesh/what-is-api-documentation.md +++ b/api-gateway-and-service-mesh/what-is-api-documentation.md @@ -63,6 +63,14 @@ paths: - Contract testing in CI is how you prove docs and implementation agree - mention it. - Note that error documentation is the most commonly missing and most needed section. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md) diff --git a/api-gateway-and-service-mesh/what-is-api-security.md b/api-gateway-and-service-mesh/what-is-api-security.md index b2db6b1..068b4b3 100644 --- a/api-gateway-and-service-mesh/what-is-api-security.md +++ b/api-gateway-and-service-mesh/what-is-api-security.md @@ -48,6 +48,14 @@ plugins: - Distinguish authentication from authorisation cleanly and early. - Mention API inventory and schema validation; both indicate real-world experience. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +- [[What is GitLab CI?]] (`#19`): [What is GitLab CI?](../cicd/what-is-gitlab-ci.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md) diff --git a/api-gateway-and-service-mesh/what-is-rate-limiting.md b/api-gateway-and-service-mesh/what-is-rate-limiting.md index c75c296..bda4696 100644 --- a/api-gateway-and-service-mesh/what-is-rate-limiting.md +++ b/api-gateway-and-service-mesh/what-is-rate-limiting.md @@ -55,6 +55,14 @@ return 1 - Returning `Retry-After` and rate-limit headers shows API design maturity. - Mention that clients should implement exponential backoff with jitter in response. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md b/aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md index 7e8c743..91627c0 100644 --- a/aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md +++ b/aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md @@ -76,6 +76,14 @@ resource "aws_autoscaling_policy" "api_rps" { - Deregistration delay plus `SIGTERM` handling is the answer to "why do we see 502s during deploys?". - Expect: "which metric would you scale on?" - reject CPU as a reflex and name the actual bottleneck. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md b/aws-engineering/how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md index f58a13f..7d0d486 100644 --- a/aws-engineering/how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md +++ b/aws-engineering/how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md @@ -183,6 +183,14 @@ nslookup ssmmessages.eu-west-1.amazonaws.com # 3. private IP => endpoint reac - For patching private instances with no internet, answer SSM Patch Manager over VPC endpoints with an internal repository or S3-hosted mirror - not "open the NAT". - Finish with the design position: no `key_name`, no inbound rules, interactive access as an audited exception, and frequent shell access treated as a signal of missing automation or observability. See [how does a private subnet reach the internet](./how-does-a-private-subnet-reach-the-internet.md), [what are VPC endpoints](./what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md), [troubleshooting SSH failures on Linux](../linux-administration/how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md), and [designing least-privilege identity in the cloud](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md) +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[How do you troubleshoot a Kubernetes node that is NotReady?]] (`#449`): [How do you troubleshoot a Kubernetes node that is NotReady?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-node-that-is-notready.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-aws.md b/aws-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-aws.md index 305973a..18e8523 100644 --- a/aws-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-aws.md +++ b/aws-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-aws.md @@ -99,6 +99,14 @@ module "eks" { - Emphasize keyless identity: explain why using **EKS Pod Identity** or **IRSA** and **GitHub Actions OIDC** is superior to static IAM access keys. - Address cost optimization: mention using Karpenter to schedule Spot Instances for stateless workloads while keeping Aurora and EKS control plane highly available. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md b/aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md index d034227..c5e0974 100644 --- a/aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md +++ b/aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md @@ -214,6 +214,14 @@ aws configure list | grep token - Volunteer **IMDSv2 required** as hardening, and explain the SSRF attack it blocks. It is specific, it is real, and few candidates raise it. - Cover the migration honestly: credential report, SCP denying `iam:CreateAccessKey`, deactivate-before-delete, secret scanning, and GuardDuty for credentials used from unexpected locations. Then say why keys appear in the first place - the keyless path was inconvenient - and fix that with `aws sso login` profiles. See [how does AWS IAM evaluate a request](./how-does-aws-iam-evaluate-a-request.md), [securing Pod access to AWS resources with EKS Pod Identity or IRSA](./how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md), [designing least-privilege identity in the cloud](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md), and [running Terraform through a CI/CD pipeline](../infrastructure-as-code/how-do-you-run-terraform-through-a-ci-cd-pipeline.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md) +- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-automate-ec2-log-shipping-to-s3-with-iam-boundaries-and-cloudwatch.md b/aws-engineering/how-do-you-automate-ec2-log-shipping-to-s3-with-iam-boundaries-and-cloudwatch.md index a87804c..c4d4a4f 100644 --- a/aws-engineering/how-do-you-automate-ec2-log-shipping-to-s3-with-iam-boundaries-and-cloudwatch.md +++ b/aws-engineering/how-do-you-automate-ec2-log-shipping-to-s3-with-iam-boundaries-and-cloudwatch.md @@ -89,6 +89,14 @@ Fluent Bit configuration on EC2 instance (`/etc/fluent-bit/fluent-bit.conf`): - Discuss **S3 Lifecycle rules**: move logs from S3 Standard to S3 Infrequent Access (IA) after 30 days, Glacier Flexible Retrieval after 90 days, and expire/delete after retention requirements (e.g., 365 days). - Address high-volume log cost management: gzip compression, buffering before writing to S3, and avoiding writing micro-batches to save on S3 `PutObject` API call costs. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md b/aws-engineering/how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md index 562b353..4539909 100644 --- a/aws-engineering/how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md +++ b/aws-engineering/how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md @@ -90,6 +90,14 @@ Hooks: - Highlight **ECS Blue/Green deployment with AWS CodeDeploy & AWS CodePipeline**: explain how CodeDeploy creates a new ECS task set, routes test traffic to a test listener port, executes a validation Lambda hook, and shifts ALB production traffic dynamically. - Mention security best practices: grant CodeBuild and CodeDeploy minimal IAM service roles, storing secrets in AWS Secrets Manager or Parameter Store (`/aws/reference/secretsmanager/secret_name`). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-choose-between-ebs-efs-and-s3.md b/aws-engineering/how-do-you-choose-between-ebs-efs-and-s3.md index 4bd64e4..dabaa08 100644 --- a/aws-engineering/how-do-you-choose-between-ebs-efs-and-s3.md +++ b/aws-engineering/how-do-you-choose-between-ebs-efs-and-s3.md @@ -145,6 +145,14 @@ spec: - For shared storage in EKS, answer EFS CSI for `ReadWriteMany` - and add the nuance that `ReadWriteOnce` means one **node**, so co-located Pods can share an EBS volume. - Say explicitly that S3 is not a filesystem - no appends, rename is copy-and-delete, no locking - and that mounting it does not change that. Then round out the answer with instance store (ephemeral, fastest) and FSx (SMB/Lustre) for the lift-and-shift cases. See [what are the S3 storage classes](./what-are-the-s3-storage-classes-and-when-do-you-use-each.md), [securing and managing the lifecycle of an S3 bucket](./how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md), [how does persistent storage work in Kubernetes](../kubernetes/how-does-persistent-storage-work-in-kubernetes.md), and [containerising a legacy application](../cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-configure-auto-scaling-group-policies-health-checks-and-instance-refresh.md b/aws-engineering/how-do-you-configure-auto-scaling-group-policies-health-checks-and-instance-refresh.md index 960faf0..ad055d6 100644 --- a/aws-engineering/how-do-you-configure-auto-scaling-group-policies-health-checks-and-instance-refresh.md +++ b/aws-engineering/how-do-you-configure-auto-scaling-group-policies-health-checks-and-instance-refresh.md @@ -204,6 +204,14 @@ aws cloudwatch list-metrics --namespace CWAgent --metric-name mem_used_percent - Bring up connection draining (target group deregistration delay) and lifecycle hooks for graceful shutdown, plus termination policies and scale-in protection. - Mention mixed instances with Spot and `capacity-optimized` allocation as a real cost lever, with the interruption-handling caveat. And for "instances should replace themselves when they fail", answer ASG with min=max=1 plus health checks and an immutable AMI. See [how do Auto Scaling groups and load balancers work together on AWS](./how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md), [why did your autoscaling not kick in during a traffic spike](../scalability-and-high-availability/why-did-your-autoscaling-not-kick-in-during-a-traffic-spike.md), [what is immutable infrastructure](../infrastructure-as-code/what-is-immutable-infrastructure-and-how-do-you-adopt-it.md), and [troubleshooting a load balancer returning 5xx errors](../scalability-and-high-availability/how-do-you-troubleshoot-a-load-balancer-returning-5xx-errors-or-sending-traffic-unevenly.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do requests, limits, and QoS classes work in Kubernetes?]] (`#444`): [How do requests, limits, and QoS classes work in Kubernetes?](../kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md) +- [[What happens when a Kubernetes control-plane node or etcd fails?]] (`#448`): [What happens when a Kubernetes control-plane node or etcd fails?](../kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md) +- [[How do you troubleshoot a DNS problem in production?]] (`#435`): [How do you troubleshoot a DNS problem in production?](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md b/aws-engineering/how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md index 2937386..72c98f9 100644 --- a/aws-engineering/how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md +++ b/aws-engineering/how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md @@ -162,6 +162,14 @@ aws ec2 create-network-insights-path --source i-0abc --destination i-0def \ - Mention cost as a design input: peering has no hourly charge, TGW charges per attachment-hour plus per GB, and a hybrid (TGW backbone plus direct peering for the two chattiest pairs) is a legitimate optimisation. - Add appliance mode for stateful inspection and per-AZ attachments for cost and latency - both are details only practitioners mention. See [what are VPC endpoints](./what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md), [structuring a multi-account AWS organisation](./how-do-you-structure-a-multi-account-aws-organisation.md), [connecting an on-premises network to the cloud](../cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md), and [designing a production-ready VPC](./how-do-you-design-a-production-ready-vpc-on-aws.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you connect an on-premises network to the cloud?]] (`#216`): [How do you connect an on-premises network to the cloud?](../cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md) +- [[How do you manage DNS and global traffic routing?]] (`#220`): [How do you manage DNS and global traffic routing?](../cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md) +- [[How do you troubleshoot a DNS problem in production?]] (`#435`): [How do you troubleshoot a DNS problem in production?](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md b/aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md index c8c52e1..ab7d229 100644 --- a/aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md +++ b/aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md @@ -59,6 +59,14 @@ module "vpc" { - EKS IP exhaustion with the VPC CNI is the practical war story worth naming. - Expect: "security groups or NACLs?" - security groups referencing security groups, with NACLs as a coarse guardrail only. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md b/aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md index ba2fb4c..d3073b8 100644 --- a/aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md +++ b/aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md @@ -71,6 +71,14 @@ Application requirements, not optional: - Naming the DNS-cache and connection-lifetime pitfalls is the detail that shows you have lived through a failover. - Expect: "what is your RTO?" - tie it to _tested_ restore time, and admit if you have not tested it. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-run-a-service-on-amazon-ecs.md b/aws-engineering/how-do-you-run-a-service-on-amazon-ecs.md index 6155e2f..c025a75 100644 --- a/aws-engineering/how-do-you-run-a-service-on-amazon-ecs.md +++ b/aws-engineering/how-do-you-run-a-service-on-amazon-ecs.md @@ -200,6 +200,14 @@ aws ecs execute-command --cluster prod --task "$TASK_ARN" \ - Know `aws ecs execute-command` as the way into a container, and the `stoppedReason`/`exitCode` diagnostic path (`CannotPullContainerError`, 137 for OOM, ELB health check failures). - Give a fair ECS-versus-EKS answer: ECS for lowest operational burden on AWS, EKS for the Kubernetes ecosystem and portability. See [what is the difference between ECS, EKS, and Fargate](./what-is-the-difference-between-ecs-eks-and-fargate.md), [building a CI/CD pipeline with CodePipeline, CodeBuild, and CodeDeploy](./how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md), [what are deployment strategies](../devops-tools-and-automation/what-are-deployment-strategies.md), and [what are VPC endpoints](./what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[How does persistent storage work in Kubernetes?]] (`#443`): [How does persistent storage work in Kubernetes?](../kubernetes/how-does-persistent-storage-work-in-kubernetes.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md b/aws-engineering/how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md index d0463cc..9b60c30 100644 --- a/aws-engineering/how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md +++ b/aws-engineering/how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md @@ -209,6 +209,14 @@ aws accessanalyzer list-findings --analyzer-arn "$ANALYZER" # unintended publi - For static websites, give the private-bucket-plus-CloudFront-with-OAC pattern rather than the legacy public website endpoint. - Have the "policy allows but access is denied" checklist ready: explicit deny, SCP, permissions boundary, KMS key policy, missing bucket-level ARN, or a source condition. See [what are the S3 storage classes](./what-are-the-s3-storage-classes-and-when-do-you-use-each.md), [how does AWS IAM evaluate a request](./how-does-aws-iam-evaluate-a-request.md), [what are VPC endpoints](./what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md), and [choosing between EBS, EFS, and S3](./how-do-you-choose-between-ebs-efs-and-s3.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md b/aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md index a9b572f..6521b96 100644 --- a/aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md +++ b/aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md @@ -119,6 +119,14 @@ aws eks create-pod-identity-association \ - Explain the security flaw of node-level IAM roles (Instance Profiles): every pod on the node inherits the node's IAM permissions unless IRSA or Pod Identity is enforced. - Mention `sts:AssumeRoleWithWebIdentity` for IRSA vs `sts:AssumeRole` with `sts:TagSession` for EKS Pod Identity. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md b/aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md index 642530d..bc8d6d0 100644 --- a/aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md +++ b/aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md @@ -81,6 +81,14 @@ The management (payer) account holds nothing but Organizations, billing, and the - Naming the log-archive account that workload accounts cannot write to shows you think about an attacker with admin. - Expect: "how do you stop an engineer spinning up GPUs in an unapproved region?" - a region-deny SCP plus budgets in the account baseline. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-do-you-upgrade-scale-and-resize-an-rds-instance-without-downtime.md b/aws-engineering/how-do-you-upgrade-scale-and-resize-an-rds-instance-without-downtime.md index ad11740..e0a30a3 100644 --- a/aws-engineering/how-do-you-upgrade-scale-and-resize-an-rds-instance-without-downtime.md +++ b/aws-engineering/how-do-you-upgrade-scale-and-resize-an-rds-instance-without-downtime.md @@ -180,6 +180,14 @@ aws cloudwatch get-metric-statistics --namespace AWS/RDS --metric-name FreeStora - For major upgrades, name **blue/green deployments**, the lack of rollback, and the pre-flight work (extensions, deprecated syntax, plan regressions on a restored snapshot). - For storage at 95%, give the immediate online action (autoscaling or increase), the investigation (bloat, WAL/binlog retention, unvacuumed tables), and the two constraints - you cannot shrink, and there is a cooldown. See [running a highly available database on AWS](./how-do-you-run-a-highly-available-database-on-aws.md), [troubleshooting a database that is slow or timing out](../database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md), [changing a production schema without downtime](../database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md), and [migrating a production database to the cloud](../cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[What is a PodDisruptionBudget and when do you need one?]] (`#446`): [What is a PodDisruptionBudget and when do you need one?](../kubernetes/what-is-a-poddisruptionbudget-and-when-do-you-need-one.md) +- [[What happens when a Kubernetes control-plane node or etcd fails?]] (`#448`): [What happens when a Kubernetes control-plane node or etcd fails?](../kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-does-a-private-subnet-reach-the-internet.md b/aws-engineering/how-does-a-private-subnet-reach-the-internet.md index 1da12ff..6b8c53f 100644 --- a/aws-engineering/how-does-a-private-subnet-reach-the-internet.md +++ b/aws-engineering/how-does-a-private-subnet-reach-the-internet.md @@ -152,6 +152,14 @@ aws cloudwatch get-metric-statistics --namespace AWS/NATGateway \ - For inbound to private subnets, draw the path: Route 53 → public ALB → private targets → data tier, with security groups chained by reference. Then add SSM Session Manager and PrivateLink as the non-NAT inbound answers. - Mention the egress-only internet gateway for IPv6 - there is no NAT in IPv6, and few candidates know the equivalent. See [designing a production-ready VPC on AWS](./how-do-you-design-a-production-ready-vpc-on-aws.md), [security groups versus network ACLs](./what-is-the-difference-between-a-security-group-and-a-network-acl.md), [accessing an instance in a private subnet without SSH keys or a bastion](./how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md), and [designing a secure, highly available three-tier architecture](../cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How does Pod networking and service discovery work in Kubernetes?]] (`#447`): [How does Pod networking and service discovery work in Kubernetes?](../kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md) +- [[How do you troubleshoot a Kubernetes Service that has no endpoints?]] (`#403`): [How do you troubleshoot a Kubernetes Service that has no endpoints?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md) +- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/how-does-aws-iam-evaluate-a-request.md b/aws-engineering/how-does-aws-iam-evaluate-a-request.md index f843df4..0e7d53a 100644 --- a/aws-engineering/how-does-aws-iam-evaluate-a-request.md +++ b/aws-engineering/how-does-aws-iam-evaluate-a-request.md @@ -68,6 +68,14 @@ tags: - Describe boundaries as an intersection - it explains permission boundaries and session policies in one sentence. - Expect: "how would you prove this role is least privilege?" - Access Analyzer policy generation from CloudTrail, plus last-accessed data. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[How does networking differ across AWS, Azure, and GCP?]] (`#282`): [How does networking differ across AWS, Azure, and GCP?](../cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md) +- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/what-are-the-core-aws-services-a-devops-engineer-uses-daily.md b/aws-engineering/what-are-the-core-aws-services-a-devops-engineer-uses-daily.md index 1cd2827..78d5142 100644 --- a/aws-engineering/what-are-the-core-aws-services-a-devops-engineer-uses-daily.md +++ b/aws-engineering/what-are-the-core-aws-services-a-devops-engineer-uses-daily.md @@ -83,6 +83,14 @@ resource "aws_instance" "app" { - Mention tagging (`Environment`, `Owner`, `CostCenter`) unprompted - it connects to cost and governance questions later. - If you have only used one provider, say so plainly and map the concepts: VPC ≈ VNet, IAM role ≈ managed identity, S3 ≈ Blob Storage. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/what-are-the-dns-record-types-and-how-do-you-delegate-a-domain.md b/aws-engineering/what-are-the-dns-record-types-and-how-do-you-delegate-a-domain.md index 28514d9..c980e10 100644 --- a/aws-engineering/what-are-the-dns-record-types-and-how-do-you-delegate-a-domain.md +++ b/aws-engineering/what-are-the-dns-record-types-and-how-do-you-delegate-a-domain.md @@ -177,6 +177,14 @@ aws route53 list-hosted-zones --query "HostedZones[?Name=='example.com.'].[Id,Co - If routing policies come up, name them and then make the key point: DNS does not notice failures by itself - **health checks** are what stop a dead address being handed out. - Add the certificate links - ACM's DNS validation CNAME must stay in place for renewals, CAA restricts which CAs may issue, and a wildcard covers one level only. See [managing DNS and global traffic routing](../cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md), [troubleshooting a DNS problem in production](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md), [managing TLS certificates in production](../network-security/how-do-you-manage-tls-certificates-in-production.md), and [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a DNS problem in production?]] (`#435`): [How do you troubleshoot a DNS problem in production?](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md) +- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md) +- [[How do you manage DNS and global traffic routing?]] (`#220`): [How do you manage DNS and global traffic routing?](../cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md b/aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md index d81ebb0..b6a592f 100644 --- a/aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md +++ b/aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md @@ -66,6 +66,14 @@ tags: - Minimum-duration charges and the incomplete-multipart cleanup rule are the two details that mark real bill-owning experience. - Push back firmly on "durability means we do not need backups": versioning, Object Lock, and replication protect against deletion; durability does not. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +- [[How do you design least-privilege identity in the cloud?]] (`#217`): [How do you design least-privilege identity in the cloud?](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md b/aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md index 576a221..81ac77f 100644 --- a/aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md +++ b/aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md @@ -174,6 +174,14 @@ aws cloudwatch get-metric-statistics --namespace AWS/NATGateway \ - Have the two failure modes ready: private DNS disabled (or VPC DNS attributes off) so traffic silently uses the public endpoint, and a security group on the endpoint ENI that does not allow 443. - Close with PrivateLink for your own services as the answer to overlapping CIDRs where peering or Transit Gateway is not an option. See [how does a private subnet reach the internet](./how-does-a-private-subnet-reach-the-internet.md), [connecting many VPCs](./how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md), [designing a production-ready VPC](./how-do-you-design-a-production-ready-vpc-on-aws.md), and [cutting a cloud bill without hurting reliability](../cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you debug DNS resolution failures inside a Kubernetes cluster?]] (`#404`): [How do you debug DNS resolution failures inside a Kubernetes cluster?](../kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md) +- [[How do requests, limits, and QoS classes work in Kubernetes?]] (`#444`): [How do requests, limits, and QoS classes work in Kubernetes?](../kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md) +- [[How does Pod networking and service discovery work in Kubernetes?]] (`#447`): [How does Pod networking and service discovery work in Kubernetes?](../kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md b/aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md index 872fad0..2f7909c 100644 --- a/aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md +++ b/aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md @@ -156,6 +156,14 @@ aws ec2 describe-security-groups --query \ - If asked "do I need a NACL when I already have a security group?", say usually not for access control, and name the three genuine cases: explicit deny, subnet-wide guardrail for defence in depth or compliance, and isolating a sensitive subnet. - Close with debugging: VPC Flow Logs plus Reachability Analyzer, which names the blocking component instead of leaving you to guess. See [designing a production-ready VPC on AWS](./how-do-you-design-a-production-ready-vpc-on-aws.md), [how does a private subnet reach the internet](./how-does-a-private-subnet-reach-the-internet.md), [defence in depth for a cloud network](../network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md), and [what is network segmentation](../network-security/what-is-network-segmentation.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you debug DNS resolution failures inside a Kubernetes cluster?]] (`#404`): [How do you debug DNS resolution failures inside a Kubernetes cluster?](../kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md) +- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md) +- [[How do you debug a Kubernetes Ingress that is not routing traffic?]] (`#406`): [How do you debug a Kubernetes Ingress that is not routing traffic?](../kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/what-is-the-difference-between-cloudwatch-cloudtrail-and-aws-config.md b/aws-engineering/what-is-the-difference-between-cloudwatch-cloudtrail-and-aws-config.md index e5ecfb7..5c6f0d6 100644 --- a/aws-engineering/what-is-the-difference-between-cloudwatch-cloudtrail-and-aws-config.md +++ b/aws-engineering/what-is-the-difference-between-cloudwatch-cloudtrail-and-aws-config.md @@ -163,6 +163,14 @@ aws configservice select-resource-config \ - Tell the incident narrative rather than three definitions - alarm, log query, CloudTrail lookup, Config diff, then the preventive control. It reads as experience. - Close on cost: set retention on every log group, restrict Config's recorded resource types, and enable data events selectively. Unbounded log retention is the classic surprise bill. See [what is monitoring in DevOps](../monitoring-and-logging/what-is-monitoring-in-devops.md), [designing a logging pipeline that stays affordable at scale](../monitoring-and-logging/how-do-you-design-a-logging-pipeline-that-stays-affordable-at-scale.md), [automating compliance checks](../security-and-compliance/how-do-you-automate-compliance-checks-for-pci-dss-soc-2-hipaa-and-gdpr.md), and [what is infrastructure drift](../advanced-devops-cloud/what-is-infrastructure-drift.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[How do you debug DNS resolution failures inside a Kubernetes cluster?]] (`#404`): [How do you debug DNS resolution failures inside a Kubernetes cluster?](../kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md) +- [[How do you troubleshoot a Kubernetes Job or CronJob that never completes?]] (`#408`): [How do you troubleshoot a Kubernetes Job or CronJob that never completes?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-job-or-cronjob-that-never-completes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md b/aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md index e06a97e..4c9fe22 100644 --- a/aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md +++ b/aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md @@ -66,6 +66,14 @@ tags: - Naming Karpenter and the EKS version-support treadmill shows current, hands-on knowledge. - Expect: "when would you not choose Kubernetes?" - answer honestly; recommending EKS unconditionally reads as inexperience. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/aws-engineering/when-do-you-choose-cloudformation-cdk-or-terraform-on-aws.md b/aws-engineering/when-do-you-choose-cloudformation-cdk-or-terraform-on-aws.md index fbf0d94..4879c25 100644 --- a/aws-engineering/when-do-you-choose-cloudformation-cdk-or-terraform-on-aws.md +++ b/aws-engineering/when-do-you-choose-cloudformation-cdk-or-terraform-on-aws.md @@ -77,6 +77,14 @@ export class SecureBucket extends Construct { - Mention the BUSL licence change and OpenTofu factually; interviewers use it to see whether you follow the ecosystem. - Expect: "how do you stop console changes?" - drift detection, plan gates in CI, and IAM that denies humans write access in production. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the different types of cloud services?]] (`#25`): [What are the different types of cloud services?](../cloud-platforms/what-are-the-different-types-of-cloud-services.md) +- [[How do you choose a cloud provider for a new workload?]] (`#281`): [How do you choose a cloud provider for a new workload?](../cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md) +- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md b/azure-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md index 34eade2..5969252 100644 --- a/azure-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md +++ b/azure-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md @@ -118,6 +118,14 @@ resource aksCluster 'Microsoft.ContainerService/managedClusters@2023-10-01' = { - Emphasize **Azure Workload Identity**: explain how it replaces static Azure Service Principal client secrets in CI/CD pipelines and AKS pods with OIDC federated tokens. - Address PaaS isolation: always mention using **Azure Private Endpoints** and **Azure Private DNS Zones** to secure Azure Key Vault, ACR, and Azure SQL DB from public internet access. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/how-do-you-build-a-ci-cd-pipeline-in-azure-devops.md b/azure-engineering/how-do-you-build-a-ci-cd-pipeline-in-azure-devops.md index 8871e59..e2ed796 100644 --- a/azure-engineering/how-do-you-build-a-ci-cd-pipeline-in-azure-devops.md +++ b/azure-engineering/how-do-you-build-a-ci-cd-pipeline-in-azure-devops.md @@ -232,6 +232,14 @@ az devops invoke --area distributedtask --resource environmentdeploymentrecords - Prefer **pipeline artefacts** over build artefacts and be able to say why (faster, better for large files and cross-stage handoff). - For fifty applications, answer with a shared, versioned template repository consumed via `extends`, and mention that an `extends` template can enforce steps a consumer cannot remove. See [how do you scale CI/CD across many services and teams](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md), [consuming Azure Key Vault secrets from AKS and Azure Pipelines](./how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md), [architecting an end-to-end production DevOps project on Azure](./how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md), and [promoting a release across dev, staging, and production](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md) +- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/how-do-you-choose-between-azure-load-balancer-application-gateway-and-front-door.md b/azure-engineering/how-do-you-choose-between-azure-load-balancer-application-gateway-and-front-door.md index 590d71e..cb1ee09 100644 --- a/azure-engineering/how-do-you-choose-between-azure-load-balancer-application-gateway-and-front-door.md +++ b/azure-engineering/how-do-you-choose-between-azure-load-balancer-application-gateway-and-front-door.md @@ -208,6 +208,14 @@ openssl s_client -connect www.example.com:443 -servername www.example.com </dev/ - Say WAF goes into **Detection** mode first. Deploying straight to Prevention against a live application causes an outage. - For the 404/502-with-healthy-backends scenario, walk the layers in order - listener host match, path rule, real backend health with the probe's own host and status match, backend HTTP settings, NSG/subnet reachability, then rewriting - and name diagnostic logs plus a KQL query as how you would actually find it. See [how do you design an Azure virtual network](./how-do-you-design-an-azure-virtual-network.md), [what is Azure Kubernetes Service (AKS)](./what-is-azure-kubernetes-service-aks.md), [what is a layer 4 versus a layer 7 load balancer](../scalability-and-high-availability/what-is-the-difference-between-a-layer-4-and-a-layer-7-load-balancer.md), and [protecting a public web application against the OWASP Top 10 and DDoS](../network-security/how-do-you-protect-a-public-web-application-against-the-owasp-top-10-and-ddos.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a DNS problem in production?]] (`#435`): [How do you troubleshoot a DNS problem in production?](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md) +- [[How do you debug a Kubernetes Ingress that is not routing traffic?]] (`#406`): [How do you debug a Kubernetes Ingress that is not routing traffic?](../kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md) +- [[What happens when a Kubernetes control-plane node or etcd fails?]] (`#448`): [What happens when a Kubernetes control-plane node or etcd fails?](../kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md b/azure-engineering/how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md index 25a86c6..340aed2 100644 --- a/azure-engineering/how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md +++ b/azure-engineering/how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md @@ -185,6 +185,14 @@ steps: - Prefer **Azure RBAC over access policies**, a **vault per environment**, purge protection on, and diagnostic logs to Log Analytics for the "who read this secret?" audit trail. - Close by mapping the pattern to AWS (IRSA / Pod Identity) and GCP (Workload Identity) to show you understand federation rather than one product. See [what is Azure Kubernetes Service (AKS)](./what-is-azure-kubernetes-service-aks.md), [what is Microsoft Entra ID and how does Azure RBAC work](./what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md), [ConfigMaps and Secrets in Kubernetes](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md), and [rotating secrets without downtime](../devsecops/how-do-you-rotate-secrets-without-downtime.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md) +- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md) +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/how-do-you-design-an-azure-virtual-network.md b/azure-engineering/how-do-you-design-an-azure-virtual-network.md index e979f9e..e8ab222 100644 --- a/azure-engineering/how-do-you-design-an-azure-virtual-network.md +++ b/azure-engineering/how-do-you-design-an-azure-virtual-network.md @@ -100,6 +100,14 @@ resource vnet 'Microsoft.Network/virtualNetworks@2023-11-01' = { - Private endpoints plus linked private DNS zones - and naming DNS as the usual failure - signals hands-on experience. - Expect: "how does traffic leave?" - explicit NAT gateway or Firewall, and mention SNAT port exhaustion. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/how-do-you-monitor-azure-with-azure-monitor-and-kql.md b/azure-engineering/how-do-you-monitor-azure-with-azure-monitor-and-kql.md index 90b1983..995a88f 100644 --- a/azure-engineering/how-do-you-monitor-azure-with-azure-monitor-and-kql.md +++ b/azure-engineering/how-do-you-monitor-azure-with-azure-monitor-and-kql.md @@ -55,6 +55,14 @@ AzureActivity - "Filter on TimeGenerated first" is the KQL performance answer; be ready to write a small query on a whiteboard. - Expect: "how do you guarantee every resource sends logs?" - a `DeployIfNotExists` Azure Policy, not a checklist. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/how-is-the-azure-resource-hierarchy-organised.md b/azure-engineering/how-is-the-azure-resource-hierarchy-organised.md index f518132..e45306a 100644 --- a/azure-engineering/how-is-the-azure-resource-hierarchy-organised.md +++ b/azure-engineering/how-is-the-azure-resource-hierarchy-organised.md @@ -50,6 +50,14 @@ Tenant root group - The tags-do-not-inherit detail and the policy `modify` fix is a strong practical addition. - Expect the AWS comparison: subscription ≈ account, management group ≈ OU, resource group has no AWS equivalent. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +- [[What are the different types of cloud services?]] (`#25`): [What are the different types of cloud services?](../cloud-platforms/what-are-the-different-types-of-cloud-services.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/what-is-azure-kubernetes-service-aks.md b/azure-engineering/what-is-azure-kubernetes-service-aks.md index aeb0295..1820d01 100644 --- a/azure-engineering/what-is-azure-kubernetes-service-aks.md +++ b/azure-engineering/what-is-azure-kubernetes-service-aks.md @@ -77,6 +77,14 @@ spec: - Say that the network plugin choice is immutable and explain the IP-exhaustion trade-off. - Expect: "how do you handle upgrades?" - surge upgrades, PDBs, maintenance windows, and the roughly-annual version cadence. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/what-is-azure-policy-and-how-do-landing-zones-use-it.md b/azure-engineering/what-is-azure-policy-and-how-do-landing-zones-use-it.md index 5dc0552..cf2d35b 100644 --- a/azure-engineering/what-is-azure-policy-and-how-do-landing-zones-use-it.md +++ b/azure-engineering/what-is-azure-policy-and-how-do-landing-zones-use-it.md @@ -79,6 +79,14 @@ az policy assignment create \ - "Audit first, then Deny, with expiring exemptions" is the rollout discipline interviewers want to hear. - Expect the AWS comparison: Azure Policy is closer to Config rules plus SCPs combined, and unlike SCPs it can remediate. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you choose a cloud provider for a new workload?]] (`#281`): [How do you choose a cloud provider for a new workload?](../cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md) +- [[How does networking differ across AWS, Azure, and GCP?]] (`#282`): [How does networking differ across AWS, Azure, and GCP?](../cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md) +- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/what-is-bicep-and-how-does-it-compare-to-arm-templates.md b/azure-engineering/what-is-bicep-and-how-does-it-compare-to-arm-templates.md index 628ea22..e3e8eb9 100644 --- a/azure-engineering/what-is-bicep-and-how-does-it-compare-to-arm-templates.md +++ b/azure-engineering/what-is-bicep-and-how-does-it-compare-to-arm-templates.md @@ -87,6 +87,14 @@ az deployment group what-if --resource-group rg-checkout-prod-weu \ - Incremental versus Complete mode is the trap; volunteering it shows you have deployed for real. - Expect: "Bicep or Terraform?" - decide by whether Azure is your only provider, and mention module registries either way. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What are the different types of cloud services?]] (`#25`): [What are the different types of cloud services?](../cloud-platforms/what-are-the-different-types-of-cloud-services.md) +- [[How do you choose a cloud provider for a new workload?]] (`#281`): [How do you choose a cloud provider for a new workload?](../cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md b/azure-engineering/what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md index 9b70f6c..bf923eb 100644 --- a/azure-engineering/what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md +++ b/azure-engineering/what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md @@ -55,6 +55,14 @@ az role assignment create \ - Managed identities and workload identity federation are the answers to every "how do you avoid secrets?" follow-up. - Mention PIM plus Conditional Access for human access, and Azure Policy for what RBAC cannot express. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/what-is-the-difference-between-a-managed-identity-a-service-principal-and-an-app-registration.md b/azure-engineering/what-is-the-difference-between-a-managed-identity-a-service-principal-and-an-app-registration.md index 87c9e41..ef23c94 100644 --- a/azure-engineering/what-is-the-difference-between-a-managed-identity-a-service-principal-and-an-app-registration.md +++ b/azure-engineering/what-is-the-difference-between-a-managed-identity-a-service-principal-and-an-app-registration.md @@ -145,6 +145,14 @@ az monitor activity-log list --caller "$APP_ID" --start-time "$(date -u -d '-7 d - Mention that roles are assigned to the **service principal**, at the resource or resource-group scope, using built-in least-privilege roles rather than Contributor. - Close by mapping to AWS (instance profile / task role / IRSA, and OIDC role trust) and GCP (attached service account, Workload Identity Federation) so it is clear you understand federation as a pattern. See [what is Microsoft Entra ID and how does Azure RBAC work](./what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md), [how is the Azure resource hierarchy organised](./how-is-the-azure-resource-hierarchy-organised.md), [authenticating to AWS without long-lived access keys](../aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md), and [designing least-privilege identity in the cloud](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md) +- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md) +- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/azure-engineering/when-do-you-choose-app-service-container-apps-or-azure-functions.md b/azure-engineering/when-do-you-choose-app-service-container-apps-or-azure-functions.md index f2c7231..b611403 100644 --- a/azure-engineering/when-do-you-choose-app-service-container-apps-or-azure-functions.md +++ b/azure-engineering/when-do-you-choose-app-service-container-apps-or-azure-functions.md @@ -57,6 +57,14 @@ az containerapp ingress traffic set --name checkout --resource-group rg-checkout - Naming KEDA behind Container Apps and Flex Consumption for Functions shows current knowledge. - Expect: "why not AKS for everything?" - operational cost, upgrade treadmill, and no business value unless you need the API. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md) +- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md) +- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md) diff --git a/backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md b/backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md index 6823ec3..80254ce 100644 --- a/backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md +++ b/backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md @@ -95,6 +95,14 @@ aws rds failover-global-cluster \ - Explain the trade-offs: Active-Active provides zero downtime but introduces split-brain risks, data consistency complexity, and doubled infrastructure costs. - Emphasize regular **Game Days** (Chaos Engineering / simulated region outages) to validate that automated failover runbooks actually work when real outages occur. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md) diff --git a/backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md b/backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md index 96d8f0c..1fcdb8f 100644 --- a/backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md +++ b/backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md @@ -150,6 +150,14 @@ groups: - Distinguish data verification from a DR game day: the former tests technology, the latter tests runbooks, permissions, DNS, and people. Interviewers want to hear you have done the second. - Close on alerting for **staleness** as well as failure, because a verification job that quietly stopped is indistinguishable from a passing one until the day it matters. See [what is business continuity planning](./what-is-business-continuity-planning.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +- [[How do you take a monthly release process to daily deployments?]] (`#285`): [How do you take a monthly release process to daily deployments?](../core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md) diff --git a/backup-and-disaster-recovery/what-are-backup-best-practices.md b/backup-and-disaster-recovery/what-are-backup-best-practices.md index 117ee77..0a7c3f3 100644 --- a/backup-and-disaster-recovery/what-are-backup-best-practices.md +++ b/backup-and-disaster-recovery/what-are-backup-best-practices.md @@ -47,6 +47,14 @@ aws s3api put-object-lock-configuration --bucket acme-backups \ - Immutability plus a separate account is the ransomware answer. - Close on restore testing with a real number - it is the most credible thing you can say about backups. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md) diff --git a/backup-and-disaster-recovery/what-are-different-types-of-backups.md b/backup-and-disaster-recovery/what-are-different-types-of-backups.md index 1364997..48ac66d 100644 --- a/backup-and-disaster-recovery/what-are-different-types-of-backups.md +++ b/backup-and-disaster-recovery/what-are-different-types-of-backups.md @@ -39,6 +39,14 @@ tags: - Application-consistent backups for databases is the detail that shows production experience. - Always close with verification: checksums, test restores, and monitoring of backup job outcomes. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md) diff --git a/backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md b/backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md index a7d6804..f2492d2 100644 --- a/backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md +++ b/backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md @@ -40,6 +40,14 @@ The uncomfortable truth interviewers probe: most organisations have backups; far - Volunteer a restore-testing cadence before being asked. - Note that replication is not backup: it faithfully replicates a deletion or corruption too. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Docker Compose?]] (`#9`): [What is Docker Compose?](../docker/what-is-docker-compose.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md) diff --git a/backup-and-disaster-recovery/what-is-business-continuity-planning.md b/backup-and-disaster-recovery/what-is-business-continuity-planning.md index 7d87cc5..5e0ae39 100644 --- a/backup-and-disaster-recovery/what-is-business-continuity-planning.md +++ b/backup-and-disaster-recovery/what-is-business-continuity-planning.md @@ -36,6 +36,14 @@ For a DevOps engineer, the practical contributions are: keeping the dependency m - Name the BIA as the source of RTO/RPO targets. - The best practical point: store the plan and credentials somewhere that survives the outage the plan is for. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md) diff --git a/backup-and-disaster-recovery/what-is-rpo-and-rto.md b/backup-and-disaster-recovery/what-is-rpo-and-rto.md index bf86ba6..4da0924 100644 --- a/backup-and-disaster-recovery/what-is-rpo-and-rto.md +++ b/backup-and-disaster-recovery/what-is-rpo-and-rto.md @@ -45,6 +45,14 @@ Picture an outage on a timeline: - Note the synchronous-replication latency cost - it shows you understand the trade-off, not just the term. - Mention measuring actual achieved values during DR tests, and reporting the gap. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[How do you take a monthly release process to daily deployments?]] (`#285`): [How do you take a monthly release process to daily deployments?](../core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md b/cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md index cea36f1..9ffbdfd 100644 --- a/cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md +++ b/cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md @@ -89,6 +89,14 @@ jobs: - Quarantine with an owner, a date, and a cap - and be willing to say you would delete a test nobody will fix. That decisiveness is often the point of the question. - Tie it to the metric: pipeline pass rate on `main` and change failure rate. See [what is change failure rate](../devops-metrics-and-kpis/what-is-change-failure-rate.md) and [what is blameless culture](../devops-culture-and-practices/what-is-blameless-culture.md) for the cultural half of the answer. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md b/cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md index 5c7d351..4d413bb 100644 --- a/cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md +++ b/cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md @@ -107,6 +107,14 @@ Per-service pipeline (the same shape for all 50, from one template) - If asked about fifty pipelines' maintenance, answer with templates plus a platform team owning the golden path, and mention concurrency caps and artefact expiry for cost. - Have the compatibility story ready for the follow-up "what breaks during a rollout?" - two versions live at once, so schema and event changes must be additive. See [what are microservices](../cloud-native-architecture/what-are-microservices.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What is Infrastructure Automation?]] (`#86`): [What is Infrastructure Automation?](../devops-tools-and-automation/what-is-infrastructure-automation.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md b/cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md index bedf59a..da04569 100644 --- a/cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md +++ b/cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md @@ -165,6 +165,14 @@ ls -l target/site/jacoco/jacoco.xml - Draw the boundary: Sonar is not dependency scanning, image scanning, or IaC scanning - name the companions. - For "a developer wants the slow scan removed", answer with diagnosis and parallelisation first, then a time-boxed audited exception if genuinely needed - never a silent deletion. See [what does a DevSecOps pipeline look like end to end](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md), [SAST, DAST, IAST, and SCA](../devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md), [speeding up a slow CI/CD pipeline](./how-do-you-speed-up-a-slow-ci-cd-pipeline.md), and [how do you deal with flaky tests](./how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md b/cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md index 42747d6..640c30f 100644 --- a/cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md +++ b/cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md @@ -88,6 +88,14 @@ npm ci && npm test # frozen lockfile: exactly what CI will instal - Close on the deleted dependency: the fastest way to fix a vulnerable or broken dependency is often to remove it. `depcheck` and a hard look at the tree beat any upgrade. - Tie it to security posture with SBOM plus SCA, and to [what is the difference between SAST, DAST, IAST, and SCA](../devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md b/cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md index 681432c..5913814 100644 --- a/cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md +++ b/cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md @@ -90,6 +90,14 @@ repos: - Explain why running `git rm secret.txt` in a subsequent commit is insufficient: the secret remains in `.git` packfiles and commit history. - Mention automated key rotation pipelines and immediate audit logging (e.g., CloudTrail events) as part of incident response. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md b/cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md index 9b3993e..801697d 100644 --- a/cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md +++ b/cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md @@ -82,6 +82,14 @@ externalSecrets: - If the interviewer uses Kubernetes, offer the GitOps version - promotion as a pull request changing an image digest, with `git revert` as the rollback path. - Have an opinion on environment count. "We had seven long-lived environments and cut to three plus ephemeral PR environments" is a strong, real answer. See [what are deployment strategies](../devops-tools-and-automation/what-are-deployment-strategies.md) and [continuous delivery versus continuous deployment](./what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md b/cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md index 7fee80b..e646997 100644 --- a/cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md +++ b/cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md @@ -151,6 +151,14 @@ curl -s -u "$U:$T" https://jenkins.example.com/updateCenter/api/json?tree=jobs\[ - Cover patching explicitly - LTS line, monthly plugin updates, remove unused plugins - because plugin CVEs are the realistic attack path. - Be honest that Jenkins OSS has no active-active HA and describe fast, rehearsed recovery instead. See [how do you prevent and handle secret leaks in CI/CD pipelines](./how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md), [troubleshooting a Jenkins pipeline that never starts](./how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md), [Jenkins shared libraries](./how-do-you-use-jenkins-shared-libraries.md), and [what is Jenkins](./what-is-jenkins.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md b/cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md index d0c37e6..2233431 100644 --- a/cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md +++ b/cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md @@ -158,6 +158,14 @@ Platform metrics that prove it is scaling, reviewed monthly - Finish with metrics: DORA per service plus platform metrics (queue wait, p95 duration, cache hit rate, cost per build, onboarding time). Being able to say what you would measure is what makes this a senior answer. - If asked about consolidating three CI systems, refuse the big-bang: template the target, migrate high-value services first, run in parallel, set a deprecation date. See [designing CI/CD for a microservices architecture](./how-do-you-design-ci-cd-for-a-microservices-architecture.md), [speeding up a slow pipeline](./how-do-you-speed-up-a-slow-ci-cd-pipeline.md), [what is an Internal Developer Platform](../platform-engineering/what-is-an-internal-developer-platform-idp.md), and [managing build artefacts with Nexus or Artifactory](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md b/cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md index d0a1177..b254dea 100644 --- a/cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md +++ b/cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md @@ -91,6 +91,14 @@ jobs: - Flag the anti-pattern of fixing slowness by retrying or deleting tests, and handle flakiness as its own problem: see [how do you deal with flaky tests in a CI pipeline](./how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md). - Close on cost: autoscaled ephemeral agents plus artefact expiry usually cut both the wait and the bill. See [how do you cut a cloud bill without hurting reliability](../cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md b/cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md index 7595781..1f42b31 100644 --- a/cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md +++ b/cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md @@ -154,6 +154,14 @@ gh workflow run api.yml -f environment=staging # GitHub Actions equivalent - Volunteer filtering as the other half of the answer: branch and path filters for monorepos, concurrency groups so overlapping pushes do not run overlapping deploys, and `[skip ci]` plus ignoring bot commits to avoid trigger loops. - Raise the fork-PR security boundary - `pull_request` versus `pull_request_target`, secrets never exposed to untrusted code. Very few candidates bring this up unprompted and it matters. See [how do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue](./how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md), [declarative versus scripted pipelines](./what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md), [writing an efficient and secure GitHub Actions workflow](./how-do-you-write-an-efficient-and-secure-github-actions-workflow.md), and [scaling CI/CD across many services and teams](./how-do-you-scale-ci-cd-across-many-services-and-teams.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md b/cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md index 56a623c..d480382 100644 --- a/cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md +++ b/cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md @@ -89,6 +89,14 @@ df -h /var/lib/jenkins /tmp && java -version - If asked about high availability, be precise: Jenkins controllers are active/passive, so the answer is fast rebuild plus backed-up `$JENKINS_HOME`, ephemeral agents, and configuration as code - not "run three replicas". - Close on prevention: alert on queue time and offline agents, and keep `pollSCM` as a cheap safety net for a lost webhook. See [what is Jenkins](./what-is-jenkins.md) and [what are Jenkins pipelines](./what-are-jenkins-pipelines.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-use-jenkins-shared-libraries.md b/cicd/how-do-you-use-jenkins-shared-libraries.md index c93c671..060eac4 100644 --- a/cicd/how-do-you-use-jenkins-shared-libraries.md +++ b/cicd/how-do-you-use-jenkins-shared-libraries.md @@ -122,6 +122,14 @@ standardPipeline( - If CPS or `@NonCPS` comes up, explain it simply: pipeline code is transformed so it can be paused and resumed, which breaks some ordinary Groovy; `@NonCPS` opts out but cannot call pipeline steps. - Be ready to compare with GitHub Actions reusable workflows or GitLab `include:` - many interviewers now ask what you would use if you were not on Jenkins. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md b/cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md index f904115..a9fd7fe 100644 --- a/cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md +++ b/cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md @@ -167,6 +167,14 @@ jobs: - Bring up `pull_request` versus `pull_request_target` unprompted, describe the RCE pattern, and give the safe alternative (untrusted build uploads an artifact; a separate privileged workflow consumes it). Add the script-injection example with `env:`. - Warn against self-hosted runners on public repositories and recommend ephemeral runners. See [how do you prevent and handle secret leaks in CI/CD pipelines](./how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md), [what is GitHub Actions](../advanced-devops-cloud/what-is-github-actions.md), [how do you trigger a pipeline](./how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md), [speeding up a slow pipeline](./how-do-you-speed-up-a-slow-ci-cd-pipeline.md), and [authenticating to AWS without long-lived access keys](../aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/what-are-jenkins-pipelines.md b/cicd/what-are-jenkins-pipelines.md index a85edd2..7e205a3 100644 --- a/cicd/what-are-jenkins-pipelines.md +++ b/cicd/what-are-jenkins-pipelines.md @@ -61,6 +61,14 @@ pipeline { - `parallel` plus per-stage agents is the standard answer to "how do you speed up a Jenkins build?" - Shared libraries are the answer to pipeline sprawl across many repositories. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/what-is-ci-cd-pipeline.md b/cicd/what-is-ci-cd-pipeline.md index 286fcf5..6081a6d 100644 --- a/cicd/what-is-ci-cd-pipeline.md +++ b/cicd/what-is-ci-cd-pipeline.md @@ -67,6 +67,14 @@ jobs: - Mention what fails the build and what only warns - that distinction shows operational judgement. - Have an answer for pipeline speed: caching, parallel jobs, test splitting, and selective builds in a monorepo. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/what-is-gitlab-ci.md b/cicd/what-is-gitlab-ci.md index dad45b7..50f7e10 100644 --- a/cicd/what-is-gitlab-ci.md +++ b/cicd/what-is-gitlab-ci.md @@ -74,6 +74,14 @@ include: - Review apps - a live environment per merge request - are a strong differentiator worth naming. - Know how to avoid long-lived cloud credentials by using GitLab's OIDC token with AWS/GCP. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/what-is-jenkins.md b/cicd/what-is-jenkins.md index 1f2342d..273bb64 100644 --- a/cicd/what-is-jenkins.md +++ b/cicd/what-is-jenkins.md @@ -63,6 +63,14 @@ pipeline { - Know how credentials are handled (`withCredentials`, never plain environment variables in the Jenkinsfile). - Be ready to compare Jenkins with GitHub Actions/GitLab CI on operational cost versus control. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md b/cicd/what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md index 2ead811..588c821 100644 --- a/cicd/what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md +++ b/cicd/what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md @@ -153,6 +153,14 @@ buildJavaService( - Mention that `Jenkinsfile` Groovy executes on the **controller** and that CPS serialisation is why some Groovy idioms explode. That is the kind of detail only people who have debugged a `NotSerializableException` know. - Land on shared libraries as the way to get scripted flexibility without unmaintainable `Jenkinsfile`s. See [what are Jenkins Pipelines](./what-are-jenkins-pipelines.md), [how do you use Jenkins shared libraries](./how-do-you-use-jenkins-shared-libraries.md), [how do you trigger a pipeline](./how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md), and [running and securing a Jenkins controller in production](./how-do-you-run-and-secure-a-jenkins-controller-in-production.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md b/cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md index c938db2..6b8a9e7 100644 --- a/cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md +++ b/cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md @@ -36,6 +36,14 @@ A useful middle ground many teams adopt: continuous deployment to staging automa - Note that both require deployment to be decoupled from release, via feature flags. - Say which you would pick for a given context, and why - the judgement is what is being assessed. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cicd/why-does-a-build-pass-locally-but-fail-in-ci.md b/cicd/why-does-a-build-pass-locally-but-fail-in-ci.md index deb8b51..48c2f63 100644 --- a/cicd/why-does-a-build-pass-locally-but-fail-in-ci.md +++ b/cicd/why-does-a-build-pass-locally-but-fail-in-ci.md @@ -80,6 +80,14 @@ steps: - Say that the answer is _not_ "make CI more like my laptop" but "make both come from one declared image". Reference [what a Dockerfile is](../docker/what-is-dockerfile.md) and [what is configuration management](../configuration-management/what-is-configuration-management.md). - Add the guardrail: a fresh-clone-in-clean-container job on every pull request, so drift fails at review rather than at release. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md) +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to CI/CD](./README.md) · [All topics](../README.md) diff --git a/cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md b/cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md index ddd8c7d..51b3e95 100644 --- a/cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md +++ b/cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md @@ -92,6 +92,14 @@ spec: - Have a concrete number ready from your own experience, with the mechanism: "cross-AZ chatter was 18% of the bill; topology-aware routing removed most of it." - Mention tagging enforcement and anomaly alerting as the durability story. Interviewers know one-off cleanups regress. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md) diff --git a/cloud-cost-optimization/how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md b/cloud-cost-optimization/how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md index 88dbef7..17703ff 100644 --- a/cloud-cost-optimization/how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md +++ b/cloud-cost-optimization/how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md @@ -92,6 +92,14 @@ Sample JSON cost allocation output: - Highlight **Idle Cost Allocation**: explain that if a node has 16 CPU cores but pods only request 8 cores, OpenCost attributes the remaining 8 idle cores to cost-center metrics. - Discuss **Resource Efficiency Ratio**: $\frac{\text{Actual Usage}}{\text{Requested Resources}}$. An efficiency ratio below 0.3 indicates severe over-provisioning and wasted cloud spend. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +- [[What is GitLab CI?]] (`#19`): [What is GitLab CI?](../cicd/what-is-gitlab-ci.md) +- [[How do you prevent and handle secret leaks in CI/CD pipelines?]] (`#237`): [How do you prevent and handle secret leaks in CI/CD pipelines?](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md) diff --git a/cloud-cost-optimization/how-do-you-investigate-a-sudden-spike-in-your-cloud-bill.md b/cloud-cost-optimization/how-do-you-investigate-a-sudden-spike-in-your-cloud-bill.md index 1326eac..7c38d0a 100644 --- a/cloud-cost-optimization/how-do-you-investigate-a-sudden-spike-in-your-cloud-bill.md +++ b/cloud-cost-optimization/how-do-you-investigate-a-sudden-spike-in-your-cloud-bill.md @@ -172,6 +172,14 @@ curl -s 'localhost:9003/allocation?window=7d&aggregate=namespace' \ - Finish on prevention: budgets on **forecast** as well as actual, anomaly detection, SCPs restricting unused regions and expensive instance families, non-production scheduled to zero, and per-team cost reports - because the people who can fix a query are the ones who need to see the number. - State the guard rail: cost reduction must not silently trade away reliability or compliance retention. Make that trade-off explicit. See [how do you cut a cloud bill without hurting reliability](./how-do-you-cut-a-cloud-bill-without-hurting-reliability.md), [how to implement cost tagging strategy](./how-to-implement-cost-tagging-strategy.md), [real-time Kubernetes cost monitoring with OpenCost or Kubecost](./how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md), [what is FinOps](../advanced-devops-cloud/what-is-finops.md), and [what are VPC endpoints](../aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md) diff --git a/cloud-cost-optimization/how-to-implement-cost-tagging-strategy.md b/cloud-cost-optimization/how-to-implement-cost-tagging-strategy.md index 61390b8..c7097c6 100644 --- a/cloud-cost-optimization/how-to-implement-cost-tagging-strategy.md +++ b/cloud-cost-optimization/how-to-implement-cost-tagging-strategy.md @@ -45,6 +45,14 @@ Agree on case and allowed values, and document them - `Env=prod` and `environmen - Mention that cost-allocation tags apply going forward only - a genuinely useful practical detail. - Untagged-spend percentage as a tracked KPI shows you have run this programme, not just designed it. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md) diff --git a/cloud-cost-optimization/what-are-cost-allocation-reports.md b/cloud-cost-optimization/what-are-cost-allocation-reports.md index 55e3829..e2e1d3b 100644 --- a/cloud-cost-optimization/what-are-cost-allocation-reports.md +++ b/cloud-cost-optimization/what-are-cost-allocation-reports.md @@ -33,6 +33,14 @@ tags: - Shared-cost allocation is the question that reveals whether you have actually done this. - Mention amortised versus unblended cost - it shows familiarity with real billing data. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md) diff --git a/cloud-cost-optimization/what-are-reserved-instances.md b/cloud-cost-optimization/what-are-reserved-instances.md index c2b98f2..31fa768 100644 --- a/cloud-cost-optimization/what-are-reserved-instances.md +++ b/cloud-cost-optimization/what-are-reserved-instances.md @@ -38,6 +38,14 @@ tags: - Recommend Savings Plans over RIs for most cases, and explain the flexibility trade-off. - Mention monitoring commitment utilisation; buying is the easy part, keeping coverage right is the ongoing work. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md) diff --git a/cloud-cost-optimization/what-is-cloud-cost-optimization.md b/cloud-cost-optimization/what-is-cloud-cost-optimization.md index fb2b197..f480427 100644 --- a/cloud-cost-optimization/what-is-cloud-cost-optimization.md +++ b/cloud-cost-optimization/what-is-cloud-cost-optimization.md @@ -34,6 +34,14 @@ tags: - Data transfer costs are the ones teams miss - naming cross-AZ traffic signals real experience. - Emphasise that cost is an engineering quality attribute, owned by teams and made visible, not a finance problem. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md) diff --git a/cloud-cost-optimization/what-is-spot-instance-pricing.md b/cloud-cost-optimization/what-is-spot-instance-pricing.md index bd2edb8..8d19d18 100644 --- a/cloud-cost-optimization/what-is-spot-instance-pricing.md +++ b/cloud-cost-optimization/what-is-spot-instance-pricing.md @@ -54,6 +54,14 @@ spec: - Describe what your application does in the two-minute window - that is the practical test. - The mature pattern is a blended fleet: reserved baseline, on-demand buffer, spot for burst. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md) diff --git a/cloud-engineering/how-do-the-core-services-of-aws-azure-and-gcp-map-to-each-other.md b/cloud-engineering/how-do-the-core-services-of-aws-azure-and-gcp-map-to-each-other.md index 53f3116..36dd6b0 100644 --- a/cloud-engineering/how-do-the-core-services-of-aws-azure-and-gcp-map-to-each-other.md +++ b/cloud-engineering/how-do-the-core-services-of-aws-azure-and-gcp-map-to-each-other.md @@ -56,6 +56,14 @@ tags: - Score points by naming where the mapping _fails_ (global VPC, resource groups, IAM models) rather than reciting the table. - Expect: "you know AWS, could you work on GCP?" - answer with the primitives that transfer and the specific differences you would need to learn. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md) diff --git a/cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md b/cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md index 7c43dc7..57c1205 100644 --- a/cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md +++ b/cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md @@ -58,6 +58,14 @@ Test quarterly: fail circuit #1, confirm convergence and no asymmetric drops - Non-overlapping address planning and hybrid DNS are the two failures that cause the most real pain - mention both. - Expect: "is a dedicated circuit encrypted?" - no; add IPsec/MACsec or rely on application-layer TLS. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md) diff --git a/cloud-engineering/how-do-you-design-for-multi-region-resilience.md b/cloud-engineering/how-do-you-design-for-multi-region-resilience.md index 59746c8..5a4d516 100644 --- a/cloud-engineering/how-do-you-design-for-multi-region-resilience.md +++ b/cloud-engineering/how-do-you-design-for-multi-region-resilience.md @@ -57,6 +57,14 @@ Rehearsal quarterly, in business hours, with a rollback plan; last tested RTO - "Failover must not depend on the failed region" plus one concrete example (DNS or CI) is a memorable point. - Expect: "what is your RTO?" - quote the _tested_ number and say when you last rehearsed. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md) diff --git a/cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md b/cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md index 9695210..1472b9d 100644 --- a/cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md +++ b/cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md @@ -61,6 +61,14 @@ Derivation - "Derive the policy from audit logs" is the answer that separates practitioners from policy theorists. - Expect: "what about emergencies?" - a designed, alerted, reviewed break-glass path, not weakening the guardrails. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md) diff --git a/cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md b/cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md index f60cae2..f446def 100644 --- a/cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md +++ b/cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md @@ -76,6 +76,14 @@ resource "aws_route53_record" "caa" { - Recommend an anycast global load balancer when the RTO requirement is seconds - DNS is the coarse tool. - Expect: "what is subdomain takeover?" - a dangling CNAME to a deprovisioned resource that an attacker can claim; monitor for it. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md) diff --git a/cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md b/cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md index b2310a6..579fc03 100644 --- a/cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md +++ b/cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md @@ -127,6 +127,14 @@ The change-management habit that prevents most DNS incidents - Domain expiry, DNSSEC signature expiry, and delegation drift are the three catastrophic-but-preventable causes. Monitoring them is cheap and almost nobody does it. - Close on records as code, and the specific trap of fixing a record in the console during an incident so the next Terraform apply reverts it. That detail lands because everyone has seen it happen. See [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md) diff --git a/cloud-engineering/what-are-the-real-trade-offs-of-multi-cloud.md b/cloud-engineering/what-are-the-real-trade-offs-of-multi-cloud.md index 1988e58..11ea122 100644 --- a/cloud-engineering/what-are-the-real-trade-offs-of-multi-cloud.md +++ b/cloud-engineering/what-are-the-real-trade-offs-of-multi-cloud.md @@ -59,6 +59,14 @@ Requirement claimed: "board mandated reducing concentration risk" - "Lock-in is data gravity and skills, not APIs" is the line that carries the argument. - Expect: "how would you make an application portable?" - containers, OpenTelemetry, one IaC tool, native data services with an honest migration plan, not a self-hosted everything. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md) diff --git a/cloud-engineering/what-is-a-cloud-landing-zone.md b/cloud-engineering/what-is-a-cloud-landing-zone.md index 4f25f16..845a42e 100644 --- a/cloud-engineering/what-is-a-cloud-landing-zone.md +++ b/cloud-engineering/what-is-a-cloud-landing-zone.md @@ -61,6 +61,14 @@ Expand only when a real requirement appears. Every guardrail must have an owner. - The self-service vending machine and preventive-versus-detective distinction are the strongest points to make. - Expect: "how big should it be?" - right-size it; describing the enterprise version for a five-person team is the trap. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md) diff --git a/cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md b/cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md index ba5e23e..429c338 100644 --- a/cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md +++ b/cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md @@ -157,6 +157,14 @@ Traffic shift, not a cutover - Keep data migration as a separate project, and say why: moving compute and state in one change multiplies risk. - Finish by naming the cases where you would decline - hardware-locked licences, kernel modules, imminent retirement - and that documenting the exceptions is part of the deliverable. See [what are cloud migration strategies](./what-are-cloud-migration-strategies.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md) diff --git a/cloud-migration/how-do-you-migrate-a-kubernetes-cluster-to-another-cloud-provider.md b/cloud-migration/how-do-you-migrate-a-kubernetes-cluster-to-another-cloud-provider.md index 5cd26d7..c1bae7d 100644 --- a/cloud-migration/how-do-you-migrate-a-kubernetes-cluster-to-another-cloud-provider.md +++ b/cloud-migration/how-do-you-migrate-a-kubernetes-cluster-to-another-cloud-provider.md @@ -128,6 +128,14 @@ Cutover: weighted DNS, both clusters live, old one warm - Describe the gradual weighted cutover with both clusters live and the old one warm as the rollback, rather than a big-bang switch. - Close on the strategic point: this procedure is identical to an immutable cluster upgrade and to a DR rebuild, so the durable deliverable is the repeatable path - and be honest that migration costs months and dual-running spend. See [what is cloud migration](./what-is-cloud-migration.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md) diff --git a/cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md b/cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md index 0c367b0..8fa25b8 100644 --- a/cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md +++ b/cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md @@ -95,6 +95,14 @@ done - Name at least three real failure modes: replication slot filling the source disk, un-advanced sequences, missing primary keys, collation-driven index differences, target connection limits. - Insist on a mechanism for the write freeze (flag or read-only mode) rather than a process. "We asked people not to write" is not an answer at this level. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md) diff --git a/cloud-migration/what-are-cloud-migration-strategies.md b/cloud-migration/what-are-cloud-migration-strategies.md index 56aecbb..5e79ac9 100644 --- a/cloud-migration/what-are-cloud-migration-strategies.md +++ b/cloud-migration/what-are-cloud-migration-strategies.md @@ -36,6 +36,14 @@ tags: - "Migrate then modernise" versus "modernise then migrate" is a great trade-off to discuss. - The retire finding - often 10–20% of servers - is a memorable, credible detail. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md) diff --git a/cloud-migration/what-are-cloud-migration-tools.md b/cloud-migration/what-are-cloud-migration-tools.md index 0f0c0e7..a62bb6b 100644 --- a/cloud-migration/what-are-cloud-migration-tools.md +++ b/cloud-migration/what-are-cloud-migration-tools.md @@ -39,6 +39,14 @@ tags: - "Rehearse the cutover repeatedly" is the practical advice that shows you have done one. - Note that heterogeneous database migration is an application project, not a tooling exercise. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[How do you prevent and handle secret leaks in CI/CD pipelines?]] (`#237`): [How do you prevent and handle secret leaks in CI/CD pipelines?](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md) +- [[What is Docker?]] (`#6`): [What is Docker?](../docker/what-is-docker.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md) diff --git a/cloud-migration/what-is-application-modernization.md b/cloud-migration/what-is-application-modernization.md index e519f21..70d8f6d 100644 --- a/cloud-migration/what-is-application-modernization.md +++ b/cloud-migration/what-is-application-modernization.md @@ -35,6 +35,14 @@ tags: - "Automate the pipeline first" is practical, underrated advice that shows delivery experience. - Show restraint: not everything should be modernised, and saying so demonstrates judgement. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md) diff --git a/cloud-migration/what-is-cloud-assessment.md b/cloud-migration/what-is-cloud-assessment.md index 3ef6a19..8822b45 100644 --- a/cloud-migration/what-is-cloud-assessment.md +++ b/cloud-migration/what-is-cloud-assessment.md @@ -34,6 +34,14 @@ tags: - Right-sizing from measured utilisation, not from existing specs, is where the cost case is won or lost. - Mention licence portability - it derails more migrations than technology does. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md) diff --git a/cloud-migration/what-is-cloud-migration.md b/cloud-migration/what-is-cloud-migration.md index 9adce8a..1848714 100644 --- a/cloud-migration/what-is-cloud-migration.md +++ b/cloud-migration/what-is-cloud-migration.md @@ -36,6 +36,14 @@ tags: - Dependency discovery is the phase most underestimated - say so. - Be clear that cost savings come from optimisation _after_ the move, not the move itself. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md) diff --git a/cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md b/cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md index 47dad8f..f19694b 100644 --- a/cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md +++ b/cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md @@ -191,6 +191,14 @@ Failure walk-through - answer this before you are asked - Walk a failure scenario unprompted ("AZ-a is gone: here is what happens at each tier"), including the ~60-second RDS failover and the fact that in-flight transactions fail so clients must retry. - Be deliberate about multi-region: multi-AZ covers AZ failure and most SLAs; multi-region roughly doubles cost, so ask for the RTO/RPO first. See [designing a production-ready VPC on AWS](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md), [security groups versus network ACLs](../aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md), [how do you design for multi-region resilience](../cloud-engineering/how-do-you-design-for-multi-region-resilience.md), [designing a system to degrade gracefully under overload](../scalability-and-high-availability/how-do-you-design-a-system-to-degrade-gracefully-under-overload.md), and [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md) diff --git a/cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md b/cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md index 9ae1398..5f0f80f 100644 --- a/cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md +++ b/cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md @@ -102,6 +102,14 @@ histogram_quantile(0.99, sum by (le) (rate(db_pool_wait_seconds_bucket[5m]))) - The senior move is questioning the synchronous chain itself - events, queues, or a read model - rather than only making each hop faster. - Close with how you keep it fixed: a latency SLO with an error budget, per-route p99 alerts, and a fan-out budget metric. See [what are microservices](./what-are-microservices.md) and [what is the difference between a monolith and microservices](./what-is-the-difference-between-a-monolith-and-microservices.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md) diff --git a/cloud-native-architecture/what-are-microservices.md b/cloud-native-architecture/what-are-microservices.md index a8f5e8b..3edaefa 100644 --- a/cloud-native-architecture/what-are-microservices.md +++ b/cloud-native-architecture/what-are-microservices.md @@ -36,6 +36,14 @@ tags: - Name the anti-pattern by name: distributed monolith, and the shared database that causes it. - Discuss data consistency - sagas, outbox pattern, idempotency - to show you have run this in production. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md) diff --git a/cloud-native-architecture/what-are-the-12-factor-app-principles.md b/cloud-native-architecture/what-are-the-12-factor-app-principles.md index 7b65477..7e993f8 100644 --- a/cloud-native-architecture/what-are-the-12-factor-app-principles.md +++ b/cloud-native-architecture/what-are-the-12-factor-app-principles.md @@ -38,6 +38,14 @@ Common additions for modern services: expose health endpoints, emit telemetry (m - Connect each factor to a Kubernetes behaviour (disposability ↔ pod eviction, logs ↔ `kubectl logs`) to show applied understanding. - Note that factor 10 (dev/prod parity) is what containers and IaC finally made achievable. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md) diff --git a/cloud-native-architecture/what-is-cloud-native-architecture.md b/cloud-native-architecture/what-is-cloud-native-architecture.md index ac102dd..51847f0 100644 --- a/cloud-native-architecture/what-is-cloud-native-architecture.md +++ b/cloud-native-architecture/what-is-cloud-native-architecture.md @@ -32,6 +32,14 @@ The CNCF definition names the enabling technologies: containers, service meshes, - "Designed for failure" is the phrase that captures the mindset shift. - Show judgement by naming when a monolith is the better architecture - seniority is visible in restraint. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md) diff --git a/cloud-native-architecture/what-is-event-driven-architecture.md b/cloud-native-architecture/what-is-event-driven-architecture.md index f9498bb..1f6579b 100644 --- a/cloud-native-architecture/what-is-event-driven-architecture.md +++ b/cloud-native-architecture/what-is-event-driven-architecture.md @@ -55,6 +55,14 @@ tags: - The outbox pattern is the standard solution to "how do you avoid updating the database and failing to publish?" - Mention schema registries and versioning; event contracts break teams silently otherwise. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md) diff --git a/cloud-native-architecture/what-is-service-mesh.md b/cloud-native-architecture/what-is-service-mesh.md index c83e059..10880aa 100644 --- a/cloud-native-architecture/what-is-service-mesh.md +++ b/cloud-native-architecture/what-is-service-mesh.md @@ -52,6 +52,14 @@ spec: - Automatic mTLS is the single most compelling reason teams adopt a mesh; say so. - Be honest about the operational cost and name the situation where you would not use one. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md) diff --git a/cloud-native-architecture/what-is-the-difference-between-a-monolith-and-microservices.md b/cloud-native-architecture/what-is-the-difference-between-a-monolith-and-microservices.md index e0dc094..920038e 100644 --- a/cloud-native-architecture/what-is-the-difference-between-a-monolith-and-microservices.md +++ b/cloud-native-architecture/what-is-the-difference-between-a-monolith-and-microservices.md @@ -74,6 +74,14 @@ publish("order.created", {"order_id": order.id, "total": order.total}) - Know the phrase "distributed monolith" and why it is the worst outcome - services that cannot deploy independently. - If your experience is only monoliths, say so and describe where you would draw the first boundary and why. That answers better than pretending. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md) diff --git a/cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md b/cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md index 5ec808b..55ecf9d 100644 --- a/cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md +++ b/cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md @@ -71,6 +71,14 @@ module "cloud_glue" { - Distinguish reversibility from portability. Full portability is a cost most teams should decline. - Expect the follow-up "so when _is_ multi-cloud right?" Have an answer ready: acquisitions, a hard customer or regulatory requirement, or one specific service you cannot get elsewhere. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md) +- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md) +- [[How do Auto Scaling groups and load balancers work together on AWS?]] (`#194`): [How do Auto Scaling groups and load balancers work together on AWS?](../aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md) diff --git a/cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md b/cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md index 19bdb4a..a2d713f 100644 --- a/cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md +++ b/cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md @@ -106,6 +106,14 @@ nslookup mydb.database.windows.net # must return a 10.x address, not a public - Have the private-endpoint DNS trap ready - it is the most common practical failure and shows hands-on time. - Bring up CIDR planning and GKE secondary ranges. Address exhaustion forcing a cluster rebuild is a story interviewers recognise immediately. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md) +- [[How does AWS IAM evaluate a request?]] (`#192`): [How does AWS IAM evaluate a request?](../aws-engineering/how-does-aws-iam-evaluate-a-request.md) +- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md) diff --git a/cloud-platforms/what-are-the-different-types-of-cloud-services.md b/cloud-platforms/what-are-the-different-types-of-cloud-services.md index 288772c..8138dff 100644 --- a/cloud-platforms/what-are-the-different-types-of-cloud-services.md +++ b/cloud-platforms/what-are-the-different-types-of-cloud-services.md @@ -41,6 +41,14 @@ Who manages what: - Give a concrete example of each from a platform you have used. - Good closing judgement: "use the highest-level service that meets the requirement" - it minimises undifferentiated work. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md) +- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md) +- [[How do you run a highly available database on AWS?]] (`#196`): [How do you run a highly available database on AWS?](../aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md) diff --git a/cloud-platforms/what-is-aws-amazon-web-services.md b/cloud-platforms/what-is-aws-amazon-web-services.md index 65405d8..af67df9 100644 --- a/cloud-platforms/what-is-aws-amazon-web-services.md +++ b/cloud-platforms/what-is-aws-amazon-web-services.md @@ -46,6 +46,14 @@ aws ec2 describe-instances \ - Understand the AZ/region distinction well enough to design a highly available architecture on a whiteboard. - Know a cost lever or two - S3 lifecycle policies, Graviton instances, savings plans. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md) +- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md) +- [[How do Auto Scaling groups and load balancers work together on AWS?]] (`#194`): [How do Auto Scaling groups and load balancers work together on AWS?](../aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md) diff --git a/cloud-platforms/what-is-azure.md b/cloud-platforms/what-is-azure.md index 060dcfe..c367e8c 100644 --- a/cloud-platforms/what-is-azure.md +++ b/cloud-platforms/what-is-azure.md @@ -41,6 +41,14 @@ Azure organises resources hierarchically: **management groups → subscriptions - Managed identities are Azure's answer to "how do you avoid secrets in config?" - If the role is hybrid-cloud, mention Azure Arc for managing on-premises and other-cloud resources. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md) +- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md) +- [[What are the S3 storage classes and when do you use each?]] (`#195`): [What are the S3 storage classes and when do you use each?](../aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md) diff --git a/cloud-platforms/what-is-cloud-computing.md b/cloud-platforms/what-is-cloud-computing.md index 5642275..aa8e2ff 100644 --- a/cloud-platforms/what-is-cloud-computing.md +++ b/cloud-platforms/what-is-cloud-computing.md @@ -35,6 +35,14 @@ The **shared responsibility model** is the concept interviewers probe: the provi - Cloud is not automatically cheaper - it is elastic. Steady, predictable load can be cheaper on-premises. - Mention the trade-offs: vendor lock-in, egress costs, and the operational cost of doing it badly. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md) +- [[How do you structure a multi-account AWS organisation?]] (`#197`): [How do you structure a multi-account AWS organisation?](../aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md) +- [[How do you secure pod access to AWS resources using EKS Pod Identity or IRSA?]] (`#247`): [How do you secure pod access to AWS resources using EKS Pod Identity or IRSA?](../aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md) diff --git a/cloud-platforms/what-is-google-cloud-platform-gcp.md b/cloud-platforms/what-is-google-cloud-platform-gcp.md index 7b2c3c4..596d52e 100644 --- a/cloud-platforms/what-is-google-cloud-platform-gcp.md +++ b/cloud-platforms/what-is-google-cloud-platform-gcp.md @@ -36,6 +36,14 @@ Networking is distinctive: VPCs are global rather than regional, with subnets pe - Workload Identity Federation is how GCP avoids service-account key files - say it when asked about credentials. - If the interview leans data, BigQuery's separation of storage and compute is the concept to explain. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md) +- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md) +- [[How do Auto Scaling groups and load balancers work together on AWS?]] (`#194`): [How do Auto Scaling groups and load balancers work together on AWS?](../aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md) diff --git a/configuration-management/compare-different-configuration-management-tools.md b/configuration-management/compare-different-configuration-management-tools.md index 2e1d4ea..555e7f6 100644 --- a/configuration-management/compare-different-configuration-management-tools.md +++ b/configuration-management/compare-different-configuration-management-tools.md @@ -38,6 +38,14 @@ tags: - Naming the shift towards immutable infrastructure shows current thinking. - Team familiarity is a legitimate deciding factor; say so, because it is true in practice. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/how-do-you-debug-and-safely-test-an-ansible-playbook.md b/configuration-management/how-do-you-debug-and-safely-test-an-ansible-playbook.md index 5cc4558..1dcf339 100644 --- a/configuration-management/how-do-you-debug-and-safely-test-an-ansible-playbook.md +++ b/configuration-management/how-do-you-debug-and-safely-test-an-ansible-playbook.md @@ -183,6 +183,14 @@ molecule test # the whole cycle, including destroy - what CI runs - Diagnose "yum: command not found" as wrong-module-for-OS, missing interpreter, or a `PATH`/`become` issue, and recommend `ansible.builtin.package`. - Mention the task debugger (`debugger: on_failed`) and Molecule's idempotence scenario - both are things most candidates have never used. See [structuring an Ansible role](./how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md), [managing inventories and variables](./how-do-you-manage-ansible-inventories-and-variables-across-environments.md), [running Ansible at scale](./how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md), and [what is Ansible](../infrastructure-as-code/what-is-ansible.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md b/configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md index 72b2e6a..d915b25 100644 --- a/configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md +++ b/configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md @@ -182,6 +182,14 @@ ansible-playbook site.yml --check --diff -i inventories/prod # --diff can pr - If asked whether you can encrypt a whole playbook, say yes and then say why you would not - encrypt variables, not logic. - Mention that secrets are decrypted on the control node in memory, and that writing them to a managed host needs restrictive file modes and ownership. See [managing Ansible inventories and variables](./how-do-you-manage-ansible-inventories-and-variables-across-environments.md), [managing secrets in CI/CD pipelines](../devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md), [rotating secrets without downtime](../devsecops/how-do-you-rotate-secrets-without-downtime.md), and [preventing secret leaks in pipelines](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md b/configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md index d0fb66c..f6a76e6 100644 --- a/configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md +++ b/configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md @@ -186,6 +186,14 @@ ansible-playbook site.yml -i inventories/prod --limit @site.retry - Cover the four ways to pass parameters (`--extra-vars`, `vars_prompt`, `vars_files`, role params) and say which you would use in CI. - Mention `ansible-inventory --graph --vars` as the way to settle precedence arguments with evidence. See [how do you handle secrets in Ansible with Vault](./how-do-you-handle-secrets-in-ansible-with-vault.md), [structuring an Ansible role](./how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md), [running Ansible at scale](./how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md), and [patching hundreds of servers safely](./how-do-you-patch-hundreds-of-servers-safely.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/how-do-you-patch-hundreds-of-servers-safely.md b/configuration-management/how-do-you-patch-hundreds-of-servers-safely.md index 6472f66..0c9688d 100644 --- a/configuration-management/how-do-you-patch-hundreds-of-servers-safely.md +++ b/configuration-management/how-do-you-patch-hundreds-of-servers-safely.md @@ -135,6 +135,14 @@ aws ec2 create-snapshot --volume-id vol-0abc ... # take this BEFORE patching - Volunteer the immutable alternative and why it is better where the workload allows: replacing an instance is a deployment with a known rollback, whereas patching mutates state and can half-fail. - Close on cadence and prioritisation: frequent small patch runs beat quarterly big ones, and urgency comes from exploitability and exposure rather than CVE counts. See [how do you manage services in Linux](../linux-administration/how-do-you-manage-services-in-linux.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md) +- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md b/configuration-management/how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md index 6395022..a7e869e 100644 --- a/configuration-management/how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md +++ b/configuration-management/how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md @@ -113,6 +113,14 @@ ANSIBLE_STRATEGY=free ansible-playbook patch.yml # independent hosts, no batch - Volunteer the limit: past a certain scale, bake images and replace instances. Knowing when the tool is the wrong tool is the senior signal in this question. - Have the variable-precedence trap ready - a value set in the wrong layer that made staging and prod diverge. It is a universally recognised war story. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md b/configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md index 84e3a64..d56e584 100644 --- a/configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md +++ b/configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md @@ -185,6 +185,14 @@ ansible-galaxy install -r requirements.yml -p roles/ --force - Answer the shared-custom-plugins question with collections rather than copying plugin directories into every role. - Close on Molecule with an idempotence scenario plus `ansible-lint` in CI - very few candidates mention testing roles at all. See [what is Ansible](../infrastructure-as-code/what-is-ansible.md), [managing Ansible inventories and variables across environments](./how-do-you-manage-ansible-inventories-and-variables-across-environments.md), [debugging and safely testing a playbook](./how-do-you-debug-and-safely-test-an-ansible-playbook.md), and [running Ansible at scale](./how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/what-is-chef.md b/configuration-management/what-is-chef.md index c86f0ce..fc8bdfc 100644 --- a/configuration-management/what-is-chef.md +++ b/configuration-management/what-is-chef.md @@ -56,6 +56,14 @@ end - InSpec is worth highlighting - it outlives Chef itself as a compliance-as-code tool. - Position it against Puppet (Ruby DSL and imperative-friendly vs declarative) and Ansible (agent vs agentless). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/what-is-configuration-management.md b/configuration-management/what-is-configuration-management.md index 35a5a8f..d8c9c49 100644 --- a/configuration-management/what-is-configuration-management.md +++ b/configuration-management/what-is-configuration-management.md @@ -35,6 +35,14 @@ Without it, servers become snowflakes: each hand-tuned differently, none reprodu - Explain drift and how you detect it before you are asked. - Show awareness that containers and immutable infrastructure change the role of these tools rather than eliminating it. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/what-is-puppet.md b/configuration-management/what-is-puppet.md index f4dd8f2..4e63e1e 100644 --- a/configuration-management/what-is-puppet.md +++ b/configuration-management/what-is-puppet.md @@ -61,6 +61,14 @@ class profile::nginx ( - Roles and profiles is the design pattern interviewers expect from anyone who has run Puppet at scale. - Contrast with Ansible: pull/agent/continuous enforcement versus push/agentless/on-demand. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/configuration-management/what-is-salt-saltstack.md b/configuration-management/what-is-salt-saltstack.md index a74a1b9..5b5815d 100644 --- a/configuration-management/what-is-salt-saltstack.md +++ b/configuration-management/what-is-salt-saltstack.md @@ -60,6 +60,14 @@ salt -G 'os:Ubuntu' state.apply nginx # target by grain - Pillar is the secrets answer; grains are facts, not secrets. - Be ready to say why most teams still pick Ansible: simplicity and ubiquity beat raw speed for typical fleet sizes. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Configuration Management](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md b/container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md index dabb642..322c124 100644 --- a/container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md +++ b/container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md @@ -139,6 +139,14 @@ Restore runbook - rehearsed quarterly, RTO measured not estimated - Bring up backup immutability and a separate account. If an attacker holds cluster credentials, unprotected backups are the next target. - Close on rehearsal: describe the ordered runbook, say how often you test it, and give a measured RTO. "We restore one namespace monthly and rebuild a cluster annually" is the answer that ends the question. See [what is backup and disaster recovery](../backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md), [verifying that your backups can actually be restored](../backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md), [executing a DR failover](../backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md), and [what happens when a control-plane node or etcd fails](../kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md b/container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md index 665a20e..a292fe4 100644 --- a/container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md +++ b/container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md @@ -160,6 +160,14 @@ kubectl get pods -A -o json | jq -r '.items[] | [.metadata.labels.tenant, - Name upgrade cadence as the honest limit of namespace-based tenancy - control-plane and CRD versions are cluster-wide - and offer virtual clusters (vcluster) as the middle ground and separate clusters or sandboxed runtimes for hostile workloads. - Say you roll new admission policies in audit mode first. Enforcing a policy across a live estate without an audit pass is a self-inflicted outage. See [how does RBAC work in Kubernetes](../kubernetes/how-does-rbac-work-in-kubernetes.md), [requests, limits, and QoS classes](../kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md), [NetworkPolicies](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md), [admission control with Kyverno or OPA Gatekeeper](../devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md), and [self-service environments for developers](../platform-engineering/how-do-you-provide-self-service-environments-to-developers.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md) +- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md b/container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md index 2cc9e2f..2533336 100644 --- a/container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md +++ b/container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md @@ -119,6 +119,14 @@ Traffic and data, active/active reads with a single write region - Volunteer the honest cost: certificates, secrets, upgrades, observability labelling, on-call, spend. And say that a three-zone single cluster already survives a data-centre failure, so multi-cluster needs a requirement it alone can meet. - Close on testing the failover regularly. An untested standby has never once worked first time. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md b/container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md index 9e85fcf..2164cd8 100644 --- a/container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md +++ b/container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md @@ -134,6 +134,14 @@ kubectl get pvc -n data # PVCs remain by design - - The `partition` field in `updateStrategy` is the detail that marks StatefulSet experience - a built-in canary for stateful rollouts. - Finish with the architectural question: should this be managed instead? A candidate who can justify running data in Kubernetes _and_ knows when not to is the one who gets hired. See [what are StatefulSets in Kubernetes](./what-are-statefulsets-in-kubernetes.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md b/container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md index 3a2469c..c53d4d6 100644 --- a/container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md +++ b/container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md @@ -107,6 +107,14 @@ resources: {{- toYaml (.Values.resources | default dict) | nindent 12 }} - Distinguish "Helm succeeded but Pods are broken" clearly - at that point Helm is irrelevant and you are doing ordinary Pod debugging. - Close on the production preference for GitOps, where rollback is `git revert` and the cluster state is not the product of someone's shell history. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md b/container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md index 1060d76..232372f 100644 --- a/container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md +++ b/container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md @@ -116,6 +116,14 @@ spec: - Mention add-on and webhook compatibility, and that a broken admission webhook blocks all writes - a failure mode people only learn once. - Close with the strategy: upgrade small and often, or move to immutable clusters and turn upgrades into deployments. See [what is container orchestration and why do you need it](./what-is-container-orchestration-and-why-do-you-need-it.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md b/container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md index f48a50e..7acdd0b 100644 --- a/container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md +++ b/container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md @@ -161,6 +161,14 @@ kubectl patch pgc orders-db -n payments -p '{"metadata":{"finalizers":null}}' -- - Know the Helm CRD lifecycle gap (`crds/` is install-once) and that deleting a CRD deletes all its instances. Both are operational scars worth showing. - If asked how you would run a shell script before every container starts, note that this is an init container's job, not an operator's - and an operator would be the tool if you needed it enforced across every workload, via a mutating webhook. See [what is inside a Helm chart](./what-is-inside-a-helm-chart-and-how-do-you-customise-one.md), [running a multi-tenant Kubernetes cluster](./how-do-you-run-a-multi-tenant-kubernetes-cluster.md), [Kubernetes admission control with Kyverno or OPA Gatekeeper](../devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md), and [what is Crossplane and how does it compare to Terraform](../platform-engineering/what-is-crossplane-and-how-does-it-compare-to-terraform.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md) +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/what-are-daemonsets-in-kubernetes.md b/container-orchestration-advanced/what-are-daemonsets-in-kubernetes.md index 36abd88..dbf8b9c 100644 --- a/container-orchestration-advanced/what-are-daemonsets-in-kubernetes.md +++ b/container-orchestration-advanced/what-are-daemonsets-in-kubernetes.md @@ -58,6 +58,14 @@ spec: - Multiply resource requests by node count when discussing cost - it shows scale awareness. - Contrast with a Deployment: DaemonSet replica count is derived from the node count, not declared. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md b/container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md index 8ed043c..12bc67b 100644 --- a/container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md +++ b/container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md @@ -58,6 +58,14 @@ spec: - "PVCs are not deleted with the StatefulSet" is a favourite follow-up. - A strong closing point: for production databases, prefer a managed service or a mature operator over a hand-rolled StatefulSet. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/what-is-container-orchestration-and-why-do-you-need-it.md b/container-orchestration-advanced/what-is-container-orchestration-and-why-do-you-need-it.md index 0ff784e..6c8d702 100644 --- a/container-orchestration-advanced/what-is-container-orchestration-and-why-do-you-need-it.md +++ b/container-orchestration-advanced/what-is-container-orchestration-and-why-do-you-need-it.md @@ -103,6 +103,14 @@ kubectl rollout undo deploy/api # and the rollback - Mention that resource `requests` are what the scheduler reads. It is a small detail that lands well. - If asked "when would you not use Kubernetes?", say three containers on one host, a single-team app, or no capacity to operate a cluster. Honesty scores here. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/what-is-container-runtime-interface-cri.md b/container-orchestration-advanced/what-is-container-runtime-interface-cri.md index 186e4ec..db5b0aa 100644 --- a/container-orchestration-advanced/what-is-container-runtime-interface-cri.md +++ b/container-orchestration-advanced/what-is-container-runtime-interface-cri.md @@ -61,6 +61,14 @@ crictl ps # the CRI-level equivalent of docker ps, on a node - The kubelet → CRI → OCI layering is the diagram to describe. - RuntimeClass with gVisor or Kata is the answer to "how do you run untrusted workloads?" +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/what-is-helm.md b/container-orchestration-advanced/what-is-helm.md index 82f46d9..0b6c0e1 100644 --- a/container-orchestration-advanced/what-is-helm.md +++ b/container-orchestration-advanced/what-is-helm.md @@ -61,6 +61,14 @@ helm history api && helm rollback api 3 - `--atomic` plus `--wait` is the answer to "how do you make Helm deployments safe?" - Know the Helm-versus-Kustomize debate and have a reasoned preference. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md b/container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md index 90e6ea3..c7dcbbf 100644 --- a/container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md +++ b/container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md @@ -167,6 +167,14 @@ helm rollback payments 7 -n prod --wait - Be clear about secrets: not in `values.yaml`, prefer an `existingSecret` reference, and remember `helm get values` exposes anything you passed with `--set`. - Give a balanced Helm-versus-Kustomize answer rather than a preference. See [what is Helm](./what-is-helm.md), [troubleshooting a failed Helm release](./how-do-you-troubleshoot-a-failed-helm-release.md), [what is ArgoCD](../devops-tools-and-automation/what-is-argocd.md), and [ConfigMaps and Secrets](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/container-orchestration-advanced/what-is-istio.md b/container-orchestration-advanced/what-is-istio.md index 40daa1e..8f9e296 100644 --- a/container-orchestration-advanced/what-is-istio.md +++ b/container-orchestration-advanced/what-is-istio.md @@ -56,6 +56,14 @@ spec: - Ambient mode is the current answer to the sidecar overhead criticism - worth knowing. - Compare with Linkerd (simpler, lighter, less featureful) to show you evaluated options. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md) diff --git a/core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md b/core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md index ecafce5..81e12b7 100644 --- a/core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md +++ b/core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md @@ -87,6 +87,14 @@ gh pr list --state merged --limit 200 --json mergedAt,createdAt \ - Address the change-advisory board directly: replace the manual gate with pipeline evidence rather than arguing it away. This shows you have worked in a regulated environment. - Acknowledge the human side - QA role changes, on-call fear - and answer it with data rather than enthusiasm. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md) +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md) diff --git a/core-devops-concepts/what-are-the-benefits-of-devops.md b/core-devops-concepts/what-are-the-benefits-of-devops.md index 850394e..ef9673e 100644 --- a/core-devops-concepts/what-are-the-benefits-of-devops.md +++ b/core-devops-concepts/what-are-the-benefits-of-devops.md @@ -33,6 +33,14 @@ tags: - Note the counter-intuitive one - speed and stability rise together; they are not a trade-off. - Be honest about costs: tooling investment, upskilling, and the discipline of test automation. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +- [[What is GitLab CI?]] (`#19`): [What is GitLab CI?](../cicd/what-is-gitlab-ci.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md) diff --git a/core-devops-concepts/what-is-continuous-delivery.md b/core-devops-concepts/what-is-continuous-delivery.md index 88edbe0..14dd06d 100644 --- a/core-devops-concepts/what-is-continuous-delivery.md +++ b/core-devops-concepts/what-is-continuous-delivery.md @@ -40,6 +40,14 @@ commit → build & unit tests → package artifact → deploy to staging - Emphasise the immutable artifact - rebuilding per environment is a classic anti-pattern. - Mention database migrations, which are usually the hardest part of making delivery truly continuous. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md) diff --git a/core-devops-concepts/what-is-continuous-deployment.md b/core-devops-concepts/what-is-continuous-deployment.md index db67e36..bf0fc50 100644 --- a/core-devops-concepts/what-is-continuous-deployment.md +++ b/core-devops-concepts/what-is-continuous-deployment.md @@ -49,6 +49,14 @@ strategy: - Feature flags are the answer to "how do you ship unfinished work continuously?" - Have a view on when _not_ to use it - that judgement reads as senior. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md) diff --git a/core-devops-concepts/what-is-continuous-integration.md b/core-devops-concepts/what-is-continuous-integration.md index 0d4793b..eccfec8 100644 --- a/core-devops-concepts/what-is-continuous-integration.md +++ b/core-devops-concepts/what-is-continuous-integration.md @@ -55,6 +55,14 @@ jobs: - Mention trunk-based development as the branching model that makes CI genuine. - Know what you do about flaky tests - quarantine, retry budgets, and a fix deadline. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md) diff --git a/core-devops-concepts/what-is-devops.md b/core-devops-concepts/what-is-devops.md index ff7a3ea..325aa7b 100644 --- a/core-devops-concepts/what-is-devops.md +++ b/core-devops-concepts/what-is-devops.md @@ -42,6 +42,14 @@ A concrete before/after for a single change: - Anchor the answer in the four DORA metrics - it shows you think in outcomes. - Have one story ready about a cultural change you made, not just a pipeline you built. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md) diff --git a/database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md b/database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md index 8870c2a..fc4db08 100644 --- a/database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md +++ b/database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md @@ -122,6 +122,14 @@ ALTER TABLE users DROP COLUMN name; -- metadata-only in PostgreS - Mention automated migration linting in CI, and rehearsal on a restored production-sized snapshot to get a real duration. - Be willing to say some changes need a maintenance window, and describe read-only degraded mode as the way to shrink the impact. Honesty beats absolutism here. See [what is database DevOps](./what-is-database-devops.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md) diff --git a/database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md b/database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md index b8582ae..fb2e02f 100644 --- a/database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md +++ b/database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md @@ -108,6 +108,14 @@ The pool-exhaustion shape - why "the database is slow" was wrong - Know the limits of the popular answers - read replicas do not help writes and add lag; caching needs an invalidation story; sharding changes the application. - Close on the leading indicators you would alert on, and on load testing with production-shaped data because plans change with cardinality. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md) diff --git a/database-management-in-devops/what-are-database-migration-tools.md b/database-management-in-devops/what-are-database-migration-tools.md index 4ea2257..6aa6161 100644 --- a/database-management-in-devops/what-are-database-migration-tools.md +++ b/database-management-in-devops/what-are-database-migration-tools.md @@ -37,6 +37,14 @@ tags: - For very large tables, name `gh-ost` or `pt-online-schema-change` - it signals real scale experience. - Explain where migrations run in the deployment sequence, and how you prevent two pods running them at once. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md) diff --git a/database-management-in-devops/what-does-a-devops-engineer-need-to-know-about-databases.md b/database-management-in-devops/what-does-a-devops-engineer-need-to-know-about-databases.md index 803f3b0..ca7978d 100644 --- a/database-management-in-devops/what-does-a-devops-engineer-need-to-know-about-databases.md +++ b/database-management-in-devops/what-does-a-devops-engineer-need-to-know-about-databases.md @@ -80,6 +80,14 @@ aws rds restore-db-instance-to-point-in-time \ - Mention connection pooling and the replicas × pool-size arithmetic. It is a real outage cause that few candidates volunteer. - Have five database metrics ready. Replication lag and long-running transactions are the two that signal genuine hands-on time. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md) diff --git a/database-management-in-devops/what-is-database-backup-strategy.md b/database-management-in-devops/what-is-database-backup-strategy.md index 78741fb..47c8116 100644 --- a/database-management-in-devops/what-is-database-backup-strategy.md +++ b/database-management-in-devops/what-is-database-backup-strategy.md @@ -54,6 +54,14 @@ pg_basebackup -D /backup/base -Ft -z -Xs -P - "Replication is not backup" is a line worth saying out loud. - Close with restore testing and the measured restore time - it is the most credible evidence. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md) diff --git a/database-management-in-devops/what-is-database-devops.md b/database-management-in-devops/what-is-database-devops.md index 3c317de..2de5f12 100644 --- a/database-management-in-devops/what-is-database-devops.md +++ b/database-management-in-devops/what-is-database-devops.md @@ -49,6 +49,14 @@ CREATE INDEX CONCURRENTLY idx_users_email_verified ON users (email_verified); - Mention that destructive changes (drop column, rename) are never done in the same release as the code change. - Long-running locks on large tables are the practical danger; `CONCURRENTLY`, batched backfills, and lock timeouts are the mitigations. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md) diff --git a/database-management-in-devops/what-is-database-performance-tuning.md b/database-management-in-devops/what-is-database-performance-tuning.md index 9a54880..6c1b54a 100644 --- a/database-management-in-devops/what-is-database-performance-tuning.md +++ b/database-management-in-devops/what-is-database-performance-tuning.md @@ -52,6 +52,14 @@ CREATE INDEX CONCURRENTLY idx_orders_customer_created - N+1 queries and connection pooling are the two highest-yield practical fixes - name both. - Mention that every index is a write cost; unqualified "add an index" is a junior answer. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md) +- [[How do you take a monthly release process to daily deployments?]] (`#285`): [How do you take a monthly release process to daily deployments?](../core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md) diff --git a/database-management-in-devops/what-is-database-version-control.md b/database-management-in-devops/what-is-database-version-control.md index 6d320e8..2b3c48d 100644 --- a/database-management-in-devops/what-is-database-version-control.md +++ b/database-management-in-devops/what-is-database-version-control.md @@ -49,6 +49,14 @@ flyway migrate # runs only what has not been applied, records checksums - Explain the migration-versus-state trade-off; naming both approaches shows breadth. - Point out that reviewing generated diffs is mandatory - tools generate `DROP` statements cheerfully. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md) diff --git a/devops-culture-and-practices/how-do-you-scale-devops-culture-across-many-teams.md b/devops-culture-and-practices/how-do-you-scale-devops-culture-across-many-teams.md index 3116778..5c4b003 100644 --- a/devops-culture-and-practices/how-do-you-scale-devops-culture-across-many-teams.md +++ b/devops-culture-and-practices/how-do-you-scale-devops-culture-across-many-teams.md @@ -83,6 +83,14 @@ sum by (team) (increase(pages_total[7d])) # operation - "You build it, you run it" must come with authority to change things. Say that explicitly - it is the difference between ownership and blame. - Distinguish the small set of things that should be uniform guardrails from everything that should be opt-in. And be ready to say what you need from leadership: funded slack for improvement work. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md) diff --git a/devops-culture-and-practices/what-are-devops-best-practices.md b/devops-culture-and-practices/what-are-devops-best-practices.md index d557b1f..7e7253c 100644 --- a/devops-culture-and-practices/what-are-devops-best-practices.md +++ b/devops-culture-and-practices/what-are-devops-best-practices.md @@ -55,6 +55,14 @@ tags: - If asked to pick the highest-leverage practice, small batches with automated testing is a defensible answer. - Have one example of a practice you introduced, and what measurably changed. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md) diff --git a/devops-culture-and-practices/what-is-blameless-culture.md b/devops-culture-and-practices/what-is-blameless-culture.md index e2e51a3..f6b84a2 100644 --- a/devops-culture-and-practices/what-is-blameless-culture.md +++ b/devops-culture-and-practices/what-is-blameless-culture.md @@ -37,6 +37,14 @@ tags: - The counterfactual/hindsight point is a sophisticated one that lands well. - More reported incidents as a _positive_ signal is counter-intuitive and shows real understanding. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md) diff --git a/devops-culture-and-practices/what-is-devops-culture.md b/devops-culture-and-practices/what-is-devops-culture.md index 391a511..1485f29 100644 --- a/devops-culture-and-practices/what-is-devops-culture.md +++ b/devops-culture-and-practices/what-is-devops-culture.md @@ -41,6 +41,14 @@ tags: - The "DevOps team as a new silo" anti-pattern is worth naming; interviewers often live it. - Best answer to "how do you change culture?": make the right thing the easy thing, and show data. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md) diff --git a/devops-culture-and-practices/what-is-knowledge-sharing-in-devops.md b/devops-culture-and-practices/what-is-knowledge-sharing-in-devops.md index b544bcc..f192a9c 100644 --- a/devops-culture-and-practices/what-is-knowledge-sharing-in-devops.md +++ b/devops-culture-and-practices/what-is-knowledge-sharing-in-devops.md @@ -38,6 +38,14 @@ tags: - "Documentation is part of done" only works if it is reviewed in the same pull request; say that. - The bus-factor question is a memorable way to frame the risk. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md) diff --git a/devops-culture-and-practices/what-is-team-collaboration-in-devops.md b/devops-culture-and-practices/what-is-team-collaboration-in-devops.md index 745b60d..6d7bdb1 100644 --- a/devops-culture-and-practices/what-is-team-collaboration-in-devops.md +++ b/devops-culture-and-practices/what-is-team-collaboration-in-devops.md @@ -36,6 +36,14 @@ tags: - Team Topologies vocabulary (stream-aligned, platform, enabling) signals current thinking. - The platform team as an enabler rather than a gatekeeper is the distinction interviewers probe. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md) diff --git a/devops-metrics-and-kpis/how-do-you-build-a-metrics-program-without-teams-gaming-the-numbers.md b/devops-metrics-and-kpis/how-do-you-build-a-metrics-program-without-teams-gaming-the-numbers.md index 14ffe78..0f423aa 100644 --- a/devops-metrics-and-kpis/how-do-you-build-a-metrics-program-without-teams-gaming-the-numbers.md +++ b/devops-metrics-and-kpis/how-do-you-build-a-metrics-program-without-teams-gaming-the-numbers.md @@ -95,6 +95,14 @@ metrics: - Mention the fifth DORA metric (reliability) and add operational load plus a DevEx survey. It shows you know throughput metrics alone hide burnout. - Say that definitions are the hard part and that you publish the query. Anyone who has run a metrics program has had the "our lead time is different from yours" argument. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md) +- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md) diff --git a/devops-metrics-and-kpis/what-are-devops-metrics.md b/devops-metrics-and-kpis/what-are-devops-metrics.md index 566c9b1..c80b691 100644 --- a/devops-metrics-and-kpis/what-are-devops-metrics.md +++ b/devops-metrics-and-kpis/what-are-devops-metrics.md @@ -43,6 +43,14 @@ Two measure **throughput**, two measure **stability** - and the central DORA fin - The throughput/stability pairing and the fact they correlate positively is the insight worth stating. - Volunteer the gaming risk before being asked - it shows you have used these in practice. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md) +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md) diff --git a/devops-metrics-and-kpis/what-is-change-failure-rate.md b/devops-metrics-and-kpis/what-is-change-failure-rate.md index 755d8b2..8b737db 100644 --- a/devops-metrics-and-kpis/what-is-change-failure-rate.md +++ b/devops-metrics-and-kpis/what-is-change-failure-rate.md @@ -43,6 +43,14 @@ A deployment that fails in the pipeline and never reaches production is _not_ a - "Smaller batches" is the single highest-impact lever - say it with the reason. - Pair it with throughput metrics explicitly to show you understand balanced measurement. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md) +- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md) diff --git a/devops-metrics-and-kpis/what-is-deployment-frequency.md b/devops-metrics-and-kpis/what-is-deployment-frequency.md index 32e4453..6a9d11a 100644 --- a/devops-metrics-and-kpis/what-is-deployment-frequency.md +++ b/devops-metrics-and-kpis/what-is-deployment-frequency.md @@ -47,6 +47,14 @@ These labels come from the report years that published performance tiers; the 20 - Name the practices that unlock it rather than just the target. - Mention measuring per service - aggregate figures hide the teams that are stuck. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md) diff --git a/devops-metrics-and-kpis/what-is-lead-time-for-changes.md b/devops-metrics-and-kpis/what-is-lead-time-for-changes.md index 1d5c35c..5f287b9 100644 --- a/devops-metrics-and-kpis/what-is-lead-time-for-changes.md +++ b/devops-metrics-and-kpis/what-is-lead-time-for-changes.md @@ -45,6 +45,14 @@ In most organisations, the dominant components are **waiting for code review** a - "Measure each stage - the bottleneck is usually review or approval, not the build" is a strong, experience-based answer. - Flow efficiency is an excellent metric to raise if you want to show depth. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md) +- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md) diff --git a/devops-metrics-and-kpis/what-is-mean-time-to-recovery-mttr.md b/devops-metrics-and-kpis/what-is-mean-time-to-recovery-mttr.md index d50a1cd..8e843ad 100644 --- a/devops-metrics-and-kpis/what-is-mean-time-to-recovery-mttr.md +++ b/devops-metrics-and-kpis/what-is-mean-time-to-recovery-mttr.md @@ -41,6 +41,14 @@ For distributed systems, MTTR usually matters more than MTBF. Failures are inevi - "Optimise for recovery, not just prevention" is the mature framing. - Mention reporting distribution rather than mean alone; it shows statistical care. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md) +- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md) +- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md) diff --git a/devops-tools-and-automation/how-do-you-consolidate-a-sprawling-devops-toolchain.md b/devops-tools-and-automation/how-do-you-consolidate-a-sprawling-devops-toolchain.md index 6279dd7..b396408 100644 --- a/devops-tools-and-automation/how-do-you-consolidate-a-sprawling-devops-toolchain.md +++ b/devops-tools-and-automation/how-do-you-consolidate-a-sprawling-devops-toolchain.md @@ -88,6 +88,14 @@ jobs: - Prefer the tool with the better API and the boring reputation. Explain that you optimise for a decade of operation, not a feature matrix. - Concede that some exceptions should survive, and describe how you make them explicit and reviewed. Forced uniformity is the failure mode they are probing for. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md) diff --git a/devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md b/devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md index 7d6588b..142a0b0 100644 --- a/devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md +++ b/devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md @@ -141,6 +141,14 @@ curl -s -u "$U:$T" "https://nexus.example.com/service/rest/v1/status/check" | jq - Answer the Git-versus-artefact-repository comparison in terms of source versus binaries, diffing versus checksums, permanent history versus retention policy. - Mention operational reality: storage growth needs retention policies and GC, and backups must cover blobs and metadata together. See [how do you consolidate a sprawling DevOps toolchain](./how-do-you-consolidate-a-sprawling-devops-toolchain.md), [what is a Software Bill of Materials](../devsecops/what-is-a-software-bill-of-materials-sbom.md), [signing and verifying container images](../devsecops/how-do-you-sign-and-verify-container-images.md), and [promoting a release across dev, staging, and production](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md) diff --git a/devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md b/devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md index 37fc5a0..d620c5f 100644 --- a/devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md +++ b/devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md @@ -132,6 +132,14 @@ spec: - Restate the operating rule - fix the repository, not the cluster; rollback is `git revert` - because it is the cultural half of the answer interviewers are checking for. - Close on prevention in CI: `kustomize build`, `helm template`, `kubeconform`, and policy tests before merge, so rendering failures never reach the cluster. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md) +- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md) diff --git a/devops-tools-and-automation/what-are-deployment-strategies.md b/devops-tools-and-automation/what-are-deployment-strategies.md index db62bd4..db7216a 100644 --- a/devops-tools-and-automation/what-are-deployment-strategies.md +++ b/devops-tools-and-automation/what-are-deployment-strategies.md @@ -37,6 +37,14 @@ tags: - Explain how a canary decides to proceed - automated analysis, not a human staring at a dashboard. - Blue/green's cost and its database problem (both environments share one database) are worth naming. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +- [[How do you prevent and handle secret leaks in CI/CD pipelines?]] (`#237`): [How do you prevent and handle secret leaks in CI/CD pipelines?](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md) diff --git a/devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md b/devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md index d9cdb41..f5b6aed 100644 --- a/devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md +++ b/devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md @@ -153,6 +153,14 @@ ENTRYPOINT ["java","-jar","/app/api.jar"] - For "what happens during a build - how does it fetch dependencies?", walk local repository → configured remote → your Nexus/Artifactory mirror, and note that `settings.xml` (not the POM) holds the mirror and credentials. - Volunteer the CI optimisations: cache `~/.m2` keyed on the POMs, `-B`, `-T 1C`, `-pl -am` for multi-module, and go-offline for hermetic builds. See [how do you manage build artefacts with Nexus or Artifactory](./how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md), [speeding up a slow CI/CD pipeline](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md), [integrating SonarQube and quality gates](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md), and [how does Docker layer caching work](../docker/how-does-docker-layer-caching-work.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md) +- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md) diff --git a/devops-tools-and-automation/what-is-argocd.md b/devops-tools-and-automation/what-is-argocd.md index fd643d4..45389e3 100644 --- a/devops-tools-and-automation/what-is-argocd.md +++ b/devops-tools-and-automation/what-is-argocd.md @@ -55,6 +55,14 @@ spec: - ApplicationSet is the answer to managing dozens of clusters or environments. - Pair Argo CD (delivery) with Argo Rollouts (progressive release) in your answer. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md) diff --git a/devops-tools-and-automation/what-is-gitops.md b/devops-tools-and-automation/what-is-gitops.md index 0e4433a..bf15e5a 100644 --- a/devops-tools-and-automation/what-is-gitops.md +++ b/devops-tools-and-automation/what-is-gitops.md @@ -38,6 +38,14 @@ tags: - "How do you handle secrets in Git?" is the guaranteed follow-up - have SOPS or External Secrets ready. - Mention that drift correction means break-glass changes must also go through Git, or be explicitly excluded. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md) diff --git a/devops-tools-and-automation/what-is-infrastructure-automation.md b/devops-tools-and-automation/what-is-infrastructure-automation.md index 76c11e7..05452fa 100644 --- a/devops-tools-and-automation/what-is-infrastructure-automation.md +++ b/devops-tools-and-automation/what-is-infrastructure-automation.md @@ -37,6 +37,14 @@ tags: - The maturity ladder is a useful structure for an open-ended question. - Name the risk - automation scales mistakes too - and the guardrails you use. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md) diff --git a/devops-tools-and-automation/what-is-tekton.md b/devops-tools-and-automation/what-is-tekton.md index 29a3e2b..b65135e 100644 --- a/devops-tools-and-automation/what-is-tekton.md +++ b/devops-tools-and-automation/what-is-tekton.md @@ -64,6 +64,14 @@ spec: - Tekton Chains for supply-chain provenance is a strong detail to raise. - Be honest that most teams choose GitHub Actions or GitLab CI unless they specifically need Kubernetes-native execution. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md) +- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md) diff --git a/devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md b/devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md index 915c903..a8064a7 100644 --- a/devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md +++ b/devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md @@ -100,6 +100,14 @@ spec: - Always mention starting new policies in **Audit mode** before moving to **Enforce mode** to prevent accidental pipeline downtime. - Explain admission controller mechanics: `ValidatingWebhookConfiguration` (blocks or allows) runs after `MutatingWebhookConfiguration` (modifies requests defaults). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md) +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +- [[How do you harden a container image and a Dockerfile?]] (`#441`): [How do you harden a container image and a Dockerfile?](../docker/how-do-you-harden-a-container-image-and-a-dockerfile.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/how-do-you-manage-kubernetes-secrets-in-a-gitops-workflow.md b/devsecops/how-do-you-manage-kubernetes-secrets-in-a-gitops-workflow.md index 4e8bbf9..f1dc232 100644 --- a/devsecops/how-do-you-manage-kubernetes-secrets-in-a-gitops-workflow.md +++ b/devsecops/how-do-you-manage-kubernetes-secrets-in-a-gitops-workflow.md @@ -178,6 +178,14 @@ kubectl rollout restart deploy/payments -n prod - Bring up the GitOps-specific failure modes unprompted: Argo CD self-heal fighting an operator-managed Secret (`ignoreDifferences`), sync ordering so the operator exists first, and the **bootstrap** chicken-and-egg for the operator's own credential. - Close with enforcement rather than intention: `gitleaks` in pre-commit and CI, a check that fails on a committed `kind: Secret` with values, and the rule that a leaked credential is rotated **first** and cleaned from history second. See [how do you manage secrets in CI/CD pipelines](./how-do-you-manage-secrets-in-ci-cd-pipelines.md), [rotating secrets without downtime](./how-do-you-rotate-secrets-without-downtime.md), [ConfigMaps and Secrets in Kubernetes](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md), [what is GitOps](../devops-tools-and-automation/what-is-gitops.md), and [troubleshooting a GitOps pipeline that will not sync](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md b/devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md index 4fd50c9..82d1a8f 100644 --- a/devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md +++ b/devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md @@ -65,6 +65,14 @@ condition { - The `sub` condition pinning repo and ref is the detail that proves you have configured this rather than read about it. - Expect the fork/`pull_request_target` question, and "what do you do after a leak?" - rotate first, forensics second. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md) +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +- [[How do you harden a container image and a Dockerfile?]] (`#441`): [How do you harden a container image and a Dockerfile?](../docker/how-do-you-harden-a-container-image-and-a-dockerfile.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md b/devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md index 2298565..a143ce0 100644 --- a/devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md +++ b/devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md @@ -53,6 +53,14 @@ python3 rank.py findings.json --kev kev.json --epss epss.csv --top 20 - "Gate on new findings, SLA the backlog" is the sentence that shows you have kept a pipeline usable. - Expect: "a critical with no patch, shipping tomorrow - what do you do?" Answer with compensating control, time-boxed risk acceptance, and who signs it. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md) +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/how-do-you-rotate-secrets-without-downtime.md b/devsecops/how-do-you-rotate-secrets-without-downtime.md index 6c2a338..97563f8 100644 --- a/devsecops/how-do-you-rotate-secrets-without-downtime.md +++ b/devsecops/how-do-you-rotate-secrets-without-downtime.md @@ -128,6 +128,14 @@ spec: - Push toward eliminating long-lived secrets - dynamic database credentials, IRSA/Workload Identity, OIDC federation in CI - and note that this converts rotation from a project into a property of the platform. - Mention the inventory problem honestly: rotation fails most often because nobody knows the complete list of consumers. Owner plus consumer list per secret is the unglamorous prerequisite. See [what does a DevSecOps pipeline look like end to end](./what-does-a-devsecops-pipeline-look-like-end-to-end.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md) +- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md) +- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md b/devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md index 228bd4c..ba8de88 100644 --- a/devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md +++ b/devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md @@ -60,6 +60,14 @@ deny contains msg if { - Mention one org-specific rule you have written - it separates "I enabled a scanner" from "I own the guardrails". - Follow-up to expect: "how do you stop someone changing it in the console?" - drift detection plus the same policy evaluated against live state, and SCPs/Azure Policy denying it outright. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md) +- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/how-do-you-sign-and-verify-container-images.md b/devsecops/how-do-you-sign-and-verify-container-images.md index b618aa2..8d18244 100644 --- a/devsecops/how-do-you-sign-and-verify-container-images.md +++ b/devsecops/how-do-you-sign-and-verify-container-images.md @@ -44,6 +44,14 @@ cosign verify ghcr.io/acme/api@"$DIGEST" \ - Keyless and Rekor transparency logging are the modern answer; explain the key-management problem they remove. - Be ready for "how do you handle upstream images with no signatures?" - mirror, scan, re-sign, and pin by digest. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md) +- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md b/devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md index 75c2530..c7b0097 100644 --- a/devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md +++ b/devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md @@ -63,6 +63,14 @@ jobs: - The baseline/new-findings distinction and expiring waivers are the two details that show you have run this in a real team. - Expect the follow-up: "what do you do when the critical has no fix?" - compensating control, documented risk acceptance, and a tracked ticket. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md) +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/what-does-shift-left-security-mean.md b/devsecops/what-does-shift-left-security-mean.md index b004c42..1f1a61a 100644 --- a/devsecops/what-does-shift-left-security-mean.md +++ b/devsecops/what-does-shift-left-security-mean.md @@ -101,6 +101,14 @@ CVE-2026-12345 exp:2026-10-01 # dev-only dependency, not in the runtime image - - Volunteer the noise problem and the fixes: diff-scoped scanning, block only on high/critical with a fix, expiring suppressions, keep it fast. - Close by saying shift left does not remove pen testing, threat modelling, or runtime detection. Claiming it replaces them is the trap. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md) +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/what-is-a-software-bill-of-materials-sbom.md b/devsecops/what-is-a-software-bill-of-materials-sbom.md index 028e9c0..bdced41 100644 --- a/devsecops/what-is-a-software-bill-of-materials-sbom.md +++ b/devsecops/what-is-a-software-bill-of-materials-sbom.md @@ -44,6 +44,14 @@ grype sbom:sbom.json --fail-on high - Naming VEX, and digest-keyed storage, separates people who have generated SBOMs from people who have used them. - Expect: "who consumes it?" - your own vulnerability management, plus customers' procurement and their scanners. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you harden a container image and a Dockerfile?]] (`#441`): [How do you harden a container image and a Dockerfile?](../docker/how-do-you-harden-a-container-image-and-a-dockerfile.md) +- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md) +- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/what-is-slsa-and-how-do-you-secure-the-software-supply-chain.md b/devsecops/what-is-slsa-and-how-do-you-secure-the-software-supply-chain.md index d3071f0..ca2b850 100644 --- a/devsecops/what-is-slsa-and-how-do-you-secure-the-software-supply-chain.md +++ b/devsecops/what-is-slsa-and-how-do-you-secure-the-software-supply-chain.md @@ -76,6 +76,14 @@ spec: - Tie levels to incidents - SolarWinds for build-system compromise, Codecov for source/CI tampering. - The follow-up is always "how do you verify?" - admission control that fails closed, plus what you do for third-party images that have no provenance (mirror, scan, and pin). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md) +- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md) +- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md b/devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md index 886aa44..812bce4 100644 --- a/devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md +++ b/devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md @@ -48,6 +48,14 @@ semgrep --config p/owasp-top-ten --config ./.semgrep/rules \ - Mention `--ignore-unfixed` and reachability analysis - both show you have fought signal-to-noise in practice. - Common trap: claiming SAST would have caught Log4Shell. That was a dependency issue, so SCA plus an SBOM is the answer. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md) +- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md) +- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to DevSecOps](./README.md) · [All topics](../README.md) diff --git a/docker/explain-docker-architecture.md b/docker/explain-docker-architecture.md index 7e6bfae..4d364c1 100644 --- a/docker/explain-docker-architecture.md +++ b/docker/explain-docker-architecture.md @@ -43,6 +43,14 @@ docker CLI ──REST/socket──▶ dockerd ──gRPC──▶ containerd ─ - Explain rootless mode and why exposing the Docker socket to a container is effectively granting root on the host. - Link it forward: "Kubernetes deprecated dockershim" makes sense only if you know this stack. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md) +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md b/docker/how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md index 271ac3d..a8231f6 100644 --- a/docker/how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md +++ b/docker/how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md @@ -98,6 +98,14 @@ resources: - Be specific about escapes: `--privileged`, the Docker socket, `hostPID`/`hostNetwork`, writable host path mounts. Vague "containers are less secure than VMs" answers score poorly. - Finish with the boundary: shared kernel means untrusted workloads need a VM or gVisor. Knowing when process isolation is insufficient is the senior signal. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md) +- [[How do liveness, readiness, and startup probes differ?]] (`#255`): [How do liveness, readiness, and startup probes differ?](../kubernetes/how-do-liveness-readiness-and-startup-probes-differ.md) +- [[How do you control which node a Pod runs on?]] (`#256`): [How do you control which node a Pod runs on?](../kubernetes/how-do-you-control-which-node-a-pod-runs-on.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/how-do-you-harden-a-container-image-and-a-dockerfile.md b/docker/how-do-you-harden-a-container-image-and-a-dockerfile.md index f40e1bd..c7557b5 100644 --- a/docker/how-do-you-harden-a-container-image-and-a-dockerfile.md +++ b/docker/how-do-you-harden-a-container-image-and-a-dockerfile.md @@ -138,6 +138,14 @@ docker history --no-trunc registry.example.com/api:1.9.0 - Say that signing only matters with admission enforcement, and name Kyverno or Gatekeeper. See [how do you sign and verify container images](../devsecops/how-do-you-sign-and-verify-container-images.md), [Kubernetes admission control with Kyverno or OPA Gatekeeper](../devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md), [prioritising vulnerabilities without blocking delivery](../devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md), and [namespaces, cgroups, and capabilities](./how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md). - If asked how to fix a CVE in a running container, refuse the in-place upgrade and describe rebuild-rescan-redeploy plus compensating controls when the fix is genuinely far off. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md) +- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/how-do-you-reduce-docker-image-size-and-build-time.md b/docker/how-do-you-reduce-docker-image-size-and-build-time.md index bc263ef..6b17d25 100644 --- a/docker/how-do-you-reduce-docker-image-size-and-build-time.md +++ b/docker/how-do-you-reduce-docker-image-size-and-build-time.md @@ -95,6 +95,14 @@ docker buildx build \ - If asked about build _time_ specifically, separate the two levers: cache ordering (avoid rebuilding) and cache transport (`--cache-from` in CI, where every runner starts cold). - Mention `.dockerignore` unprompted. Interviewers notice when candidates forget the build context. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +- [[What is a Service in Kubernetes?]] (`#14`): [What is a Service in Kubernetes?](../kubernetes/what-is-a-service-in-kubernetes.md) +- [[How does RBAC work in Kubernetes?]] (`#257`): [How does RBAC work in Kubernetes?](../kubernetes/how-does-rbac-work-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/how-do-you-troubleshoot-docker-networking-between-containers.md b/docker/how-do-you-troubleshoot-docker-networking-between-containers.md index df01cae..ecd0018 100644 --- a/docker/how-do-you-troubleshoot-docker-networking-between-containers.md +++ b/docker/how-do-you-troubleshoot-docker-networking-between-containers.md @@ -111,6 +111,14 @@ networks: - Have one host-layer cause ready - a firewall reload flushing Docker's iptables chains is the classic - and the overlay MTU symptom if the interviewer moves to multi-host. - Close on `depends_on` not meaning ready, and healthchecks plus client-side retries as the correct fix. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[How do you troubleshoot a Kubernetes Service that has no endpoints?]] (`#403`): [How do you troubleshoot a Kubernetes Service that has no endpoints?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md) +- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md) +- [[How does Pod networking and service discovery work in Kubernetes?]] (`#447`): [How does Pod networking and service discovery work in Kubernetes?](../kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/how-does-docker-layer-caching-work.md b/docker/how-does-docker-layer-caching-work.md index 930372a..b6ed7c7 100644 --- a/docker/how-does-docker-layer-caching-work.md +++ b/docker/how-does-docker-layer-caching-work.md @@ -111,6 +111,14 @@ docker buildx build --progress=plain . 2>&1 | grep -E "CACHED|=> \[" - Mention BuildKit cache mounts for `~/.m2`, `~/.npm`, `~/.cache/pip` as the fix for dependency downloads dominating build time. - Push back gently on "fewer layers is better": the real goals are cache-hit rate and total content, not layer count. See [reducing Docker image size and build time](./how-do-you-reduce-docker-image-size-and-build-time.md), [COPY versus ADD](./what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md), and [speeding up a slow CI/CD pipeline](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is inside a Helm chart, and how do you customise one?]] (`#450`): [What is inside a Helm chart, and how do you customise one?](../container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md) +- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md) +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/what-are-docker-network-types-bridge-host-overlay-macvlan.md b/docker/what-are-docker-network-types-bridge-host-overlay-macvlan.md index d69ea56..c820e74 100644 --- a/docker/what-are-docker-network-types-bridge-host-overlay-macvlan.md +++ b/docker/what-are-docker-network-types-bridge-host-overlay-macvlan.md @@ -95,6 +95,14 @@ networks: - Explain trade-offs: **Host mode** eliminates NAT overhead for maximum throughput, but introduces port conflict risks on the host and removes network isolation. - Understand port forwarding mechanics: `docker run -p 8080:80` creates `iptables` DNAT rules intercepting host packets. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md) +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/what-is-docker-compose.md b/docker/what-is-docker-compose.md index e3c91fd..7ffba42 100644 --- a/docker/what-is-docker-compose.md +++ b/docker/what-is-docker-compose.md @@ -67,6 +67,14 @@ docker compose down -v # -v also removes named volumes - `depends_on` alone only waits for _start_, not readiness; the health-check condition is the correct answer. - Compose files are excellent for reproducible integration tests in CI. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md) +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/what-is-docker.md b/docker/what-is-docker.md index 573beb8..8891395 100644 --- a/docker/what-is-docker.md +++ b/docker/what-is-docker.md @@ -43,6 +43,14 @@ docker exec -it web sh - Be clear that containers share the host kernel - that is both the performance win and the security consideration. - Know the difference between Docker (the tooling) and the OCI standards it now conforms to. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md) +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/what-is-dockerfile.md b/docker/what-is-dockerfile.md index 01f386f..2d948d7 100644 --- a/docker/what-is-dockerfile.md +++ b/docker/what-is-dockerfile.md @@ -59,6 +59,14 @@ CMD ["node", "dist/server.js"] - Always mention `.dockerignore`; without it you ship `node_modules` and `.git` into the build context. - Running as non-root and pinning base image tags are the security answers interviewers listen for. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md) +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +- [[What is a Service in Kubernetes?]] (`#14`): [What is a Service in Kubernetes?](../kubernetes/what-is-a-service-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/what-is-the-difference-between-a-bind-mount-and-a-volume-in-docker.md b/docker/what-is-the-difference-between-a-bind-mount-and-a-volume-in-docker.md index d2ae964..de67a6d 100644 --- a/docker/what-is-the-difference-between-a-bind-mount-and-a-volume-in-docker.md +++ b/docker/what-is-the-difference-between-a-bind-mount-and-a-volume-in-docker.md @@ -104,6 +104,14 @@ docker volume prune # DESTRUCTIVE: deletes unused volumes - Recommend `--mount` over `-v` and say why: `-v` infers the type from the string shape and silently creates a stray volume on a typo. - Close by mapping to Kubernetes - `hostPath` ≈ bind mount, `emptyDir` ≈ anonymous volume, PVC ≈ named volume with a driver. See [how does persistent storage work in Kubernetes](../kubernetes/how-does-persistent-storage-work-in-kubernetes.md) and [Docker architecture](./explain-docker-architecture.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +- [[What is a Service in Kubernetes?]] (`#14`): [What is a Service in Kubernetes?](../kubernetes/what-is-a-service-in-kubernetes.md) +- [[How does RBAC work in Kubernetes?]] (`#257`): [How does RBAC work in Kubernetes?](../kubernetes/how-does-rbac-work-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/what-is-the-difference-between-cmd-and-entrypoint-in-a-dockerfile.md b/docker/what-is-the-difference-between-cmd-and-entrypoint-in-a-dockerfile.md index 4bb9091..b79c3da 100644 --- a/docker/what-is-the-difference-between-cmd-and-entrypoint-in-a-dockerfile.md +++ b/docker/what-is-the-difference-between-cmd-and-entrypoint-in-a-dockerfile.md @@ -90,6 +90,14 @@ docker inspect -f 'ENTRYPOINT={{.Config.Entrypoint}} CMD={{.Config.Cmd}}' img - Have the `exec "$@"` entrypoint-script pattern ready; it is the answer to "how do you run setup before your app starts without breaking signal handling?" - The classic follow-up is the port mismatch: "the image `EXPOSE`s 8080 but the app listens on 9090". `EXPOSE` is documentation only - what matters is `-p`/`--publish` mapping and what the process actually binds. See [what is Dockerfile](./what-is-dockerfile.md) and [reducing Docker image size and build time](./how-do-you-reduce-docker-image-size-and-build-time.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md) +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +- [[What is a Service in Kubernetes?]] (`#14`): [What is a Service in Kubernetes?](../kubernetes/what-is-a-service-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/what-is-the-difference-between-docker-image-and-docker-container.md b/docker/what-is-the-difference-between-docker-image-and-docker-container.md index 4f32d3d..1f468c6 100644 --- a/docker/what-is-the-difference-between-docker-image-and-docker-container.md +++ b/docker/what-is-the-difference-between-docker-image-and-docker-container.md @@ -42,6 +42,14 @@ docker diff a # inspect a container's writable layer - Mention that data in the writable layer is lost on `docker rm` - it leads naturally into volumes. - A follow-up is often "why are my images so large?" - answer with layer caching and multi-stage builds. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md) +- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) +- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md b/docker/what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md index da804df..54a399a 100644 --- a/docker/what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md +++ b/docker/what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md @@ -102,6 +102,14 @@ Dockerfile - Volunteer `--chown` and `--from=` - both come up as follow-ups, and `--from` leads naturally into multi-stage builds. - Expect the pivot to caching: "which lines invalidate the cache?" Answer with manifests-first ordering and `.dockerignore`. See [how does Docker layer caching work](./how-does-docker-layer-caching-work.md) and [reducing Docker image size and build time](./how-do-you-reduce-docker-image-size-and-build-time.md). +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[Explain the difference between Docker Swarm and Kubernetes]] (`#15`): [Explain the difference between Docker Swarm and Kubernetes](../kubernetes/explain-the-difference-between-docker-swarm-and-kubernetes.md) +- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md) +- [[How does persistent storage work in Kubernetes?]] (`#443`): [How does persistent storage work in Kubernetes?](../kubernetes/how-does-persistent-storage-work-in-kubernetes.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md b/docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md index d081910..3415c92 100644 --- a/docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md +++ b/docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md @@ -127,6 +127,14 @@ spec: - Mention `--user 0` as a **diagnostic** to confirm the theory, immediately followed by "not the fix" - the distinction is what interviewers are listening for. - If asked why images run as non-root at all, connect it to container escape risk and Pod Security Admission rather than treating it as a formality. See [how do you reduce Docker image size and build time](./how-do-you-reduce-docker-image-size-and-build-time.md) for the adjacent build-hygiene answer. +<!-- BEGIN GENERATED RELATED TOPICS --> +## Related Concepts + +- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md) +- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md) +- [[How do you troubleshoot a Kubernetes node that is NotReady?]] (`#449`): [How do you troubleshoot a Kubernetes node that is NotReady?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-node-that-is-notready.md) +<!-- END GENERATED RELATED TOPICS --> + --- [⬅ Back to Docker](./README.md) · [All topics](../README.md) diff --git a/docs/index.html b/docs/index.html index 100ea98..b197e7e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,8 +4,7 @@ <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>DevOps & Cloud Engineering Knowledge Graph - - +