deployment-talks/slides/index.html

196 lines
5.1 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Deploying Your Dumb Ideas with Dokku</title>
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/black.css">
<!-- Theme used for syntax highlighted code -->
<link rel="stylesheet" href="plugin/highlight/monokai.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<!-- Introduction -->
<section>
<h1>Deploying</h1>
<h3 class="fragment">Your Dumb Ideas</h3>
<h3 class="fragment">with Dokku</h3>
</section>
<section>
<h2>What is Deploying?</h2>
<aside class="notes">This is mostly for web applications and websites</asides>
</section>
<section>
<div>Publishing an application to be used</div>
</section>
<!-- My history of deploying shit -->
<section>
<h2>A Brief History of Deploying</h2>
</section>
<section>
<h2>Shared Web Hosting</h2>
<div class="fragment">
<img src="images/cpanel-logo.png" />
</div>
<aside class="notes">cPanel had a file manager you could upload your PHP files to!</aside>
</section>
<section>
<div>
<img src="images/cPanel-Interface.jpg" />
</div>
</section>
<section>
<h2>FTP</h2>
<div class="fragment">
<img src="images/filezilla-screenshot.webp" />
</div>
<aside class="notes">Then we evolve. Connect to your cPanel instance with FTP!</aside>
</section>
<section>
<h2>More Advanced Shared Hosting</h2>
<div class="fragment">
<img src="images/WHM_orange_RGB.png" />
</div>
<aside class="notes">Small mention of WHM and managing many installations of cPanel!</aside>
</section>
<section>
<h2>Git</h2>
<ol>
<li class="fragment"><code>$ ssh root@domain</code></li>
<li class="fragment"><code>$ cd /usr/var/www</code></li>
<li class="fragment"><code>$ git pull</code></li>
</ol>
<aside class="notes">I have never actually used Github professionally, oddly enough.</aside>
</section>
<section>
<h2>Modern Build &amp; Deployment Systems</h2>
</section>
<section>
<h2>AWS</h2>
</section>
<!-- Talk about Virtual Machines, Containers, K8s,
Talk about Jenkins, Ansible, GitHub Actions,
Bitbucket Pipelines, Terraform, Packer -->
<section>
<h2>Deployment as a Service</h2>
<ul>
<li>Heroku</li>
<li>Vercel</li>
</ul>
</section>
<section>
<h2>Dokku</h2>
<h3><em>(finally)</em></h3>
</section>
<section>
<h2 class="fragment" data-transition="fade-in">But first...</h2>
</section>
<!-- Set up the VPS, set up namesavers, set the DNS records -->
<section>
<h2>VPS</h2>
<ul>
<li>Easiest way to get a public IP</li>
<li>Cheap, modest servers, running Linux (<em>Debian</em>)
<ul>
<li>Linode</li>
<li>DigitalOcean</li>
</ul>
</li>
<li>Root access!</li>
</ul>
<aside class="notes">Virtual Private Servers, super easy for getting off the ground quickly</aside>
</section>
<section>
<h2>Domains</h2>
<ul>
<li>Buy a domain</li>
<li>Update the Nameservers</li>
<li>Add <strong>A Record</strong> for the IP to the VPS</li>
</ul>
</section>
<section>
<h2>Dokku</h2>
<ul>
<li class="fragment">Open Source, Self-Hosted, Platform as a Service</li>
<li class="fragment">Your very own Heroku</li>
</ul>
<aside class="notes">I have never used Heroku</aside>
</section>
<section>
<div class="fragment" data-transition="fade-in fade-out"><em>I have never used Heroku...</em></div>
</section>
<section>
<h2>Set Up</h2>
<ul>
<li>Install Dokku on VPS</li>
<li>Setting up Domains</li>
<li>Set up Dokku remote in your Git repo</li>
<li>Have a global <code>Dockerfile</code> in your code</li>
<li><code>$ git push -u dokku main</code></li>
</ul>
</section>
<section>
<blockquote>Buildpacks are responsible for transforming deployed code into a slug, which can then be executed on a dyno.</blockquote>
<div class="fragment" data-transition="fade-in">That feels made up.</div>
</section>
<section>
<h2>Real Life Example</h2>
<aside class="notes">Show deploying the chat application.</aside>
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/notes/notes.js"></script>
<script src="plugin/markdown/markdown.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
// Learn about plugins: https://revealjs.com/plugins/
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
});
</script>
</body>
</html>