You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by fh...@apache.org on 2016/12/22 15:43:38 UTC

[2/2] flink-web git commit: [blog] Add Year 2016 in Review blog post.

[blog] Add Year 2016 in Review blog post.

This closes #43.


Project: http://git-wip-us.apache.org/repos/asf/flink-web/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink-web/commit/f03b28f8
Tree: http://git-wip-us.apache.org/repos/asf/flink-web/tree/f03b28f8
Diff: http://git-wip-us.apache.org/repos/asf/flink-web/diff/f03b28f8

Branch: refs/heads/asf-site
Commit: f03b28f852d65c1cb6297f99f3c320c2a840d50e
Parents: 4bb81d3
Author: wints <mw...@gmail.com>
Authored: Mon Dec 19 15:47:26 2016 +0100
Committer: Fabian Hueske <fh...@gmail.com>
Committed: Thu Dec 22 16:42:56 2016 +0100

----------------------------------------------------------------------
 _posts/2016-12-19-2016-year-in-review.md        | 171 ++++++++
 content/blog/feed.xml                           | 194 +++++++++
 content/blog/index.html                         |  32 +-
 content/blog/page2/index.html                   |  38 +-
 content/blog/page3/index.html                   |  44 ++-
 content/blog/page4/index.html                   |  27 ++
 content/img/blog/flink-dow-2016.png             | Bin 0 -> 3251 bytes
 content/img/blog/flink-hod-2016.png             | Bin 0 -> 3090 bytes
 content/img/blog/flink-lines-of-code-2016.png   | Bin 0 -> 3935 bytes
 content/img/blog/flink-meetups-dec2016.png      | Bin 0 -> 560426 bytes
 content/img/blog/flink-releases-2016.png        | Bin 0 -> 109796 bytes
 content/img/blog/github-stats-2016.png          | Bin 0 -> 93704 bytes
 content/img/blog/speaker-logos-ff2016.png       | Bin 0 -> 559588 bytes
 content/index.html                              |   8 +-
 .../news/2016/12/19/2016-year-in-review.html    | 395 +++++++++++++++++++
 img/blog/flink-dow-2016.png                     | Bin 0 -> 3251 bytes
 img/blog/flink-hod-2016.png                     | Bin 0 -> 3090 bytes
 img/blog/flink-lines-of-code-2016.png           | Bin 0 -> 3935 bytes
 img/blog/flink-meetups-dec2016.png              | Bin 0 -> 560426 bytes
 img/blog/flink-releases-2016.png                | Bin 0 -> 109796 bytes
 img/blog/github-stats-2016.png                  | Bin 0 -> 93704 bytes
 img/blog/speaker-logos-ff2016.png               | Bin 0 -> 559588 bytes
 22 files changed, 860 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/_posts/2016-12-19-2016-year-in-review.md
