-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Apache Kafka for Admins and Ops Workshop (2 days)
- Loading branch information
1 parent
01cbc9b
commit 4f25dfe
Showing
2 changed files
with
239 additions
and
1 deletion.
There are no files selected for viewing
238 changes: 238 additions & 0 deletions
238
slides/00_agenda-2-days-Apache-Kafka-Admins-Ops-Workshop.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,238 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> | ||
|
||
<title>Apache Kafka for Admins and Ops Workshop | 2 days</title> | ||
|
||
<meta name="description" content="Apache Kafka for Admins and Ops Workshop | 2 days"> | ||
<meta name="author" content="Jacek Laskowski"> | ||
|
||
<link rel="stylesheet" href="reveal4/dist/reset.css"> | ||
<link rel="stylesheet" href="reveal4/dist/reveal.css"> | ||
<link rel="stylesheet" href="reveal4/dist/theme/beige.css"> | ||
|
||
<!-- Theme used for syntax highlighting of code --> | ||
<link rel="stylesheet" href="reveal4/plugin/highlight/monokai.css"> | ||
|
||
<!-- Jacek: custom formatting --> | ||
<link rel="stylesheet" href="revealjs-css/jacek.css"> | ||
</head> | ||
|
||
<body> | ||
<div class="reveal"> | ||
|
||
<div class="footer"> | ||
<footer style="font-size: small;"> | ||
© <a href="https://medium.com/@jaceklaskowski">Jacek Laskowski</a> 2023 / <a | ||
href="https://twitter.com/jaceklaskowski">@JacekLaskowski</a> | ||
/ [email protected] | ||
</footer> | ||
</div> | ||
|
||
<div class="slides"> | ||
|
||
<section class="intro" data-transition="zoom" id="home"> | ||
<p> | ||
<img width="14%" style="background:none; border:none; box-shadow:none;" data-src="images/kafka-logo.png"> | ||
<img width="10%" src="images/jacek_laskowski_20201229_200x200.png" style="border: 0"> | ||
</p> | ||
<h1 style="font-size: 2.77em;">Apache Kafka<br>for Admins and Ops<br>Workshop <small>2 Days</small></h1> | ||
|
||
<h4 style="font-size: smaller;"> | ||
<a href="https://twitter.com/jaceklaskowski">@jaceklaskowski</a> / <a | ||
href="https://stackoverflow.com/users/1305344/jacek-laskowski">StackOverflow</a> / <a | ||
href="https://github.com/jaceklaskowski">GitHub</a> / <a | ||
href="https://www.linkedin.com/in/jaceklaskowski/">LinkedIn</a> | ||
<br> | ||
The "Internals" Books: <a href="https://books.japila.pl">books.japila.pl</a> | ||
</h4> | ||
</section> | ||
|
||
<section> | ||
<section id="speaker" style="font-size: 85%" data-markdown> | ||
<textarea data-template> | ||
<p><img width="12%" src="images/jacek_laskowski_20201229_200x200.png" style="border: 0"></p> | ||
|
||
* **Jacek Laskowski** is a Freelance Data Engineer | ||
* Specializing in [Apache Spark](https://books.japila.pl/apache-spark-internals/), [Delta Lake](https://books.japila.pl/delta-lake-internals/), [Databricks](https://databricks.com), [Apache Kafka](https://books.japila.pl/kafka-internals/), [Kafka Streams](https://books.japila.pl/kafka-streams-internals/), [ksqlDB](https://books.japila.pl/ksqldb-internals/) | ||
* Development | Consulting | Training | Mentoring | Speaking | ||
* Best known by [The Internals Of](https://books.japila.pl) online books | ||
* 📨 [email protected] | ||
* Follow [@JacekLaskowski](https://twitter.com/jaceklaskowski) on twitter | ||
* Connect on [LinkedIn](https://www.linkedin.com/in/jaceklaskowski/) | ||
</textarea> | ||
</section> | ||
<section id="books" data-markdown> | ||
<script type="text/template"> | ||
# "The Internals Of" Online Books | ||
|
||
Head over to [https://books.japila.pl](https://books.japila.pl) | ||
</script> | ||
</section> | ||
</section> | ||
|
||
<section> | ||
<section id="goal" data-markdown> | ||
<textarea data-template> | ||
# Goal | ||
<p> | ||
Practical understanding of<br /> | ||
<b><span style="font-size: 200%">Apache Kafka</span></b><br /> | ||
for Administrators and Operations<br /> | ||
</p> | ||
</textarea> | ||
</section> | ||
</section> | ||
|
||
<section> | ||
<section id="agenda" data-markdown> | ||
<textarea data-template> | ||
## Agenda | ||
|
||
1. [Day 1](#/day1) — Kafka Fundamentals | ||
1. [Day 2](#/day2) — Kafka Development | ||
</textarea> | ||
</section> | ||
|
||
<section id="day1" data-markdown> | ||
<textarea data-template> | ||
<!-- .slide: style="font-size: 80%" --> | ||
## Day 1 — Kafka Fundamentals | ||
|
||
1. [The Essentials of Apache Kafka](apache-kafka-essentials.html) | ||
* [Exercise: Installing and Running Kafka](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Installing-and-Running-Kafka-Broker.html) | ||
* [Exercise: Exploring Zookeeper](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Exploring-Zookeeper.html) | ||
1. Developing Kafka Applications | ||
* [Exercise: Developing Kafka Producer](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Developing-Kafka-Producer.html) | ||
* [Exercise: Developing Kafka Consumer](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Developing-Kafka-Consumer.html) | ||
1. Kafka Client and Broker Configuration | ||
* [Exercise: Configuring Multi-Broker Kafka Cluster](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Configuring-Multi-Broker-Kafka-Cluster.html) | ||
1. [Managing Kafka Topics](kafka-managing-kafka-topics.html) | ||
* [Exercise: Using kafka-topics with Multi-Broker Cluster](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Using-kafka-topics-with-Multi-Broker-Cluster.html) | ||
</textarea> | ||
</section> | ||
|
||
<section id="day2" data-markdown> | ||
<textarea data-template> | ||
<!-- .slide: style="font-size: 70%" --> | ||
## Day 2 — Kafka Development | ||
|
||
1. [Monitoring Kafka Cluster](Monitoring-Kafka-Cluster.html) | ||
1. [Kafka Consumers, Consumer Groups, and Partition Rebalancing](kafka-consumers-consumer-groups-and-partition-rebalancing.html) | ||
* [Exercise: Using Consumer Group](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-using-consumer-group.html) | ||
* [Exercise: Partition Leader Election and Consumer Fail-Over](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-partition-leader-election-and-consumer-fail-over.html) | ||
1. [ConsumerRebalanceListener](https://kafka.apache.org/33/javadoc/org/apache/kafka/clients/consumer/ConsumerRebalanceListener.html) | ||
1. [ConsumerPartitionAssignor](https://kafka.apache.org/33/javadoc/org/apache/kafka/clients/consumer/ConsumerPartitionAssignor.html) | ||
1. [Partitioner](https://kafka.apache.org/33/javadoc/org/apache/kafka/clients/producer/Partitioner.html) | ||
1. [Sending Records with Callback](https://kafka.apache.org/33/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html#send-org.apache.kafka.clients.producer.ProducerRecord-org.apache.kafka.clients.producer.Callback-) | ||
1. [Transactional Producer](https://books.japila.pl/kafka-internals/transactions/) | ||
1. [Using (Confluent) Kafka with Docker](https://docs.confluent.io/platform/current/platform-quickstart.html#step-1-download-and-start-cp) | ||
1. [Kafka Streams Essentials](kafka-streams-essentials.html) | ||
1. [High-Level Streams DSL](kafka-streams-streams-dsl.html) | ||
* [Exercise: Processing Record Stream with KStream](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-streams/processing-record-stream-with-kstream.html) | ||
* [Exercise: Joining KStream with KTable ("Currency Exchange")](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-streams/kstream-join-ktable.html) | ||
</textarea> | ||
</section> | ||
|
||
</section> | ||
|
||
<section> | ||
<section id="prerequisities"> | ||
<h1>Prerequisities</h1> | ||
<h4>Be prepared to get the most out of the workshop</h4> | ||
</section> | ||
<section id="prerequisities-experience"> | ||
<h2>Prerequisities / Experience</h2> | ||
<ol> | ||
<li>Some familiarity with messaging systems</li> | ||
<li>Experience developing applications in Java (or Scala)</li> | ||
<li>Experience with shell / command line</li> | ||
</ol> | ||
</section> | ||
<section id="prerequisities-to-be-installed"> | ||
<h2>Prerequisities / To Be Installed</h2> | ||
<ul> | ||
<li>Linux or macOS (preferred)</li> | ||
<li><a href="https://www.jetbrains.com/idea/">IntelliJ IDEA</a></li> | ||
<li>Java 17 (JDK) | ||
<ul> | ||
<li><a href="https://adoptium.net/temurin/releases/?version=17">Eclipse Temurin</a> or compatible</li> | ||
</ul> | ||
</li> | ||
<li><a href="https://docs.docker.com/engine/install/">Docker installed and running</a> | ||
<ul> | ||
<li>Incl. <a href="https://docs.docker.com/compose/install/">Docker Compose</a></li> | ||
</ul> | ||
</li> | ||
|
||
</ul> | ||
</section> | ||
</section> | ||
|
||
<section> | ||
<section id="in-da-clazz"> | ||
<h1>In-Class Preparations</h1> | ||
<h4>Make Instructor's Life Slightly Easier. Thanks!</h4> | ||
</section> | ||
<section id="introduce-yourself"> | ||
<h2>Introduce Yourself</h2> | ||
<ol> | ||
<li>First name</li> | ||
<li>What's your experience with Kafka?</li> | ||
<li>Any development experience with Kafka?</li> | ||
<li>What are your expectations from the workshop?</li> | ||
<li>Any fun facts? 😉</li> | ||
</ol> | ||
</section> | ||
</section> | ||
|
||
<section style="text-align: left" data-markdown id="questions"> | ||
<textarea data-template> | ||
# Questions? | ||
|
||
* Read [The Internals of Apache Kafka](https://books.japila.pl/kafka-internals/) | ||
* Read [The Internals of Kafka Streams](https://books.japila.pl/kafka-streams-internals) | ||
* Read [The Internals of ksqlDB](https://books.japila.pl/ksqldb-internals/) | ||
* Follow [@jaceklaskowski](https://twitter.com/jaceklaskowski) on twitter (DMs open) | ||
* Upvote [my questions and answers on StackOverflow](http://stackoverflow.com/users/1305344/jacek-laskowski) | ||
* Contact me at **[email protected]** | ||
</textarea> | ||
</section> | ||
|
||
</div> | ||
</div> | ||
|
||
<script src="reveal4/dist/reveal.js"></script> | ||
<script src="reveal4/plugin/notes/notes.js"></script> | ||
<script src="reveal4/plugin/markdown/markdown.js"></script> | ||
<script src="reveal4/plugin/highlight/highlight.js"></script> | ||
<script src="reveal4/plugin/zoom/zoom.js"></script> | ||
<script> | ||
// More info about config & dependencies: | ||
// - https://github.com/hakimel/reveal.js#configuration | ||
// - https://github.com/hakimel/reveal.js#dependencies | ||
Reveal.initialize({ | ||
hash: true, | ||
pdf: true, | ||
slideNumber: 'c/t', | ||
showSlideNumber: 'speaker', | ||
// Learn about plugins: https://revealjs.com/plugins/ | ||
plugins: [RevealMarkdown, RevealHighlight, RevealNotes, RevealZoom] | ||
}); | ||
</script> | ||
<script> | ||
(function (i, s, o, g, r, a, m) { | ||
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { | ||
(i[r].q = i[r].q || []).push(arguments) | ||
}, i[r].l = 1 * new Date(); a = s.createElement(o), | ||
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) | ||
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); | ||
|
||
ga('create', 'UA-45999426-3', 'auto'); | ||
ga('send', 'pageview'); | ||
|
||
</script> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters