Files
school-of-sre/level101/python_web/sre-conclusion/index.html
2024-08-13 02:23:28 +00:00

6147 lines
114 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://linkedin.github.io/school-of-sre/level101/python_web/sre-conclusion/">
<link rel="prev" href="../url-shorten-app/">
<link rel="next" href="../../databases_sql/intro/">
<link rel="icon" href="../../../img/favicon.ico">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.12">
<title>Conclusion - School Of SRE</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.7e359304.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../../stylesheets/custom.css">
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#conclusion" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<script async defer data-domain="linkedin.github.io" src="https://tracking.eskratch.com/js/plausible.js"></script>
<script>document.addEventListener("DOMContentLoaded", function() {
if (document.getElementById("nav-2").checked!=true && document.getElementById("nav-3").checked!=true && window.innerWidth>1220){
document.getElementById("nav-2").checked=true;
document.getElementById("nav-3").checked=true;
}
});</script>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="header.title">
<a href="https://linkedin.github.io/school-of-sre/" title="School Of SRE" class="md-header__button md-logo" aria-label="School Of SRE">
<img src="../../../img/sos.png" alt="logo">
</a>
<!-- Button to open drawer -->
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<span class="md-header__topic md-ellipsis">
<a href="https://linkedin.github.io/school-of-sre/" title="School Of SRE" >
School Of SRE
</a>
</span>
<span class="md-header__topic md-ellipsis">
Conclusion
</span>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<!-- Determine classes -->
<!-- Navigation -->
<nav
class="md-nav md-nav--primary"
aria-label="Navigation"
data-md-level="0"
>
<!-- Repository information -->
<!-- Navigation list -->
<ul class="md-nav__list" data-md-scrollfix>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Home
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2"
checked
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2"
id="__nav_2_label"
tabindex=""
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Level 101
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="1"
aria-labelledby="__nav_2_label"
aria-expanded="true"
>
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Level 101
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_1"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_1"
id="__nav_2_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Fundamentals Series
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_1_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_1">
<span class="md-nav__icon md-icon"></span>
Fundamentals Series
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_1_1"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_1_1"
id="__nav_2_1_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Linux Basics
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_1_1_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_1_1">
<span class="md-nav__icon md-icon"></span>
Linux Basics
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_basics/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_basics/command_line_basics/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Command Line Basics
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_basics/linux_server_administration/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Server Administration
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_basics/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_1_2"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_1_2"
id="__nav_2_1_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Git
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_1_2_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_1_2">
<span class="md-nav__icon md-icon"></span>
Git
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../git/git-basics/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Git Basics
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../git/branches/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Working With Branches
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../git/github-hooks/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Github and Hooks
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../git/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_1_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_1_3"
id="__nav_2_1_3_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Linux Networking
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_1_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_1_3">
<span class="md-nav__icon md-icon"></span>
Linux Networking
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/dns/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
DNS
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/udp/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
UDP
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/http/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
HTTP
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/tcp/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
TCP
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/ipr/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Routing
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_2"
checked
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_2"
id="__nav_2_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Python and Web
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_2_label"
aria-expanded="true"
>
<label class="md-nav__title" for="__nav_2_2">
<span class="md-nav__icon md-icon"></span>
Python and Web
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../python-concepts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Some Python Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../python-web-flask/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Python, Web and Flask
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../url-shorten-app/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
The URL Shortening App
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item md-nav__item--active">
<!-- State toggle -->
<input
class="md-nav__toggle md-toggle"
type="checkbox"
id="__toc"
/>
<!-- Hack: see partials/toc.html for more information -->
<!-- Navigation link to table of contents -->
<label class="md-nav__link md-nav__link--active" for="__toc">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<a
href="./"
class="md-nav__link md-nav__link--active"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
<!-- Table of contents -->
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#scaling-the-app" class="md-nav__link">
<span class="md-ellipsis">
Scaling The App
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#monitoring-strategy" class="md-nav__link">
<span class="md-ellipsis">
Monitoring Strategy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#applications-in-sre-role" class="md-nav__link">
<span class="md-ellipsis">
Applications in SRE role
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#optional-exercises" class="md-nav__link">
<span class="md-ellipsis">
Optional Exercises
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#conclusion_1" class="md-nav__link">
<span class="md-ellipsis">
Conclusion
</span>
</a>
</li>
</ul>
</nav>
</li>
<!-- Navigation item -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3"
id="__nav_2_3_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Data
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3">
<span class="md-nav__icon md-icon"></span>
Data
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3_1"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3_1"
id="__nav_2_3_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Relational Databases
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_3_1_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3_1">
<span class="md-nav__icon md-icon"></span>
Relational Databases
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/concepts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Key Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/mysql/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
MySQL
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/innodb/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
InnoDB
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/backup_recovery/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Backup and Recovery
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/replication/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
MySQL Replication
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/operations/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Operational Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/select_query/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Select Query
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/query_performance/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Query Performance
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/lab/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Lab
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3_2"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3_2"
id="__nav_2_3_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
NoSQL
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_3_2_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3_2">
<span class="md-nav__icon md-icon"></span>
NoSQL
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_nosql/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_nosql/key_concepts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Key Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_nosql/further_reading/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3_3"
id="__nav_2_3_3_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Message Queue
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_3_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3_3">
<span class="md-nav__icon md-icon"></span>
Message Queue
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../messagequeue/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../messagequeue/key_concepts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Key Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../messagequeue/further_reading/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3_4"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3_4"
id="__nav_2_3_4_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Big Data
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_3_4_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3_4">
<span class="md-nav__icon md-icon"></span>
Big Data
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../big_data/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../big_data/evolution/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Evolution and Architecture of Hadoop
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../big_data/tasks/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_4"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_4"
id="__nav_2_4_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Systems Design
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_4_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_4">
<span class="md-nav__icon md-icon"></span>
Systems Design
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/scalability/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Scalability
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/availability/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Availability
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/fault-tolerance/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Fault Tolerance
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_5"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_5"
id="__nav_2_5_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Metrics and Monitoring
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_5_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_5">
<span class="md-nav__icon md-icon"></span>
Metrics and Monitoring
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/command-line_tools/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Command-line Tools
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/third-party_monitoring/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Third-party Monitoring
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/alerts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Proactive Monitoring with Alerts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/best_practices/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Best Practices for Monitoring
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/observability/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Observability
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_6"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_6"
id="__nav_2_6_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Security
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_6_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_6">
<span class="md-nav__icon md-icon"></span>
Security
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/fundamentals/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Fundamentals of Security
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/network_security/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Network Security
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/threats_attacks_defences/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Threat, Attacks & Defences
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/writing_secure_code/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Writing Secure code
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3"
id="__nav_3_label"
tabindex=""
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Level 102
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="1"
aria-labelledby="__nav_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Level 102
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_1"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_1"
id="__nav_3_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Linux Intermediate
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_1_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_1">
<span class="md-nav__icon md-icon"></span>
Linux Intermediate
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/package_management/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Package Management
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/storage_media/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Storage Media
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/archiving_backup/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Archiving and Backup
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/introvim/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction to Vim
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/bashscripting/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Bash Scripting
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_2"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_2"
id="__nav_3_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Linux Advanced
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_2_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_2">
<span class="md-nav__icon md-icon"></span>
Linux Advanced
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_2_1"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_2_1"
id="__nav_3_2_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Containerization And Orchestration
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_3_2_1_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_2_1">
<span class="md-nav__icon md-icon"></span>
Containerization And Orchestration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/intro_to_containers/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction To Containers
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/containerization_with_docker/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Containerization With Docker
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/orchestration_with_kubernetes/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Orchestration With Kubernetes
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_2_2"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_2_2"
id="__nav_3_2_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
System Calls and Signals
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_3_2_2_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_2_2">
<span class="md-nav__icon md-icon"></span>
System Calls and Signals
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_calls_and_signals/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_calls_and_signals/signals/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Signals
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_calls_and_signals/system_calls/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
System Calls
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_calls_and_signals/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_3"
id="__nav_3_3_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Networking
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_3">
<span class="md-nav__icon md-icon"></span>
Networking
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/security/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Security
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/scale/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Scale
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/rtt/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
RTT
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/infrastructure-features/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Infrastructure Services
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_4"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_4"
id="__nav_3_4_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
System Design
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_4_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
System Design
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/large-system-design/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Large System Design
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/scaling/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Scaling
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/scaling-beyond-the-datacenter/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Scaling Beyond the Data Center
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/resiliency/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Resiliency
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_5"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_5"
id="__nav_3_5_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
System Troubleshooting and Performance Improvements
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_5_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
System Troubleshooting and Performance Improvements
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/troubleshooting/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Troubleshooting
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/important-tools/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Important Tools
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/performance-improvements/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Performance Improvements
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/troubleshooting-example/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Troubleshooting Example
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_6"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_6"
id="__nav_3_6_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Continuous Integration and Continuous Delivery
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_6_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_6">
<span class="md-nav__icon md-icon"></span>
Continuous Integration and Continuous Delivery
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/introduction_to_cicd/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
What is CI/CD?
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/cicd_brief_history/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Brief History
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/continuous_integration_build_pipeline/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Continuous Integration
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/continuous_delivery_release_pipeline/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Continuous Delivery and Deployment
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/jenkins_cicd_pipeline_hands_on_lab/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
CI/CD Pipeline - Hands-on
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../CONTRIBUTING/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Contribute
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../CODE_OF_CONDUCT/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Code of Conduct
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../sre_community/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
SRE Community
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#scaling-the-app" class="md-nav__link">
<span class="md-ellipsis">
Scaling The App
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#monitoring-strategy" class="md-nav__link">
<span class="md-ellipsis">
Monitoring Strategy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#applications-in-sre-role" class="md-nav__link">
<span class="md-ellipsis">
Applications in SRE role
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#optional-exercises" class="md-nav__link">
<span class="md-ellipsis">
Optional Exercises
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#conclusion_1" class="md-nav__link">
<span class="md-ellipsis">
Conclusion
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="conclusion">Conclusion</h1>
<h2 id="scaling-the-app">Scaling The App</h2>
<p>The design and development is just a part of the journey. We will need to setup continuous integration and continuous delivery pipelines sooner or later. And we have to deploy this app somewhere.</p>
<p>Initially, we can start with deploying this app on one virtual machine on any cloud provider. But this is a <code>Single point of failure</code> which is something we never allow as an SRE (or even as an engineer). So an improvement here can be having multiple instances of applications deployed behind a load balancer. This certainly prevents problems of one machine going down.</p>
<p>Scaling here would mean adding more instances behind the load balancer. But this is scalable upto only a certain point. After that, other bottlenecks in the system will start appearing. ie: DB will become the bottleneck, or perhaps the load balancer itself. How do you know what is the bottleneck? You need to have observability into each aspects of the application architecture.</p>
<p>Only after you have metrics, you will be able to know what is going wrong where. <strong>What gets measured, gets fixed!</strong></p>
<p>Get deeper insights into scaling from School Of SRE's <a href="../../systems_design/scalability/">Scalability module</a> and post going through it, apply your learnings and takeaways to this app. Think how will we make this app geographically distributed and highly available and scalable.</p>
<h2 id="monitoring-strategy">Monitoring Strategy</h2>
<p>Once we have our application deployed. It will be working okay. But not forever. Reliability is in the title of our job and we make systems reliable by making the design in a certain way. But things still will go down. Machines will fail. Disks will behave weirdly. Buggy code will get pushed to production. And all these possible scenarios will make the system less reliable. So what do we do? <strong>We monitor!</strong></p>
<p>We keep an eye on the system's health and if anything is not going as expected, we want ourselves to get alerted.</p>
<p>Now let's think in terms of the given URL-shortening app. We need to monitor it. And we would want to get notified in case something goes wrong. But we first need to decide what is that <em>something</em> that we want to keep an eye on.</p>
<ol>
<li>Since it's a web app serving HTTP requests, we want to keep an eye on HTTP Status codes and latencies</li>
<li>Request volume again is a good candidate, if the app is receiving an unusual amount of traffic, something might be off.</li>
<li>We also want to keep an eye on the database so depending on the database solution chosen. Query times, volumes, disk usage, etc.</li>
<li>Finally, there also needs to be some external monitoring which runs periodic tests from devices outside of your data centers. This emulates customers and ensures that from customer point of view, the system is working as expected.</li>
</ol>
<h2 id="applications-in-sre-role">Applications in SRE role</h2>
<p>In the world of SRE, Python is a widely used language for small scripts and tooling developed for various purposes. Since tooling developed by SRE works with critical pieces of infrastructure and has great power (to bring things down), it is important to know what you are doing while using a programming language and its features. Also it is equally important to know the language and its characteristics while debugging the issues. As an SRE having a deeper understanding of Python language, it has helped me a lot to debug very sneaky bugs and be generally more aware and informed while making certain design decisions.</p>
<p>While developing tools may or may not be part of SRE job, supporting tools or services is more likely to be a daily duty. Building an application or tool is just a small part of productionization. While there is certainly that goes in the design of the application itself to make it more robust, as an SRE you are responsible for its reliability and stability once it is deployed and running. And to ensure that, youd need to understand the application first and then come up with a strategy to monitor it properly and be prepared for various failure scenarios.</p>
<h2 id="optional-exercises">Optional Exercises</h2>
<ol>
<li>Make a decorator that will cache function return values depending on input parameters.</li>
<li>Host the URL-shortening app on any cloud provider.</li>
<li>Setup monitoring using many of the tools available like Catchpoint, Datadog, etc.</li>
<li>Create a minimal Flask-like framework on top of TCP sockets.</li>
</ol>
<h2 id="conclusion_1">Conclusion</h2>
<p>This module, in the first part, aims to make you more aware of the things that will happen when you choose Python as your programming language and what happens when you run a Python program. With the knowledge of how Python handles things internally as objects, lot of seemingly magic things in Python will start to make more sense.</p>
<p>The second part will first explain how a framework like Flask works using the existing knowledge of protocols like TCP and HTTP. It then touches the whole lifecycle of an application development lifecycle including the SRE parts of it. While the design and areas in architecture considered will not be exhaustive, it will give a good overview of things that are also important being an SRE and why they are important.</p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright 2020 LinkedIn Corporation. All Rights Reserved. Licensed under the Creative Commons Attribution 4.0 International Public License
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/linkedin/school-of-sre" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.sections"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../../assets/javascripts/bundle.c8d2eff1.min.js"></script>
</body>
</html>