----------------------------------------------------------------------
diff --git a/_posts/2016-12-19-2016-year-in-review.md b/_posts/2016-12-19-2016-year-in-review.md
new file mode 100644
index 0000000..f5bde64
--- /dev/null
+++ b/_posts/2016-12-19-2016-year-in-review.md
@@ -0,0 +1,171 @@
+---
+layout: post
+title:  "Apache Flink in 2016: Year in Review"
+date:   2016-12-19 09:00:00
+author: "Mike Winters"
+excerpt: "<p>As 2016 comes to a close, let's take a moment to look back on the Flink community's great work during the past year.</p>"
+categories: news
+---
+<p>2016 was an exciting year for the Apache Flink� community, and the
+  <a href="http://flink.apache.org/news/2016/03/08/release-1.0.0.html" target="_blank">release of Flink 1.0 in March</a>
+   marked the first time in Flink\u2019s history that the community guaranteed API backward compatibility for all
+   versions in a series. This step forward for Flink was followed by many new and exciting production deployments
+   in organizations of all shapes and sizes, all around the globe.</p>
+
+In this post, we\u2019ll look back on the project\u2019s progress over the course of 2016, and
+we\u2019ll also preview what 2017 has in store.
+
+{%toc%}
+
+## Community Growth
+
+### Github
+First, here's a summary of community statistics from <a href="https://github.com/apache/flink" target="_blank">GitHub</a>. At the time of writing:
+<ul>
+  <li><b>Contributors</b> have increased from 150 in December 2015 to 258 in December 2016 (up <b>72%</b>)</li>
+  <li><b>Stars</b> have increased from 813 in December 2015 to 1830 in December 2016 (up <b>125%</b>)</li>
+  <li><b>Forks</b> have increased from 544 in December 2015 to 1255 in December 2016 (up <b>130%</b>)</li>
+</ul>
+
+The community also welcomed <b>3 new committers in 2016</b>: Chengxiang Li, Greg Hogan, and Tzu-Li (Gordon) Tai.
+
+<br><img src="{{ site.baseurl }}/img/blog/github-stats-2016.png" width="775" alt="Apache Flink GitHub Stats"/>
+<br>
+<br>
+
+Next, let's take a look at a few other project stats, starting with number of commits. If we run:
+
+```
+git log --pretty=oneline --after=12/31/2015 | wc -l
+```
+...inside the Flink repository, we'll see a total of **1884** commits so far in 2016, bringing the all-time total commits to **10,015**.
+
+Now, let's go a bit deeper. And here are instructions in case you'd like to take a look at this data yourself.
+
+* Download gitstats from the [project homepage](http://gitstats.sourceforge.net/). Or, on OS X with homebrew, type:
+
+```
+brew install --HEAD homebrew/head-only/gitstats
+```
+
+* Clone the Apache Flink git repository:
+
+```
+git clone git@github.com:apache/flink.git
+```
+
+* Generate the statistics
+
+```
+gitstats flink/ flink-stats/
+```
+
+* View all the statistics as an html page using your defaulf browser:
+
+```
+open flink-stats/index.html
+```
+2016 is the year that Flink surpassed 1 million lines of code, now clocking in at **1,034,137** lines.
+
+<img src="{{ site.baseurl }}/img/blog/flink-lines-of-code-2016.png" align="center" width="550"
+ alt="Flink Total Lines of Code"/>
+
+Monday remains the day of the week with the most commits over the project's history:
+
+<img src="{{ site.baseurl }}/img/blog/flink-dow-2016.png" align="center" width="550"
+ alt="Flink Commits by Day of Week"/>
+
+And 5pm is still solidly the preferred commit time:
+
+ <img src="{{ site.baseurl }}/img/blog/flink-hod-2016.png" align="center" width="550"
+  alt="Flink Commits by Hour of Day"/>
+
+
+
+
+<br>
+
+### Meetups
+<a href="https://www.meetup.com/topics/apache-flink/" target="_blank">Apache Flink Meetup membership</a> grew by <b>240%</b>
+this year, and at the time of writing, there are 41 meetups comprised of 16,541 members listing Flink as a topic--up from 16 groups with 4,864 members in December 2015.
+The Flink community is proud to be truly global in nature.
+
+<img src="{{ site.baseurl }}/img/blog/flink-meetups-dec2016.png" width="775" alt="Apache Flink Meetup Map"/>
+
+## Flink Forward 2016
+
+The <a href="http://2016.flink-forward.org/" target="_blank">second annual Flink Forward conference </a>took place in
+Berlin on September 12-14, and over 350 members of the Flink community came together for speaker sessions, training,
+and discussion about Flink. <a href="http://2016.flink-forward.org/program/sessions/" target="_blank">Slides and videos</a>
+ from speaker sessions are available online, and we encourage you to take a look if you\u2019re interested in learning more
+ about how Flink is used in production in a wide range of organizations.
+
+Flink Forward will be expanding to <a href="http://sf.flink-forward.org/" target="_blank">San Francisco in April 2017</a>, and the <a href="http://berlin.flink-forward.org/" target="_blank">third-annual Berlin event
+  is scheduled for September 2017.</a>
+
+<img src="{{ site.baseurl }}/img/blog/speaker-logos-ff2016.png" width="775" alt="Flink Forward Speakers"/>
+
+## Features and Ecosystem
+
+### Flink Ecosystem Growth
+
+Flink was added to a selection of distributions during 2016, making it easier
+for an even larger base of users to start working with Flink:
+
+<ul>
+  <li><a href="https://aws.amazon.com/blogs/big-data/use-apache-flink-on-amazon-emr/" target="_blank">
+    Amazon EMR</a></li>
+  <li><a href="https://cloud.google.com/dataproc/docs/release-notes/service#november_29_2016" target= "_blank">
+    Google Cloud Dataproc</a></li>
+  <li><a href="https://www.lightbend.com/blog/introducing-lightbend-fast-data-platform" target="_blank">
+    Lightbend Fast Data Platform</a></li>
+</ul>
+
+In addition, the Apache Beam and Flink communities teamed up to build a Flink runner for Beam that, according to the Google team, is <a href="https://cloud.google.com/blog/big-data/2016/05/why-apache-beam-a-google-perspective"
+ target="_blank">"sophisticated enough to be a compelling alternative to Cloud Dataflow when running on premise or on non-Google clouds"</a>.
+
+### Feature Timeline in 2016
+
+Here\u2019s a selection of major features added to Flink over the course of 2016:
+
+<img src="{{ site.baseurl }}/img/blog/flink-releases-2016.png" width="775" alt="Flink Release Timeline 2016"/>
+
+If you spend time in the <a href="https://issues.apache.org/jira/browse/FLINK-4554?jql=project%20%3D%20FLINK%20AND%20issuetype%20%3D%20%22New%20Feature%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20resolved%20DESC" target="_blank">Apache Flink JIRA project</a>, you\u2019ll see that the Flink community has addressed every single one of the roadmap items identified
+in <a href="http://flink.apache.org/news/2015/12/18/a-year-in-review.html" target="_blank">2015\u2019s year in review post</a>. Here's to making that an annual tradition. :)
+
+## Looking ahead to 2017
+
+A good source of information about the Flink community's roadmap is the list of
+<a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals" target="_blank">Flink
+Improvement Proposals (FLIPs)</a> in the project wiki. Below, we'll highlight a selection of FLIPs
+that have been accepted by the community as well as some that are still under discussion.
+
+We should note that work is already underway on a number of these features, and some will even be included in Flink 1.2 at the beginning of 2017.
+
+* **A new Flink deployment and process model**, as described in <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65147077" target="_blank">FLIP-6<a/>. This work ensures that Flink supports a wide
+range of deployment types and cluster managers, making it possible to run Flink smoothly in any environment.
+
+* **Dynamic scaling** for both key-value state <a href="https://github.com/apache/flink/pull/2440" target="_blank">(as described in
+this PR)<a/> *and* non-partitioned state <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-8%3A+Rescalable+Non-Partitioned+State" target="_blank">(as described in FLIP-8)<a/>, ensuring that it's always possible to split or merge state when scaling up or down, respectively.
+
+* **Asynchronous I/O**, as described in <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65870673" target="_blank">FLIP-12
+</a>, which makes I/O access a less time-consuming process without adding complexity or the need for extra checkpoint coordination.
+
+* **Enhancements to the window evictor**, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-4+%3A+Enhance+Window+Evictor" target="_blank">FLIP-4</a>,
+to provide users with more control over how elements are evicted from a window.
+
+* **Fined-grained recovery from task failures**, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-1+%3A+Fine+Grained+Recovery+from+Task+Failures" target="_blank">FLIP-1</a>,
+to make it possible to restart only what needs to be restarted during recovery, building on cached intermediate results.
+
+* **Unified checkpoints and savepoints**, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-10%3A+Unify+Checkpoints+and+Savepoints" target="_blank">FLIP-10</a>, to
+allow savepoints to be triggered automatically--important for program updates for the sake of error handling because savepoints allow the user to modify both
+ the job and Flink version whereas checkpoints can only be recovered with the same job.
+
+* **Table API window aggregations**, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-11%3A+Table+API+Stream+Aggregations" target="_blank">FLIP-11</a>, to support group-window and row-window aggregates on streaming and batch tables.
+
+* **Side inputs**, as described in <a href="https://docs.google.com/document/d/1hIgxi2Zchww_5fWUHLoYiXwSBXjv-M5eOv-MKQYN3m4/edit" target="_blank">this design document</a>, to
+enable the joining of a main, high-throughput stream with one more more inputs with static or slowly-changing data.
+
+If you're interested in getting involved with Flink, we encourage you to take a look at the FLIPs and to join the discussion via the [Flink mailing lists](http://flink.apache.org/community.html#mailing-lists).
+
+Lastly, we'd like to extend a sincere thank you to all of the Flink community for making 2016 a great year!

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/blog/feed.xml
----------------------------------------------------------------------
diff --git a/content/blog/feed.xml b/content/blog/feed.xml
index 54eb996..e1fc711 100644
--- a/content/blog/feed.xml
+++ b/content/blog/feed.xml
@@ -7,6 +7,200 @@
 <atom:link href="http://flink.apache.org/blog/feed.xml" rel="self" type="application/rss+xml" />
 
 <item>
+<title>Apache Flink in 2016: Year in Review</title>
+<description>&lt;p&gt;2016 was an exciting year for the Apache Flink� community, and the
+  &lt;a href=&quot;http://flink.apache.org/news/2016/03/08/release-1.0.0.html&quot; target=&quot;_blank&quot;&gt;release of Flink 1.0 in March&lt;/a&gt;
+   marked the first time in Flink\u2019s history that the community guaranteed API backward compatibility for all
+   versions in a series. This step forward for Flink was followed by many new and exciting production deployments
+   in organizations of all shapes and sizes, all around the globe.&lt;/p&gt;
+
+&lt;p&gt;In this post, we\u2019ll look back on the project\u2019s progress over the course of 2016, and
+we\u2019ll also preview what 2017 has in store.&lt;/p&gt;
+
+&lt;div class=&quot;page-toc&quot;&gt;
+&lt;ul id=&quot;markdown-toc&quot;&gt;
+  &lt;li&gt;&lt;a href=&quot;#community-growth&quot; id=&quot;markdown-toc-community-growth&quot;&gt;Community Growth&lt;/a&gt;    &lt;ul&gt;
+      &lt;li&gt;&lt;a href=&quot;#github&quot; id=&quot;markdown-toc-github&quot;&gt;Github&lt;/a&gt;&lt;/li&gt;
+      &lt;li&gt;&lt;a href=&quot;#meetups&quot; id=&quot;markdown-toc-meetups&quot;&gt;Meetups&lt;/a&gt;&lt;/li&gt;
+    &lt;/ul&gt;
+  &lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;#flink-forward-2016&quot; id=&quot;markdown-toc-flink-forward-2016&quot;&gt;Flink Forward 2016&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;#features-and-ecosystem&quot; id=&quot;markdown-toc-features-and-ecosystem&quot;&gt;Features and Ecosystem&lt;/a&gt;    &lt;ul&gt;
+      &lt;li&gt;&lt;a href=&quot;#flink-ecosystem-growth&quot; id=&quot;markdown-toc-flink-ecosystem-growth&quot;&gt;Flink Ecosystem Growth&lt;/a&gt;&lt;/li&gt;
+      &lt;li&gt;&lt;a href=&quot;#feature-timeline-in-2016&quot; id=&quot;markdown-toc-feature-timeline-in-2016&quot;&gt;Feature Timeline in 2016&lt;/a&gt;&lt;/li&gt;
+    &lt;/ul&gt;
+  &lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;#looking-ahead-to-2017&quot; id=&quot;markdown-toc-looking-ahead-to-2017&quot;&gt;Looking ahead to 2017&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;/div&gt;
+
+&lt;h2 id=&quot;community-growth&quot;&gt;Community Growth&lt;/h2&gt;
+
+&lt;h3 id=&quot;github&quot;&gt;Github&lt;/h3&gt;
+&lt;p&gt;First, here\u2019s a summary of community statistics from &lt;a href=&quot;https://github.com/apache/flink&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;. At the time of writing:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;&lt;b&gt;Contributors&lt;/b&gt; have increased from 150 in December 2015 to 258 in December 2016 (up &lt;b&gt;72%&lt;/b&gt;)&lt;/li&gt;
+  &lt;li&gt;&lt;b&gt;Stars&lt;/b&gt; have increased from 813 in December 2015 to 1830 in December 2016 (up &lt;b&gt;125%&lt;/b&gt;)&lt;/li&gt;
+  &lt;li&gt;&lt;b&gt;Forks&lt;/b&gt; have increased from 544 in December 2015 to 1255 in December 2016 (up &lt;b&gt;130%&lt;/b&gt;)&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;The community also welcomed &lt;b&gt;3 new committers in 2016&lt;/b&gt;: Chengxiang Li, Greg Hogan, and Tzu-Li (Gordon) Tai.&lt;/p&gt;
+
+&lt;p&gt;&lt;br /&gt;&lt;img src=&quot;/img/blog/github-stats-2016.png&quot; width=&quot;775&quot; alt=&quot;Apache Flink GitHub Stats&quot; /&gt;
+&lt;br /&gt;
+&lt;br /&gt;&lt;/p&gt;
+
+&lt;p&gt;Next, let\u2019s take a look at a few other project stats, starting with number of commits. If we run:&lt;/p&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code&gt;git log --pretty=oneline --after=12/31/2015 | wc -l
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+&lt;p&gt;\u2026inside the Flink repository, we\u2019ll see a total of &lt;strong&gt;1884&lt;/strong&gt; commits so far in 2016, bringing the all-time total commits to &lt;strong&gt;10,015&lt;/strong&gt;.&lt;/p&gt;
+
+&lt;p&gt;Now, let\u2019s go a bit deeper. And here are instructions in case you\u2019d like to take a look at this data yourself.&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Download gitstats from the &lt;a href=&quot;http://gitstats.sourceforge.net/&quot;&gt;project homepage&lt;/a&gt;. Or, on OS X with homebrew, type:&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code&gt;brew install --HEAD homebrew/head-only/gitstats
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Clone the Apache Flink git repository:&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code&gt;git clone git@github.com:apache/flink.git
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Generate the statistics&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code&gt;gitstats flink/ flink-stats/
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;View all the statistics as an html page using your defaulf browser:&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code&gt;open flink-stats/index.html
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+&lt;p&gt;2016 is the year that Flink surpassed 1 million lines of code, now clocking in at &lt;strong&gt;1,034,137&lt;/strong&gt; lines.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/img/blog/flink-lines-of-code-2016.png&quot; align=&quot;center&quot; width=&quot;550&quot; alt=&quot;Flink Total Lines of Code&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;Monday remains the day of the week with the most commits over the project\u2019s history:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/img/blog/flink-dow-2016.png&quot; align=&quot;center&quot; width=&quot;550&quot; alt=&quot;Flink Commits by Day of Week&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;And 5pm is still solidly the preferred commit time:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/img/blog/flink-hod-2016.png&quot; align=&quot;center&quot; width=&quot;550&quot; alt=&quot;Flink Commits by Hour of Day&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
+
+&lt;h3 id=&quot;meetups&quot;&gt;Meetups&lt;/h3&gt;
+&lt;p&gt;&lt;a href=&quot;https://www.meetup.com/topics/apache-flink/&quot; target=&quot;_blank&quot;&gt;Apache Flink Meetup membership&lt;/a&gt; grew by &lt;b&gt;240%&lt;/b&gt;
+this year, and at the time of writing, there are 41 meetups comprised of 16,541 members listing Flink as a topic\u2013up from 16 groups with 4,864 members in December 2015.
+The Flink community is proud to be truly global in nature.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/img/blog/flink-meetups-dec2016.png&quot; width=&quot;775&quot; alt=&quot;Apache Flink Meetup Map&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;flink-forward-2016&quot;&gt;Flink Forward 2016&lt;/h2&gt;
+
+&lt;p&gt;The &lt;a href=&quot;http://2016.flink-forward.org/&quot; target=&quot;_blank&quot;&gt;second annual Flink Forward conference &lt;/a&gt;took place in
+Berlin on September 12-14, and over 350 members of the Flink community came together for speaker sessions, training,
+and discussion about Flink. &lt;a href=&quot;http://2016.flink-forward.org/program/sessions/&quot; target=&quot;_blank&quot;&gt;Slides and videos&lt;/a&gt;
+ from speaker sessions are available online, and we encourage you to take a look if you\u2019re interested in learning more
+ about how Flink is used in production in a wide range of organizations.&lt;/p&gt;
+
+&lt;p&gt;Flink Forward will be expanding to &lt;a href=&quot;http://sf.flink-forward.org/&quot; target=&quot;_blank&quot;&gt;San Francisco in April 2017&lt;/a&gt;, and the &lt;a href=&quot;http://berlin.flink-forward.org/&quot; target=&quot;_blank&quot;&gt;third-annual Berlin event
+  is scheduled for September 2017.&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/img/blog/speaker-logos-ff2016.png&quot; width=&quot;775&quot; alt=&quot;Flink Forward Speakers&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;features-and-ecosystem&quot;&gt;Features and Ecosystem&lt;/h2&gt;
+
+&lt;h3 id=&quot;flink-ecosystem-growth&quot;&gt;Flink Ecosystem Growth&lt;/h3&gt;
+
+&lt;p&gt;Flink was added to a selection of distributions during 2016, making it easier
+for an even larger base of users to start working with Flink:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;a href=&quot;https://aws.amazon.com/blogs/big-data/use-apache-flink-on-amazon-emr/&quot; target=&quot;_blank&quot;&gt;
+    Amazon EMR&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://cloud.google.com/dataproc/docs/release-notes/service#november_29_2016&quot; target=&quot;_blank&quot;&gt;
+    Google Cloud Dataproc&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://www.lightbend.com/blog/introducing-lightbend-fast-data-platform&quot; target=&quot;_blank&quot;&gt;
+    Lightbend Fast Data Platform&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;In addition, the Apache Beam and Flink communities teamed up to build a Flink runner for Beam that, according to the Google team, is &lt;a href=&quot;https://cloud.google.com/blog/big-data/2016/05/why-apache-beam-a-google-perspective&quot; target=&quot;_blank&quot;&gt;\u201csophisticated enough to be a compelling alternative to Cloud Dataflow when running on premise or on non-Google clouds\u201d&lt;/a&gt;.&lt;/p&gt;
+
+&lt;h3 id=&quot;feature-timeline-in-2016&quot;&gt;Feature Timeline in 2016&lt;/h3&gt;
+
+&lt;p&gt;Here\u2019s a selection of major features added to Flink over the course of 2016:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/img/blog/flink-releases-2016.png&quot; width=&quot;775&quot; alt=&quot;Flink Release Timeline 2016&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;If you spend time in the &lt;a href=&quot;https://issues.apache.org/jira/browse/FLINK-4554?jql=project%20%3D%20FLINK%20AND%20issuetype%20%3D%20%22New%20Feature%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20resolved%20DESC&quot; target=&quot;_blank&quot;&gt;Apache Flink JIRA project&lt;/a&gt;, you\u2019ll see that the Flink community has addressed every single one of the roadmap items identified
+in &lt;a href=&quot;http://flink.apache.org/news/2015/12/18/a-year-in-review.html&quot; target=&quot;_blank&quot;&gt;2015\u2019s year in review post&lt;/a&gt;. Here\u2019s to making that an annual tradition. :)&lt;/p&gt;
+
+&lt;h2 id=&quot;looking-ahead-to-2017&quot;&gt;Looking ahead to 2017&lt;/h2&gt;
+
+&lt;p&gt;A good source of information about the Flink community\u2019s roadmap is the list of
+&lt;a href=&quot;https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals&quot; target=&quot;_blank&quot;&gt;Flink
+Improvement Proposals (FLIPs)&lt;/a&gt; in the project wiki. Below, we\u2019ll highlight a selection of FLIPs
+that have been accepted by the community as well as some that are still under discussion.&lt;/p&gt;
+
+&lt;p&gt;We should note that work is already underway on a number of these features, and some will even be included in Flink 1.2 at the beginning of 2017.&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;A new Flink deployment and process model&lt;/strong&gt;, as described in &lt;a href=&quot;https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65147077&quot; target=&quot;_blank&quot;&gt;FLIP-6&lt;a&gt;&lt;/a&gt;. This work ensures that Flink supports a wide
+range of deployment types and cluster managers, making it possible to run Flink smoothly in any environment.&lt;/a&gt;&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;Dynamic scaling&lt;/strong&gt; for both key-value state &lt;a href=&quot;https://github.com/apache/flink/pull/2440&quot; target=&quot;_blank&quot;&gt;(as described in
+this PR)&lt;a&gt;&lt;/a&gt; &lt;em&gt;and&lt;/em&gt; non-partitioned state &lt;a href=&quot;https://cwiki.apache.org/confluence/display/FLINK/FLIP-8%3A+Rescalable+Non-Partitioned+State&quot; target=&quot;_blank&quot;&gt;(as described in FLIP-8)&lt;a&gt;&lt;/a&gt;, ensuring that it\u2019s always possible to split or merge state when scaling up or down, respectively.&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;Asynchronous I/O&lt;/strong&gt;, as described in &lt;a href=&quot;https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65870673&quot; target=&quot;_blank&quot;&gt;FLIP-12
+&lt;/a&gt;, which makes I/O access a less time-consuming process without adding complexity or the need for extra checkpoint coordination.&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;Enhancements to the window evictor&lt;/strong&gt;, as described in &lt;a href=&quot;https://cwiki.apache.org/confluence/display/FLINK/FLIP-4+%3A+Enhance+Window+Evictor&quot; target=&quot;_blank&quot;&gt;FLIP-4&lt;/a&gt;,
+to provide users with more control over how elements are evicted from a window.&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;Fined-grained recovery from task failures&lt;/strong&gt;, as described in &lt;a href=&quot;https://cwiki.apache.org/confluence/display/FLINK/FLIP-1+%3A+Fine+Grained+Recovery+from+Task+Failures&quot; target=&quot;_blank&quot;&gt;FLIP-1&lt;/a&gt;,
+to make it possible to restart only what needs to be restarted during recovery, building on cached intermediate results.&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;Unified checkpoints and savepoints&lt;/strong&gt;, as described in &lt;a href=&quot;https://cwiki.apache.org/confluence/display/FLINK/FLIP-10%3A+Unify+Checkpoints+and+Savepoints&quot; target=&quot;_blank&quot;&gt;FLIP-10&lt;/a&gt;, to
+allow savepoints to be triggered automatically\u2013important for program updates for the sake of error handling because savepoints allow the user to modify both
+ the job and Flink version whereas checkpoints can only be recovered with the same job.&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;Table API window aggregations&lt;/strong&gt;, as described in &lt;a href=&quot;https://cwiki.apache.org/confluence/display/FLINK/FLIP-11%3A+Table+API+Stream+Aggregations&quot; target=&quot;_blank&quot;&gt;FLIP-11&lt;/a&gt;, to support group-window and row-window aggregates on streaming and batch tables.&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;Side inputs&lt;/strong&gt;, as described in &lt;a href=&quot;https://docs.google.com/document/d/1hIgxi2Zchww_5fWUHLoYiXwSBXjv-M5eOv-MKQYN3m4/edit&quot; target=&quot;_blank&quot;&gt;this design document&lt;/a&gt;, to
+enable the joining of a main, high-throughput stream with one more more inputs with static or slowly-changing data.&lt;/p&gt;
+  &lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;If you\u2019re interested in getting involved with Flink, we encourage you to take a look at the FLIPs and to join the discussion via the &lt;a href=&quot;http://flink.apache.org/community.html#mailing-lists&quot;&gt;Flink mailing lists&lt;/a&gt;.&lt;/p&gt;
+
+&lt;p&gt;Lastly, we\u2019d like to extend a sincere thank you to all of the Flink community for making 2016 a great year!&lt;/p&gt;
+</description>
+<pubDate>Mon, 19 Dec 2016 10:00:00 +0100</pubDate>
+<link>http://flink.apache.org/news/2016/12/19/2016-year-in-review.html</link>
+<guid isPermaLink="true">/news/2016/12/19/2016-year-in-review.html</guid>
+</item>
+
+<item>
 <title>Apache Flink 1.1.3 Released</title>
 <description>&lt;p&gt;The Apache Flink community released the next bugfix version of the Apache Flink 1.1. series.&lt;/p&gt;
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/blog/index.html
----------------------------------------------------------------------
diff --git a/content/blog/index.html b/content/blog/index.html
index fab04d1..85aa21c 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -162,6 +162,17 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a href="/news/2016/12/19/2016-year-in-review.html">Apache Flink in 2016: Year in Review</a></h2>
+      <p>19 Dec 2016 by Mike Winters</p>
+
+      <p><p>As 2016 comes to a close, let's take a moment to look back on the Flink community's great work during the past year.</p></p>
+
+      <p><a href="/news/2016/12/19/2016-year-in-review.html">Continue reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a href="/news/2016/10/12/release-1.1.3.html">Apache Flink 1.1.3 Released</a></h2>
       <p>12 Oct 2016</p>
 
