My presentations, using Reveal.js (mostly in Portuguese).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

525 lines
15 KiB

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Flink Forward 2018</title>
<meta name="description" content="Colocando uma aplicação Flask em produção em 40 minutos (ou menos)">
<meta name="author" content="Julio Biason">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
<link rel="stylesheet" href="reveal.js/css/reveal.css">
<link rel="stylesheet" href="reveal.js/css/theme/night.css" id="theme">
<!-- Code syntax highlighting -->
<link rel="stylesheet" href="reveal.js/lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<!--[if lt IE 9]>
<script src="lib/js/html5shiv.js"></script>
<![endif]-->
<style type="text/css" media="screen">
.happy {
color: yellow;
}
.reveal section img {
border: none;
}
.reveal ul.empty {
list-style: none outside;
}
li {
display: block;
}
.cursor {
background-color: #666;
color: white;
}
img {
max-height: 90%;
}
td.seen {
font-style: italic;
font-weight: bold;
}
</style>
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<section data-background="_images/ff_logo.png" data-tile>
<h1 class="semi-opaque">
Flink Forward 2018
</h1>
</section>
</section>
<section>
<section>
<h2>About Flink Forward 2018</h2>
<ul>
<li>09-10 Abril 2018</li>
<li>Organized by dataArtisans</li>
</ul>
</section>
<section>
<img src="_images/ff_map.png" alt=""/>
<p>
THE VILLAGE<br/>
969 Market Street<br/>
San Francisco, CA
</p>
</section>
</section>
<section>
<section data-background="_images/ff_dayone.jpg">
</section>
<section data-background="_images/ff_watermarks0.png">
</section>
<section>
<img src="_images/ff_watermark1.png" alt=""/>
</section>
<section>
<img src="_images/ff_watermark2.png" alt=""/>
</section>
<section>
<img src="_images/ff_watermark3.png" alt=""/>
</section>
<section>
<img src="_images/ff_watermark4.png" alt=""/>
</section>
<section>
<img src="_images/ff_watermark5.png" alt=""/>
</section>
<section data-background="_images/ff_broadcast0.png"></section>
<section>
<img src="_images/ff_broadcast1.png" alt=""/>
</section>
<section data-background="_images/ff_state0.png"></section>
<section>
<img src="_images/ff_state1.png" alt=""/>
</section>
<section>
<img src="_images/ff_state2.png" alt=""/>
</section>
<section>
<img src="_images/ff_state3.png" alt=""/>
</section>
<section>
<img src="_images/ff_state4.png" alt=""/>
</section>
<section>
<img src="_images/ff_state5.png" alt=""/>
</section>
<section>
<img src="_images/ff_state6.png" alt=""/>
</section>
<!-- Testing Harnesses for Operators -->
<section data-background="_images/ff_harness0.png"></section>
<section>
<img src="_images/ff_harness1.png" alt=""/>
</section>
<!-- State and Schema Migration -->
<section data-background="_images/ff_migration0.png"></section>
<section>
<img src="_images/ff_migration1.png" alt=""/>
</section>
<section>
<img src="_images/ff_migration2.png" alt=""/>
</section>
<section>
<img src="_images/ff_migration3.png" alt=""/>
</section>
<section>
<img src="_images/ff_migration4.png" alt=""/>
</section>
<!-- Exactly-Once Processing -->
<section data-background="_images/ff_exactlyonce0.png"></section>
<section>
<img src="_images/ff_exactlyonce1.png" alt=""/>
</section>
<section>
<img src="_images/ff_exactlyonce2.png" alt=""/>
</section>
<section>
<img src="_images/ff_exactlyonce3.png" alt=""/>
</section>
<!-- Deployment and FLIP-6 -->
<section data-background="_images/ff_flip60.png"></section>
<section>
<img src="_images/ff_flip61.png" alt=""/>
</section>
<section>
<img src="_images/ff_flip62.png" alt=""/>
</section>
<section>
<img src="_images/ff_flip63.png" alt=""/>
</section>
<section>
<img src="_images/ff_flip64.png" alt=""/>
</section>
<section>
<img src="_images/ff_flip65.png" alt=""/>
</section>
<section>
<img src="_images/ff_flip66.png" alt=""/>
</section>
<section>
<img src="_images/ff_flip67.png" alt=""/>
</section>
<!-- Running Flink 24-7 -->
<section data-background="_images/ff_capacity0.png"></section>
<section>
<img src="_images/ff_capacity1.png" alt=""/>
</section>
<section>
<img src="_images/ff_capacity2.png" alt=""/>
</section>
<!-- Metrics, Monitoring and Troubleshooting -->
<section data-background="_images/ff_monitoring0.png"></section>
<section>
<img src="_images/ff_monitoring1.png" alt=""/>
</section>
<section>
<img src="_images/ff_monitoring2.png" alt=""/>
</section>
<section>
<img src="_images/ff_monitoring3.png" alt=""/>
</section>
<section>
<img src="_images/ff_monitoring4.png" alt=""/>
</section>
<section>
<img src="_images/ff_monitoring5.png" alt=""/>
</section>
<section>
<img src="_images/ff_monitoring6.png" alt=""/>
</section>
</section>
<section>
<section data-background="_images/ff_daytwo.jpg">
</section>
<section>
<table>
<thead>
<tr>
<th>Keynotes</th>
</tr>
</thead>
<tbody>
<tr>
<td>
What turns stream processing from a tool into a platform?<br/>
<small>Stephan Ewen, data Artisans</small>
</td>
</tr>
<tr>
<td>
Stream Processing Revolutionizing Big Data<br/>
<small>
Srikanth Satya, Dell EMC
</small>
</td>
</tr>
<tr>
<td>
Apache Flink + Apache Beam: Expanding the horizons of Big Data<br/>
<small>
Anand Iyer, Google Cloud
</small>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<table>
<thead>
<tr>
<th>11:00</th>
</tr>
</thead>
<tbody>
<tr>
<td>
Powering Yelp’s Data Pipeline Infrastructure with Apache Flink</br><small>Enrico Canzonieri, Yelp Inc.</small>
</td>
</tr>
<tr>
<td class="seen">
Scaling stream data pipelines <br/><small>Flavio Junqueira, Pravega by DellEMC</small>
</td>
<aside class="notes">
- Pravega
- Kinda like Kafka
- Auto-partition
- When a partition is created or destroyed a Flink TaskManager is created/destroyed
- Pravega requires a key already
</aside>
</tr>
<tr>
<td>
Building a scalable focused web crawler with Flink <br/><small>Ken Krugler, Scale Unlimited</small>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<img src="_images/ff_pravega.png" alt=""/>
</section>
<section>
<table>
<thead>
<tr>
<th>11:50</th>
</tr>
</thead>
<tbody>
<tr>
<td>Building Flink As a Service platform at Uber</br><small>Shuyi Chen, Uber</small></td>
</tr>
<tr>
<td class="seen">eBay monitoring platform preprocessing and alerting on Flink</br><small>Garret Li, ebay</small></td>
<aside class="notes">
- Sherlock.IO
- "The Frink", nervous
- Policy changes go through the pipeline
- https://vimeo.com/265025956/c7d5576622
</aside>
</tr>
<tr>
<td>Using Flink for balances and controls across platform boundaries<br/><small>Faraz Babar, American Express</small></td>
</tr>
</tbody>
</table>
</section>
<section>
<img src="_images/ff_sherlock.jpg" alt=""/>
</section>
<section>
<img src="_images/ff_sherlock_policy.png" alt=""/>
</section>
<section>
<table>
<thead>
<tr><th>12:20</th></tr>
</thead>
<tbody>
<tr><td>Scaling Flink in Cloud<br/><small>Steven Wu, Netflix</small></td></tr>
<tr><td>Flink real-time analysis in CloudStream Service of Huawei Cloud<br/><small>Jinkui Shi, Huawei</small></td></tr>
<tr>
<td class="seen">Why and how to leverage the simplicity and power of SQL on Flink<br/><small>Fabian Hueske, data Artisans</small></td>
<aside class="notes">
- Built-in in Flink 1.5
- Can create pipelines on the fly
- Launches TaskManagers
</aside>
</tr>
</tbody>
</table>
</section>
<section>
<img src="_images/ff_sql.png" alt=""/>
</section>
<section>
<table>
<thead><tr><th>2:00</th></tr></thead>
<tbody>
<tr><td>Optimizations in Blink Runtime for Global Shopping Festival at Alibaba<br><small>Feng Wang, Alibaba </small></td></tr>
<tr>
<td class="seen">Bootstrapping State In Apache Flink<br/><small>Gregory Fee, Lyft </small></td>
<aside class="notes">
- Lyft
- Grouping all information, including old ones
- Required for information of all rides of all users over all the time
- Old data on S3, new data on Kafka
- Multiple inputs
- Old input will hold new input
</aside>
</tr>
<tr><td>Panta Rhei: designing distributed applications with streams<br/><small> Aris Koliopoulos, Drivetribe </small></td></tr>
</tbody>
</table>
</section>
<section>
<img src="_images/ff_lyft.png" alt=""/>
</section>
<section>
<table>
<thead><tr><th>2:50</th></tr></thead>
<tbody>
<tr><td> Powering Tensorflor with Big Data (Apache BEAM &amp; Flink) <br/><small> Holden Karau, Google Cloud </small></td></tr>
<tr><td class="seen">Alibaba’s common algorithm platform on Flink<br/><small> Xu Yang, Alibaba </small></td></tr>
<tr><td> Cloud Native Flink <br/><small> Jowanza Joseph, One Click Retail </small></td></tr>
</tbody>
</table>
</section>
<section>
<table>
<thead><tr><th>3:20</th></tr></thead>
<tbody>
<tr><td> Embedding Flink Throughout an Operationalized Streaming ML Lifecycle <br/><small> Dave Torok, Comcast Corporation </small></td></tr>
<tr><td>Scaling Uber’s Realtime Optimization with Apache Flink <br/><small> Xingzhong Xu, Uber Technologies Inc. </small></td></tr>
<tr>
<td class="seen"> Operating Flink on Mesos at Scale <br/><small> Jörg Schad, Mesosphere </small></td>
<aside class="notes">
- Basically, the same Kubernetes does
- Use of Kube or Mesos is a personal choice
</aside>
</tr>
</tbody>
</table>
</section>
<section>
<img src="_images/ff_mesos.png" alt=""/>
</section>
<section>
<table>
<thead><tr><th>4:30</th></tr></thead>
<tbody>
<tr>
<td class="seen"> Finding Bad Acorns <br/><small> Andrew Gao, Capital One </small></td>
<aside class="notes">
- Teller validation
- Python integration (because data scientists use Jupyter)
- Queryable state
- Broke the monolith
</aside>
</tr>
<tr><td> dA Platform – Production-ready stream processing with Apache Flink <br/><small> Robert Metzger, data Artisans </small></td></tr>
<tr><td> Real-time monitoring of Mobile Internet Quality of Experience using Flink <br/><small> David Reniz, Everis </small></td></tr>
</tbody>
</table>
</section>
<section>
<img src="_images/ff_acorns_python.png" alt=""/>
</section>
<section>
<img src="_images/ff_acorns_state.png" alt=""/>
</section>
<section>
<table>
<thead><tr><th>5:20</th></tr></thead>
<tbody>
<tr><td> How to build a modern stream processor: The science behind Apache Flink <br/><small> Stefan Richter, data Artisans </small></td></tr>
<tr>
<td class="seen"> Testing Stateful Streaming Applications <br/><small> Seth Wiesman, MediaMath </small></td>
<aside class="notes">
- Math guy
- Test pipeline, break pipeline to test checkpoint
- WHYYYYY?!?!?!
</aside>
</tr>
<tr><td> Extending Flink metrics: Real-time BI atop existing Flink streaming pipelines <br/><small> Andrew Torson, Walmart Labs </small></td></tr>
</tbody>
</table>
</section>
</section>
</div>
</div>
<script src="reveal.js/lib/js/head.min.js"></script>
<script src="reveal.js/js/reveal.js"></script>
<script>
// Full list of configuration options available at:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
// showNotes: true,
transition: 'slide', // none/fade/slide/convex/concave/zoom
// Optional reveal.js plugins
dependencies: [
{ src: 'reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'reveal.js/plugin/zoom-js/zoom.js', async: true },
{ src: 'reveal.js/plugin/notes/notes.js', async: true }
]
});
</script>
</body>
</html>