content: tighten text across 14 slides

- Convert long sentences to bullet lists (slides 6, 8)
- Convert <p><br> platform lists to <ul> (slides 19, 26)
- Trim wordy phrases (slides 3, 9, 10, 11, 14, 15, 24, 28, 31, 34)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-04-14 02:11:27 +02:00
parent 6493a0a86c
commit cefa3e7dab

View File

@@ -141,7 +141,7 @@
<!-- ─── SLIDE 3 ─────────────────────────────────────────────────── --> <!-- ─── SLIDE 3 ─────────────────────────────────────────────────── -->
<section> <section>
<h2>"It works on my server."</h2> <h2>"It works on my server."</h2>
<p><em>Or: why doesn't it work here, when it works everywhere else?</em></p> <p><em>Why doesn't it work here when it works everywhere else?</em></p>
</section> </section>
<!-- ─── SLIDE 4 ─────────────────────────────────────────────────── --> <!-- ─── SLIDE 4 ─────────────────────────────────────────────────── -->
@@ -265,7 +265,10 @@
<!-- ─── SLIDE 6 ─────────────────────────────────────────────────── --> <!-- ─── SLIDE 6 ─────────────────────────────────────────────────── -->
<section> <section>
<h2>Now you have 100 servers.</h2> <h2>Now you have 100 servers.</h2>
<p><em>Some 2 years old. Some a couple of months. Some freshly provisioned.<br>None of them are exactly alike.</em></p> <ul>
<li>Some 2 years old. Some a few months. Some brand new.</li>
<li>None of them are exactly alike.</li>
</ul>
<!-- SVG3 — 100-server chaos grid with drift indicators --> <!-- SVG3 — 100-server chaos grid with drift indicators -->
<svg width="700" height="260" viewBox="0 0 700 260" style="margin-top:0.5em;" xmlns="http://www.w3.org/2000/svg"> <svg width="700" height="260" viewBox="0 0 700 260" style="margin-top:0.5em;" xmlns="http://www.w3.org/2000/svg">
<defs> <defs>
@@ -409,7 +412,12 @@
<!-- ─── SLIDE 8 ─────────────────────────────────────────────────── --> <!-- ─── SLIDE 8 ─────────────────────────────────────────────────── -->
<section> <section>
<h2>Configuration drift is silent…</h2> <h2>Configuration drift is silent…</h2>
<p><em>Prod breaks on a Tuesday. You can't reproduce the bug locally. You can't scale reliably. You can't onboard a new server without fear.</em></p> <ul>
<li>Prod breaks on a Tuesday</li>
<li>Can't reproduce the bug locally</li>
<li>Can't scale reliably</li>
<li>Can't onboard a new server without fear</li>
</ul>
<svg width="750" height="220" style="margin-top:0.5em;" viewBox="0 0 750 220" xmlns="http://www.w3.org/2000/svg"> <svg width="750" height="220" style="margin-top:0.5em;" viewBox="0 0 750 220" xmlns="http://www.w3.org/2000/svg">
<line x1="60" y1="180" x2="700" y2="180" stroke="#666666" stroke-width="2.5"/> <line x1="60" y1="180" x2="700" y2="180" stroke="#666666" stroke-width="2.5"/>
<polygon points="700,174 720,180 700,186" fill="#666666"/> <polygon points="700,174 720,180 700,186" fill="#666666"/>
@@ -449,7 +457,7 @@
<!-- ─── SLIDE 9 ─────────────────────────────────────────────────── --> <!-- ─── SLIDE 9 ─────────────────────────────────────────────────── -->
<section style="height:100%;"> <section style="height:100%;">
<h2>What if your infrastructure was just… code?</h2> <h2>What if your infrastructure was just… code?</h2>
<p><em>Yes, even your AI assistant can write it*. But you still need to understand what it deploys.</em></p> <p><em>Your AI assistant can write it*. You still need to understand what it deploys.</em></p>
<svg width="750" height="220" style="margin-top:0.5em;" viewBox="0 0 750 220" xmlns="http://www.w3.org/2000/svg"> <svg width="750" height="220" style="margin-top:0.5em;" viewBox="0 0 750 220" xmlns="http://www.w3.org/2000/svg">
<!-- Code file icon --> <!-- Code file icon -->
<rect x="80" y="35" width="120" height="150" rx="6" fill="none" stroke="#0050d7" stroke-width="2.5"/> <rect x="80" y="35" width="120" height="150" rx="6" fill="none" stroke="#0050d7" stroke-width="2.5"/>
@@ -480,7 +488,7 @@
<!-- ─── SLIDE 10 ────────────────────────────────────────────────── --> <!-- ─── SLIDE 10 ────────────────────────────────────────────────── -->
<section> <section>
<h2>Configuration as Code</h2> <h2>Configuration as Code</h2>
<p>Managing infrastructure through machine-readable files, stored in version control.</p> <p>Machine-readable files. Version-controlled. Automated.</p>
<svg width="750" height="220" style="margin-top:0.5em;" viewBox="0 0 750 220" xmlns="http://www.w3.org/2000/svg"> <svg width="750" height="220" style="margin-top:0.5em;" viewBox="0 0 750 220" xmlns="http://www.w3.org/2000/svg">
<!-- Reproducible --> <!-- Reproducible -->
<g transform="translate(125,80)"> <g transform="translate(125,80)">
@@ -522,7 +530,7 @@
<!-- ─── SLIDE 11 ────────────────────────────────────────────────── --> <!-- ─── SLIDE 11 ────────────────────────────────────────────────── -->
<section> <section>
<h2>Meet the three musketeers of infrastructure.</h2> <h2>Meet the three musketeers of infrastructure.</h2>
<p><span class="puppet-col">Puppet</span> &nbsp;·&nbsp; <span class="ansible-col">Ansible</span> &nbsp;·&nbsp; <span class="tf-col">Terraform</span> — each fights a different battle.</p> <p><span class="puppet-col">Puppet</span> &nbsp;·&nbsp; <span class="ansible-col">Ansible</span> &nbsp;·&nbsp; <span class="tf-col">Terraform</span> — each solves a different problem.</p>
</section> </section>
<!-- ─── SLIDE 12 : Terraform intro ──────────────────────────────── --> <!-- ─── SLIDE 12 : Terraform intro ──────────────────────────────── -->
@@ -599,7 +607,7 @@
<li>Store it <strong>remotely</strong> — never commit it to Git</li> <li>Store it <strong>remotely</strong> — never commit it to Git</li>
<li>May contain sensitive values: credentials, tokens, secrets</li> <li>May contain sensitive values: credentials, tokens, secrets</li>
</ul> </ul>
<p><em>Handle it with care. Don't feed it to your LLM.</em></p> <p><em>Handle with care.</em></p>
<svg width="750" height="220" style="margin-top:0.5em;" viewBox="0 0 750 220" xmlns="http://www.w3.org/2000/svg"> <svg width="750" height="220" style="margin-top:0.5em;" viewBox="0 0 750 220" xmlns="http://www.w3.org/2000/svg">
<defs> <defs>
<marker id="st-arrow" viewBox="0 0 8 6" refX="8" refY="3" markerWidth="8" markerHeight="6" orient="auto-start-auto"> <marker id="st-arrow" viewBox="0 0 8 6" refX="8" refY="3" markerWidth="8" markerHeight="6" orient="auto-start-auto">
@@ -667,7 +675,7 @@
<h2>One tool. Every API.</h2> <h2>One tool. Every API.</h2>
<ul> <ul>
<li><strong>1000+ providers</strong> — AWS, GCP, Azure, Cloudflare, GitHub, Kubernetes…</li> <li><strong>1000+ providers</strong> — AWS, GCP, Azure, Cloudflare, GitHub, Kubernetes…</li>
<li>Not just cloud — GitHub teams, Datadog monitors, PagerDuty schedules, DNS records</li> <li>Not just cloud — DNS, monitoring, CI/CD, anything with an API</li>
</ul> </ul>
<p><em>If it has an API, there's a Terraform provider for it.</em></p> <p><em>If it has an API, there's a Terraform provider for it.</em></p>
</section> </section>
@@ -738,12 +746,12 @@ Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
<!-- ─── SLIDE 19 : Terraform platforms ──────────────────────────── --> <!-- ─── SLIDE 19 : Terraform platforms ──────────────────────────── -->
<section class="s-tf"> <section class="s-tf">
<h2>Terraform at scale needs a platform.</h2> <h2>Terraform at scale needs a platform.</h2>
<p> <ul>
<strong>Terraform Enterprise / HCP Terraform</strong> HashiCorp's commercial offering: remote state, RBAC, audit logs<br> <li><strong>Terraform Enterprise / HCP Terraform</strong> — remote state, RBAC, audit logs</li>
<strong>Spacelift</strong> — GitOps-first CI/CD for Terraform (and OpenTofu)<br> <li><strong>Spacelift</strong> — GitOps-first CI/CD for Terraform and OpenTofu</li>
<strong>Atlantis</strong> — open-source: plan &amp; apply triggered by pull requests<br> <li><strong>Atlantis</strong> — open-source, plan &amp; apply from pull requests</li>
<strong>env0, Scalr</strong> — SaaS alternatives with policy &amp; cost management <li><strong>env0, Scalr</strong> — SaaS with policy &amp; cost management</li>
</p> </ul>
</section> </section>
<!-- ─── SLIDE 20 : Ansible intro ────────────────────────────────── --> <!-- ─── SLIDE 20 : Ansible intro ────────────────────────────────── -->
@@ -858,7 +866,7 @@ finistdevs-web : ok=4 changed=3 unreachable=0 failed=0 skipped=0
<li>Roll out a kernel upgrade with a canary strategy</li> <li>Roll out a kernel upgrade with a canary strategy</li>
<li>Run a compliance audit across your whole fleet</li> <li>Run a compliance audit across your whole fleet</li>
</ul> </ul>
<p><em>Ansible is the tool you reach for when you need to do something — once, or every week.</em></p> <p><em>The go-to tool for one-off tasks and recurring operations.</em></p>
</section> </section>
<!-- ─── SLIDE 25 : Ansible Galaxy ───────────────────────────────── --> <!-- ─── SLIDE 25 : Ansible Galaxy ───────────────────────────────── -->
@@ -874,12 +882,12 @@ finistdevs-web : ok=4 changed=3 unreachable=0 failed=0 skipped=0
<!-- ─── SLIDE 26 : Ansible platforms ────────────────────────────── --> <!-- ─── SLIDE 26 : Ansible platforms ────────────────────────────── -->
<section class="s-ansible"> <section class="s-ansible">
<h2>Ansible at scale: open-source vs enterprise.</h2> <h2>Ansible at scale: open-source vs enterprise.</h2>
<p> <ul>
<strong>AWX</strong> — open-source web UI, API, and scheduler for Ansible<br> <li><strong>AWX</strong> — open-source web UI, API, and scheduler</li>
<strong>Ansible Automation Platform</strong> (Red Hat) — enterprise version of AWX, with support &amp; integrations<br> <li><strong>Ansible Automation Platform</strong> (Red Hat) — enterprise AWX with support</li>
<strong>Semaphore</strong> — lightweight open-source alternative to AWX<br> <li><strong>Semaphore</strong> — lightweight open-source alternative</li>
<em>The core Ansible engine remains Apache 2.0 — truly open-source.</em> </ul>
</p> <p><em>Core engine remains Apache 2.0 — truly open-source.</em></p>
</section> </section>
<!-- ─── SLIDE 27 : Puppet intro ─────────────────────────────────── --> <!-- ─── SLIDE 27 : Puppet intro ─────────────────────────────────── -->
@@ -895,7 +903,7 @@ finistdevs-web : ok=4 changed=3 unreachable=0 failed=0 skipped=0
<li>Every 30 minutes, each <code>puppet-agent</code> polls the Puppet Server</li> <li>Every 30 minutes, each <code>puppet-agent</code> polls the Puppet Server</li>
<li>Compiles a catalog and enforces it locally</li> <li>Compiles a catalog and enforces it locally</li>
</ul> </ul>
<p><em>Drift is corrected automatically — without anyone lifting a finger.</em></p> <p><em>Drift is corrected automatically.</em></p>
<svg width="750" height="250" viewBox="0 0 750 250" xmlns="http://www.w3.org/2000/svg" style="margin-top:0.5em;"> <svg width="750" height="250" viewBox="0 0 750 250" xmlns="http://www.w3.org/2000/svg" style="margin-top:0.5em;">
<defs> <defs>
<marker id="a-pull" viewBox="0 0 10 7" refX="9" refY="3.5" markerWidth="9" markerHeight="7" orient="auto"> <marker id="a-pull" viewBox="0 0 10 7" refX="9" refY="3.5" markerWidth="9" markerHeight="7" orient="auto">
@@ -981,7 +989,7 @@ Notice: Applied catalog in 12.34 seconds
<ul> <ul>
<li>Puppet noticed. Puppet fixed it.</li> <li>Puppet noticed. Puppet fixed it.</li>
<li>Continuous compliance — not just at deploy time. <strong>Every. 30. Minutes.</strong></li> <li>Continuous compliance — not just at deploy time. <strong>Every. 30. Minutes.</strong></li>
<li>No more gardening your servers by hand</li> <li>No manual remediation</li>
</ul> </ul>
<svg width="750" height="200" viewBox="0 0 750 200" xmlns="http://www.w3.org/2000/svg" style="margin-top:0.5em;"> <svg width="750" height="200" viewBox="0 0 750 200" xmlns="http://www.w3.org/2000/svg" style="margin-top:0.5em;">
<defs> <defs>
@@ -1040,7 +1048,7 @@ Notice: Applied catalog in 12.34 seconds
<!-- ─── SLIDE 34 : They're complementary ────────────────────────── --> <!-- ─── SLIDE 34 : They're complementary ────────────────────────── -->
<section> <section>
<h2>They're not competing. They're complementary.</h2> <h2>They're not competing. They're complementary.</h2>
<p>Each one solves a different layer of the same problem.</p> <p>Each solves a different layer of the same problem.</p>
<svg width="800" height="280" viewBox="0 0 800 280" xmlns="http://www.w3.org/2000/svg" style="margin-top:0.5em;"> <svg width="800" height="280" viewBox="0 0 800 280" xmlns="http://www.w3.org/2000/svg" style="margin-top:0.5em;">
<defs> <defs>
<marker id="a-down" viewBox="0 0 10 10" refX="5" refY="10" markerWidth="10" markerHeight="10" orient="auto"> <marker id="a-down" viewBox="0 0 10 10" refX="5" refY="10" markerWidth="10" markerHeight="10" orient="auto">