@@ -277,17 +288,6 @@
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a href="/news/2016/04/06/cep-monitoring.html">Introducing Complex Event Processing (CEP) with Apache Flink</a></h2>
-      <p>06 Apr 2016 by Till Rohrmann (<a href="https://twitter.com/stsffap">@stsffap</a>)</p>
-
-      <p>In this blog post, we introduce Flink's new <a href="https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/libs/cep.html">CEP library</a> that allows you to do pattern matching on event streams. Through the example of monitoring a data center and generating alerts, we showcase the library's ease of use and its intuitive Pattern API.</p>
-
-      <p><a href="/news/2016/04/06/cep-monitoring.html">Continue reading &raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -320,6 +320,16 @@
 
     <ul id="markdown-toc">
       
+      <li><a href="/news/2016/12/19/2016-year-in-review.html">Apache Flink in 2016: Year in Review</a></li>
+      
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/news/2016/10/12/release-1.1.3.html">Apache Flink 1.1.3 Released</a></li>
       
       

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/blog/page2/index.html
----------------------------------------------------------------------
diff --git a/content/blog/page2/index.html b/content/blog/page2/index.html
index 49a36f6..fccdd74 100644
--- a/content/blog/page2/index.html
+++ b/content/blog/page2/index.html
@@ -162,6 +162,17 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a href="/news/2016/04/06/cep-monitoring.html">Introducing Complex Event Processing (CEP) with Apache Flink</a></h2>
+      <p>06 Apr 2016 by Till Rohrmann (<a href="https://twitter.com/stsffap">@stsffap</a>)</p>
+
+      <p>In this blog post, we introduce Flink's new <a href="https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/libs/cep.html">CEP library</a> that allows you to do pattern matching on event streams. Through the example of monitoring a data center and generating alerts, we showcase the library's ease of use and its intuitive Pattern API.</p>
+
+      <p><a href="/news/2016/04/06/cep-monitoring.html">Continue reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a href="/news/2016/04/06/release-1.0.1.html">Flink 1.0.1 Released</a></h2>
       <p>06 Apr 2016</p>
 
