<!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>