@@ -272,23 +283,6 @@
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a href="/news/2015/09/03/flink-forward.html">Announcing Flink Forward 2015</a></h2>
-      <p>03 Sep 2015</p>
-
-      <p><p><a href="http://2015.flink-forward.org/">Flink Forward 2015</a> is the first
-conference with Flink at its center that aims to bring together the
-Apache Flink community in a single place. The organizers are starting
-this conference in October 12 and 13 from Berlin, the place where
-Apache Flink started.</p>
-
-</p>
-
-      <p><a href="/news/2015/09/03/flink-forward.html">Continue reading &raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -321,6 +315,16 @@ Apache Flink started.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/news/2016/12/19/2016-year-in-review.html">Apache Flink in 2016: Year in Review</a></li>
+      
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/news/2016/10/12/release-1.1.3.html">Apache Flink 1.1.3 Released</a></li>
       
       

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/blog/page3/index.html
----------------------------------------------------------------------
diff --git a/content/blog/page3/index.html b/content/blog/page3/index.html
index 193ec5f..afa5d8c 100644
--- a/content/blog/page3/index.html
+++ b/content/blog/page3/index.html
@@ -162,6 +162,23 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a href="/news/2015/09/03/flink-forward.html">Announcing Flink Forward 2015</a></h2>
+      <p>03 Sep 2015</p>
+
+      <p><p><a href="http://2015.flink-forward.org/">Flink Forward 2015</a> is the first
+conference with Flink at its center that aims to bring together the
+Apache Flink community in a single place. The organizers are starting
+this conference in October 12 and 13 from Berlin, the place where
+Apache Flink started.</p>
+
+</p>
+
+      <p><a href="/news/2015/09/03/flink-forward.html">Continue reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a href="/news/2015/09/01/release-0.9.1.html">Apache Flink 0.9.1 available</a></h2>
       <p>01 Sep 2015</p>
 
@@ -284,23 +301,6 @@ community last month.</p>
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a href="/news/2015/02/09/streaming-example.html">Introducing Flink Streaming</a></h2>
-      <p>09 Feb 2015</p>
-
-      <p><p>This post is the first of a series of blog posts on Flink Streaming,
-the recent addition to Apache Flink that makes it possible to analyze
-continuous data sources in addition to static files. Flink Streaming
-uses the pipelined Flink engine to process data streams in real time
-and offers a new API including definition of flexible windows.</p>
-
-</p>
-
-      <p><a href="/news/2015/02/09/streaming-example.html">Continue reading &raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -333,6 +333,16 @@ and offers a new API including definition of flexible windows.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/news/2016/12/19/2016-year-in-review.html">Apache Flink in 2016: Year in Review</a></li>
+      
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/news/2016/10/12/release-1.1.3.html">Apache Flink 1.1.3 Released</a></li>
       
       

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/blog/page4/index.html
----------------------------------------------------------------------
diff --git a/content/blog/page4/index.html b/content/blog/page4/index.html
index 1b9c05d..d3e2180 100644
--- a/content/blog/page4/index.html
+++ b/content/blog/page4/index.html
@@ -162,6 +162,23 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a href="/news/2015/02/09/streaming-example.html">Introducing Flink Streaming</a></h2>
+      <p>09 Feb 2015</p>
+
+      <p><p>This post is the first of a series of blog posts on Flink Streaming,
+the recent addition to Apache Flink that makes it possible to analyze
+continuous data sources in addition to static files. Flink Streaming
+uses the pipelined Flink engine to process data streams in real time
+and offers a new API including definition of flexible windows.</p>
+
+</p>
+
+      <p><a href="/news/2015/02/09/streaming-example.html">Continue reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a href="/news/2015/02/04/january-in-flink.html">January 2015 in the Flink community</a></h2>
       <p>04 Feb 2015</p>
 
@@ -300,6 +317,16 @@ academic and open source project that Flink originates from.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/news/2016/12/19/2016-year-in-review.html">Apache Flink in 2016: Year in Review</a></li>
+      
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/news/2016/10/12/release-1.1.3.html">Apache Flink 1.1.3 Released</a></li>
       
       

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/img/blog/flink-dow-2016.png
----------------------------------------------------------------------
diff --git a/content/img/blog/flink-dow-2016.png b/content/img/blog/flink-dow-2016.png
new file mode 100644
index 0000000..c90d768
Binary files /dev/null and b/content/img/blog/flink-dow-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/img/blog/flink-hod-2016.png
----------------------------------------------------------------------
diff --git a/content/img/blog/flink-hod-2016.png b/content/img/blog/flink-hod-2016.png
new file mode 100644
index 0000000..8f33652
Binary files /dev/null and b/content/img/blog/flink-hod-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/img/blog/flink-lines-of-code-2016.png
----------------------------------------------------------------------
diff --git a/content/img/blog/flink-lines-of-code-2016.png b/content/img/blog/flink-lines-of-code-2016.png
new file mode 100644
index 0000000..d248605
Binary files /dev/null and b/content/img/blog/flink-lines-of-code-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/img/blog/flink-meetups-dec2016.png
----------------------------------------------------------------------
diff --git a/content/img/blog/flink-meetups-dec2016.png b/content/img/blog/flink-meetups-dec2016.png
new file mode 100644
index 0000000..2a02fab
Binary files /dev/null and b/content/img/blog/flink-meetups-dec2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/img/blog/flink-releases-2016.png
----------------------------------------------------------------------
diff --git a/content/img/blog/flink-releases-2016.png b/content/img/blog/flink-releases-2016.png
new file mode 100644
index 0000000..f31e586
Binary files /dev/null and b/content/img/blog/flink-releases-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/img/blog/github-stats-2016.png
----------------------------------------------------------------------
diff --git a/content/img/blog/github-stats-2016.png b/content/img/blog/github-stats-2016.png
new file mode 100644
index 0000000..5d66f8f
Binary files /dev/null and b/content/img/blog/github-stats-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/img/blog/speaker-logos-ff2016.png
----------------------------------------------------------------------
diff --git a/content/img/blog/speaker-logos-ff2016.png b/content/img/blog/speaker-logos-ff2016.png
new file mode 100644
index 0000000..995b051
Binary files /dev/null and b/content/img/blog/speaker-logos-ff2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/index.html
----------------------------------------------------------------------
diff --git a/content/index.html b/content/index.html
index 4d82333..ae93989 100644
--- a/content/index.html
+++ b/content/index.html
@@ -235,6 +235,10 @@
 
     <ul class="list-group">
   
+      <li class="list-group-item"><span>19 Dec 2016</span> &raquo;
+        <a href="/news/2016/12/19/2016-year-in-review.html">Apache Flink in 2016: Year in Review</a>
+      </li>
+  
       <li class="list-group-item"><span>12 Oct 2016</span> &raquo;
         <a href="/news/2016/10/12/release-1.1.3.html">Apache Flink 1.1.3 Released</a>
       </li>
@@ -250,10 +254,6 @@
       <li class="list-group-item"><span>11 Aug 2016</span> &raquo;
         <a href="/news/2016/08/11/release-1.1.1.html">Flink 1.1.1 Released</a>
       </li>
-  
-      <li class="list-group-item"><span>08 Aug 2016</span> &raquo;
-        <a href="/news/2016/08/08/release-1.1.0.html">Announcing Apache Flink 1.1.0</a>
-      </li>
 
 </ul>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/content/news/2016/12/19/2016-year-in-review.html
----------------------------------------------------------------------
diff --git a/content/news/2016/12/19/2016-year-in-review.html b/content/news/2016/12/19/2016-year-in-review.html
new file mode 100644
index 0000000..386769f
--- /dev/null
+++ b/content/news/2016/12/19/2016-year-in-review.html
@@ -0,0 +1,395 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
+    <title>Apache Flink: Apache Flink in 2016: Year in Review</title>
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
+    <link rel="icon" href="/favicon.ico" type="image/x-icon">
+
+    <!-- Bootstrap -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
+    <link rel="stylesheet" href="/css/flink.css">
+    <link rel="stylesheet" href="/css/syntax.css">
+
+    <!-- Blog RSS feed -->
+    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" title="Apache Flink Blog: RSS feed" />
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <!-- We need to load Jquery in the header for custom google analytics event tracking-->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>  
+    
+
+  <!-- Top navbar. -->
+    <nav class="navbar navbar-default navbar-fixed-top">
+      <div class="container">
+        <!-- The logo. -->
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <div class="navbar-logo">
+            <a href="/">
+              <img alt="Apache Flink" src="/img/navbar-brand-logo.jpg" width="78px" height="40px">
+            </a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav">
+
+            <!-- Overview -->
+            <li><a href="/index.html">Overview</a></li>
+
+            <!-- Features -->
+            <li><a href="/features.html">Features</a></li>
+
+            <!-- Downloads -->
+            <li><a href="/downloads.html">Downloads</a></li>
+
+            <!-- FAQ -->
+            <li><a href="/faq.html">FAQ</a></li>
+
+
+            <!-- Quickstart -->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><small><span class="glyphicon glyphicon-new-window"></span></small> Quickstart <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/setup_quickstart.html">Setup</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/run_example_quickstart.html">Example: Wikipedia Edit Stream</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/java_api_quickstart.html">Java API</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/scala_api_quickstart.html">Scala API</a></li>
+              </ul>
+            </li>
+
+            <!-- Documentation -->
+            <li class="dropdown">
+              <a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><small><span class="glyphicon glyphicon-new-window"></span></small> Documentation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Latest stable release -->
+                <li role="presentation" class="dropdown-header"><strong>Latest Release</strong> (Stable)</li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1">1.1 Documentation</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/api/java" class="active">1.1 Javadocs</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/api/scala/index.html" class="active">1.1 ScalaDocs</a></li>
+
+                <!-- Snapshot docs -->
+                <li class="divider"></li>
+                <li role="presentation" class="dropdown-header"><strong>Snapshot</strong> (Development)</li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.2">1.2 Documentation</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.2/api/java" class="active">1.2 Javadocs</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.2/api/scala/index.html" class="active">1.2 ScalaDocs</a></li>
+
+                <!-- Wiki -->
+                <li class="divider"></li>
+                <li><a href="/visualizer/"><small><span class="glyphicon glyphicon-new-window"></span></small> Plan Visualizer</a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
+              </ul>
+            </li>
+
+          </ul>
+
+          <ul class="nav navbar-nav navbar-right">
+            <!-- Blog -->
+            <li class=" active hidden-md hidden-sm"><a href="/blog/">Blog</a></li>
+
+            <li class="dropdown hidden-md hidden-sm">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Community <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Community -->
+                <li role="presentation" class="dropdown-header"><strong>Community</strong></li>
+                <li><a href="/community.html#mailing-lists">Mailing Lists</a></li>
+                <li><a href="/community.html#irc">IRC</a></li>
+                <li><a href="/community.html#stack-overflow">Stack Overflow</a></li>
+                <li><a href="/community.html#issue-tracker">Issue Tracker</a></li>
+                <li><a href="/community.html#third-party-packages">Third Party Packages</a></li>
+                <li><a href="/community.html#source-code">Source Code</a></li>
+                <li><a href="/community.html#people">People</a></li>
+                <li><a href="/poweredby.html">Powered by Flink</a></li>
+
+                <!-- Contribute -->
+                <li class="divider"></li>
+                <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
+                <li><a href="/how-to-contribute.html">How to Contribute</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals"><small><span class="glyphicon glyphicon-new-window"></span></small> Flink Improvement Proposals (Design Docs)</a></li>
+              </ul>
+            </li>
+
+            <li class="dropdown hidden-md hidden-sm">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Project -->
+                <li role="presentation" class="dropdown-header"><strong>Project</strong></li>
+                <li><a href="/slides.html">Slides</a></li>
+                <li><a href="/material.html">Material</a></li>
+                <li><a href="https://twitter.com/apacheflink"><small><span class="glyphicon glyphicon-new-window"></span></small> Twitter</a></li>
+                <li><a href="https://github.com/apache/flink"><small><span class="glyphicon glyphicon-new-window"></span></small> GitHub</a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div><!-- /.navbar-collapse -->
+      </div><!-- /.container -->
+    </nav>
+
+
+    <!-- Main content. -->
+    <div class="container">
+      
+
+<div class="row">
+  <div class="col-sm-8 col-sm-offset-2">
+    <div class="row">
+      <h1>Apache Flink in 2016: Year in Review</h1>
+
+      <article>
+        <p>19 Dec 2016 by Mike Winters</p>
+
+<p>2016 was an exciting year for the Apache Flink� community, and the
+  <a href="http://flink.apache.org/news/2016/03/08/release-1.0.0.html" target="_blank">release of Flink 1.0 in March</a>
+   marked the first time in Flink\u2019s history that the community guaranteed API backward compatibility for all
+   versions in a series. This step forward for Flink was followed by many new and exciting production deployments
+   in organizations of all shapes and sizes, all around the globe.</p>
+
+<p>In this post, we\u2019ll look back on the project\u2019s progress over the course of 2016, and
+we\u2019ll also preview what 2017 has in store.</p>
+
+<div class="page-toc">
+<ul id="markdown-toc">
+  <li><a href="#community-growth" id="markdown-toc-community-growth">Community Growth</a>    <ul>
+      <li><a href="#github" id="markdown-toc-github">Github</a></li>
+      <li><a href="#meetups" id="markdown-toc-meetups">Meetups</a></li>
+    </ul>
+  </li>
+  <li><a href="#flink-forward-2016" id="markdown-toc-flink-forward-2016">Flink Forward 2016</a></li>
+  <li><a href="#features-and-ecosystem" id="markdown-toc-features-and-ecosystem">Features and Ecosystem</a>    <ul>
+      <li><a href="#flink-ecosystem-growth" id="markdown-toc-flink-ecosystem-growth">Flink Ecosystem Growth</a></li>
+      <li><a href="#feature-timeline-in-2016" id="markdown-toc-feature-timeline-in-2016">Feature Timeline in 2016</a></li>
+    </ul>
+  </li>
+  <li><a href="#looking-ahead-to-2017" id="markdown-toc-looking-ahead-to-2017">Looking ahead to 2017</a></li>
+</ul>
+
+</div>
+
+<h2 id="community-growth">Community Growth</h2>
+
+<h3 id="github">Github</h3>
+<p>First, here\u2019s a summary of community statistics from <a href="https://github.com/apache/flink" target="_blank">GitHub</a>. At the time of writing:</p>
+<ul>
+  <li><b>Contributors</b> have increased from 150 in December 2015 to 258 in December 2016 (up <b>72%</b>)</li>
+  <li><b>Stars</b> have increased from 813 in December 2015 to 1830 in December 2016 (up <b>125%</b>)</li>
+  <li><b>Forks</b> have increased from 544 in December 2015 to 1255 in December 2016 (up <b>130%</b>)</li>
+</ul>
+
+<p>The community also welcomed <b>3 new committers in 2016</b>: Chengxiang Li, Greg Hogan, and Tzu-Li (Gordon) Tai.</p>
+
+<p><br /><img src="/img/blog/github-stats-2016.png" width="775" alt="Apache Flink GitHub Stats" />
+<br />
+<br /></p>
+
+<p>Next, let\u2019s take a look at a few other project stats, starting with number of commits. If we run:</p>
+
+<div class="highlight"><pre><code>git log --pretty=oneline --after=12/31/2015 | wc -l
+</code></pre></div>
+<p>\u2026inside the Flink repository, we\u2019ll see a total of <strong>1884</strong> commits so far in 2016, bringing the all-time total commits to <strong>10,015</strong>.</p>
+
+<p>Now, let\u2019s go a bit deeper. And here are instructions in case you\u2019d like to take a look at this data yourself.</p>
+
+<ul>
+  <li>Download gitstats from the <a href="http://gitstats.sourceforge.net/">project homepage</a>. Or, on OS X with homebrew, type:</li>
+</ul>
+
+<div class="highlight"><pre><code>brew install --HEAD homebrew/head-only/gitstats
+</code></pre></div>
+
+<ul>
+  <li>Clone the Apache Flink git repository:</li>
+</ul>
+
+<div class="highlight"><pre><code>git clone git@github.com:apache/flink.git
+</code></pre></div>
+
+<ul>
+  <li>Generate the statistics</li>
+</ul>
+
+<div class="highlight"><pre><code>gitstats flink/ flink-stats/
+</code></pre></div>
+
+<ul>
+  <li>View all the statistics as an html page using your defaulf browser:</li>
+</ul>
+
+<div class="highlight"><pre><code>open flink-stats/index.html
+</code></pre></div>
+<p>2016 is the year that Flink surpassed 1 million lines of code, now clocking in at <strong>1,034,137</strong> lines.</p>
+
+<p><img src="/img/blog/flink-lines-of-code-2016.png" align="center" width="550" alt="Flink Total Lines of Code" /></p>
+
+<p>Monday remains the day of the week with the most commits over the project\u2019s history:</p>
+
+<p><img src="/img/blog/flink-dow-2016.png" align="center" width="550" alt="Flink Commits by Day of Week" /></p>
+
+<p>And 5pm is still solidly the preferred commit time:</p>
+
+<p><img src="/img/blog/flink-hod-2016.png" align="center" width="550" alt="Flink Commits by Hour of Day" /></p>
+
+<p><br /></p>
+
+<h3 id="meetups">Meetups</h3>
+<p><a href="https://www.meetup.com/topics/apache-flink/" target="_blank">Apache Flink Meetup membership</a> grew by <b>240%</b>
+this year, and at the time of writing, there are 41 meetups comprised of 16,541 members listing Flink as a topic\u2013up from 16 groups with 4,864 members in December 2015.
+The Flink community is proud to be truly global in nature.</p>
+
+<p><img src="/img/blog/flink-meetups-dec2016.png" width="775" alt="Apache Flink Meetup Map" /></p>
+
+<h2 id="flink-forward-2016">Flink Forward 2016</h2>
+
+<p>The <a href="http://2016.flink-forward.org/" target="_blank">second annual Flink Forward conference </a>took place in
+Berlin on September 12-14, and over 350 members of the Flink community came together for speaker sessions, training,
+and discussion about Flink. <a href="http://2016.flink-forward.org/program/sessions/" target="_blank">Slides and videos</a>
+ from speaker sessions are available online, and we encourage you to take a look if you\u2019re interested in learning more
+ about how Flink is used in production in a wide range of organizations.</p>
+
+<p>Flink Forward will be expanding to <a href="http://sf.flink-forward.org/" target="_blank">San Francisco in April 2017</a>, and the <a href="http://berlin.flink-forward.org/" target="_blank">third-annual Berlin event
+  is scheduled for September 2017.</a></p>
+
+<p><img src="/img/blog/speaker-logos-ff2016.png" width="775" alt="Flink Forward Speakers" /></p>
+
+<h2 id="features-and-ecosystem">Features and Ecosystem</h2>
+
+<h3 id="flink-ecosystem-growth">Flink Ecosystem Growth</h3>
+
+<p>Flink was added to a selection of distributions during 2016, making it easier
+for an even larger base of users to start working with Flink:</p>
+
+<ul>
+  <li><a href="https://aws.amazon.com/blogs/big-data/use-apache-flink-on-amazon-emr/" target="_blank">
+    Amazon EMR</a></li>
+  <li><a href="https://cloud.google.com/dataproc/docs/release-notes/service#november_29_2016" target="_blank">
+    Google Cloud Dataproc</a></li>
+  <li><a href="https://www.lightbend.com/blog/introducing-lightbend-fast-data-platform" target="_blank">
+    Lightbend Fast Data Platform</a></li>
+</ul>
+
+<p>In addition, the Apache Beam and Flink communities teamed up to build a Flink runner for Beam that, according to the Google team, is <a href="https://cloud.google.com/blog/big-data/2016/05/why-apache-beam-a-google-perspective" target="_blank">\u201csophisticated enough to be a compelling alternative to Cloud Dataflow when running on premise or on non-Google clouds\u201d</a>.</p>
+
+<h3 id="feature-timeline-in-2016">Feature Timeline in 2016</h3>
+
+<p>Here\u2019s a selection of major features added to Flink over the course of 2016:</p>
+
+<p><img src="/img/blog/flink-releases-2016.png" width="775" alt="Flink Release Timeline 2016" /></p>
+
+<p>If you spend time in the <a href="https://issues.apache.org/jira/browse/FLINK-4554?jql=project%20%3D%20FLINK%20AND%20issuetype%20%3D%20%22New%20Feature%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20resolved%20DESC" target="_blank">Apache Flink JIRA project</a>, you\u2019ll see that the Flink community has addressed every single one of the roadmap items identified
+in <a href="http://flink.apache.org/news/2015/12/18/a-year-in-review.html" target="_blank">2015\u2019s year in review post</a>. Here\u2019s to making that an annual tradition. :)</p>
+
+<h2 id="looking-ahead-to-2017">Looking ahead to 2017</h2>
+
+<p>A good source of information about the Flink community\u2019s roadmap is the list of
+<a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals" target="_blank">Flink
+Improvement Proposals (FLIPs)</a> in the project wiki. Below, we\u2019ll highlight a selection of FLIPs
+that have been accepted by the community as well as some that are still under discussion.</p>
+
+<p>We should note that work is already underway on a number of these features, and some will even be included in Flink 1.2 at the beginning of 2017.</p>
+
+<ul>
+  <li>
+    <p><strong>A new Flink deployment and process model</strong>, as described in <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65147077" target="_blank">FLIP-6<a></a>. This work ensures that Flink supports a wide
+range of deployment types and cluster managers, making it possible to run Flink smoothly in any environment.</a></p>
+  </li>
+  <li>
+    <p><strong>Dynamic scaling</strong> for both key-value state <a href="https://github.com/apache/flink/pull/2440" target="_blank">(as described in
+this PR)<a></a> <em>and</em> non-partitioned state <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-8%3A+Rescalable+Non-Partitioned+State" target="_blank">(as described in FLIP-8)<a></a>, ensuring that it\u2019s always possible to split or merge state when scaling up or down, respectively.</a></a></p>
+  </li>
+  <li>
+    <p><strong>Asynchronous I/O</strong>, as described in <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65870673" target="_blank">FLIP-12
+</a>, which makes I/O access a less time-consuming process without adding complexity or the need for extra checkpoint coordination.</p>
+  </li>
+  <li>
+    <p><strong>Enhancements to the window evictor</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-4+%3A+Enhance+Window+Evictor" target="_blank">FLIP-4</a>,
+to provide users with more control over how elements are evicted from a window.</p>
+  </li>
+  <li>
+    <p><strong>Fined-grained recovery from task failures</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-1+%3A+Fine+Grained+Recovery+from+Task+Failures" target="_blank">FLIP-1</a>,
+to make it possible to restart only what needs to be restarted during recovery, building on cached intermediate results.</p>
+  </li>
+  <li>
+    <p><strong>Unified checkpoints and savepoints</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-10%3A+Unify+Checkpoints+and+Savepoints" target="_blank">FLIP-10</a>, to
+allow savepoints to be triggered automatically\u2013important for program updates for the sake of error handling because savepoints allow the user to modify both
+ the job and Flink version whereas checkpoints can only be recovered with the same job.</p>
+  </li>
+  <li>
+    <p><strong>Table API window aggregations</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-11%3A+Table+API+Stream+Aggregations" target="_blank">FLIP-11</a>, to support group-window and row-window aggregates on streaming and batch tables.</p>
+  </li>
+  <li>
+    <p><strong>Side inputs</strong>, as described in <a href="https://docs.google.com/document/d/1hIgxi2Zchww_5fWUHLoYiXwSBXjv-M5eOv-MKQYN3m4/edit" target="_blank">this design document</a>, to
+enable the joining of a main, high-throughput stream with one more more inputs with static or slowly-changing data.</p>
+  </li>
+</ul>
+
+<p>If you\u2019re interested in getting involved with Flink, we encourage you to take a look at the FLIPs and to join the discussion via the <a href="http://flink.apache.org/community.html#mailing-lists">Flink mailing lists</a>.</p>
+
+<p>Lastly, we\u2019d like to extend a sincere thank you to all of the Flink community for making 2016 a great year!</p>
+
+      </article>
+    </div>
+
+    <div class="row">
+      <div id="disqus_thread"></div>
+      <script type="text/javascript">
+        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
+        var disqus_shortname = 'stratosphere-eu'; // required: replace example with your forum shortname
+
+        /* * * DON'T EDIT BELOW THIS LINE * * */
+        (function() {
+            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+             (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+        })();
+      </script>
+    </div>
+  </div>
+</div>
+
+      <hr />
+      <div class="footer text-center">
+        <p>Copyright � 2014-2016 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
+        <p>Apache Flink, Apache, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
+        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a href="/blog/feed.xml">RSS feed</a></p>
+      </div>
+
+    </div><!-- /.container -->
+
+    <!-- Include all compiled plugins (below), or include individual files as needed -->
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
+    <script src="/js/codetabs.js"></script>
+
+    <!-- Google Analytics -->
+    <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-52545728-1', 'auto');
+      ga('send', 'pageview');
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/img/blog/flink-dow-2016.png
----------------------------------------------------------------------
diff --git a/img/blog/flink-dow-2016.png b/img/blog/flink-dow-2016.png
new file mode 100644
index 0000000..c90d768
Binary files /dev/null and b/img/blog/flink-dow-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/img/blog/flink-hod-2016.png
----------------------------------------------------------------------
diff --git a/img/blog/flink-hod-2016.png b/img/blog/flink-hod-2016.png
new file mode 100644
index 0000000..8f33652
Binary files /dev/null and b/img/blog/flink-hod-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/img/blog/flink-lines-of-code-2016.png
----------------------------------------------------------------------
diff --git a/img/blog/flink-lines-of-code-2016.png b/img/blog/flink-lines-of-code-2016.png
new file mode 100644
index 0000000..d248605
Binary files /dev/null and b/img/blog/flink-lines-of-code-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/img/blog/flink-meetups-dec2016.png
----------------------------------------------------------------------
diff --git a/img/blog/flink-meetups-dec2016.png b/img/blog/flink-meetups-dec2016.png
new file mode 100644
index 0000000..2a02fab
Binary files /dev/null and b/img/blog/flink-meetups-dec2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/img/blog/flink-releases-2016.png
----------------------------------------------------------------------
diff --git a/img/blog/flink-releases-2016.png b/img/blog/flink-releases-2016.png
new file mode 100644
index 0000000..f31e586
Binary files /dev/null and b/img/blog/flink-releases-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/img/blog/github-stats-2016.png
----------------------------------------------------------------------
diff --git a/img/blog/github-stats-2016.png b/img/blog/github-stats-2016.png
new file mode 100644
index 0000000..5d66f8f
Binary files /dev/null and b/img/blog/github-stats-2016.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f03b28f8/img/blog/speaker-logos-ff2016.png
----------------------------------------------------------------------
diff --git a/img/blog/speaker-logos-ff2016.png b/img/blog/speaker-logos-ff2016.png
new file mode 100644
index 0000000..995b051
Binary files /dev/null and b/img/blog/speaker-logos-ff2016.png differ