Global Windows Azure Bootcamp 2012 · Introduction Early 2013, a group of Windows Azure MVP's had...

17
Global Windows Azure Bootcamp 2013 World Record World Wide Community Event Maarten Balliauw Windows Azure MVP [email protected] @maartenballiauw Magnus Mårtensson Windows Azure MVP [email protected] @noopman Alan Smith Windows Azure MVP [email protected] @alansmith Michael Wood Windows Azure MVP [email protected] @mikewo Executive Summary On April 27, 2013, the world witnessed a unique community event: the Global Windows Azure Bootcamp http://globalwindowsazure.azurewebsites.net (GWAB). At its heart this event is a local one day Windows Azure Community event. At each location, organized by local community leaders and Windows Azure enthusiasts, the event serves to benefit the local community members and to teach essential Windows Azure skills and know how. The event is a mix of sessions and labs based on the Windows Azure Training Kit. Globally this event ran at 94 locations in 38 countries on the same day. From the first hour in the starting time-zone, Sydney/Melbourne Australia, to the last hour in the ending time-zone, San Diego, San Francisco and Redmond US, the event ran for 28 hours. Over 250 organizers worldwide received around 6,000 attendees. While the events were led by volunteers there were also eleven global sponsors who helped provide software, trials and giveaways, along with a host of local sponsors that helped support the event. During the event a joint Render Farm Lab was conducted where each attendee at each location could join his/her deployment of Windows Azure Worker Role Instances to a global pool of video rendering CPUs. At one point during the event when many of the Asian deployments were still running and the European ones peaked the farm ran nearly 5 000 cores which is equivalent to over 8000 GHz and 8.5 TB of memory. Rendering over eight compute years during 30 hours this event surpassed the first Toy Story film by Pixar in render capacity.

Transcript of Global Windows Azure Bootcamp 2012 · Introduction Early 2013, a group of Windows Azure MVP's had...

Global Windows Azure Bootcamp 2013 World Record World Wide Community Event

Maarten Balliauw Windows Azure MVP [email protected] @maartenballiauw

Magnus Mårtensson Windows Azure MVP [email protected] @noopman

Alan Smith Windows Azure MVP [email protected] @alansmith

Michael Wood Windows Azure MVP [email protected] @mikewo

Executive Summary On April 27, 2013, the world witnessed a unique community event: the Global Windows Azure

Bootcamp http://globalwindowsazure.azurewebsites.net (GWAB).

At its heart this event is a local one day Windows Azure Community event. At each location, organized

by local community leaders and Windows Azure enthusiasts, the event serves to benefit the local

community members and to teach essential Windows Azure skills and know how. The event is a mix of

sessions and labs based on the Windows Azure Training Kit.

Globally this event ran at 94 locations in 38 countries on the same day. From the first hour in the

starting time-zone, Sydney/Melbourne Australia, to the last hour in the ending time-zone, San Diego,

San Francisco and Redmond US, the event ran for 28 hours. Over 250 organizers worldwide received

around 6,000 attendees. While the events were led by volunteers there were also eleven global

sponsors who helped provide software, trials and giveaways, along with a host of local sponsors that

helped support the event.

During the event a joint Render Farm Lab was conducted where each attendee at each location could

join his/her deployment of Windows Azure Worker Role Instances to a global pool of video rendering

CPUs. At one point during the event when many of the Asian deployments were still running and the

European ones peaked the farm ran nearly 5 000 cores which is equivalent to over 8000 GHz and 8.5

TB of memory. Rendering over eight compute years during 30 hours this event surpassed the first Toy

Story film by Pixar in render capacity.

Introduction Early 2013, a group of Windows Azure MVP's had the idea to host a Windows Azure Bootcamp on

several locations throughout Europe at the same time. The small group quickly settled on the basics of

the event; the format, the date and the global hashtag #GlobalWindowsAzure. Then we went and

made it BIG! At the Most Valuable Professional Summit 2013 the group spread the word about the

event to several audiences. One such audience was the Big Room presentation by Scott Guthrie about

the state of Windows Azure. Already at this time the event was closing on 50 locations worldwide.

Word of the event was also spread to the Windows Azure MVP and the Windows Azure Insiders

Distribution Lists fueling the event into a frenzy. (The Windows Azure Sharks – with frickin lazers –

smelled blood in the water – everyone wanted to join.) We were simply amazed at how many

locations got added in Brazil, India and Nepal (we even had a location in Lumbini – one of the claimed

birth places of Buddha and really close to the clouds!) as well as some very small locations we had

never dreamt about adding like Mauritius. We reached to China which was also very cool considering

the new data centers in mainland China had not been publicly announced.

Global Sponsorship Even though the volunteers at the local events were key to the event, the great companies who

stepped up to become Global Sponsors of the event helped round out the experience for the

attendees with an unbelievable amount of giveaways, extended trials and services. There were eleven

Global sponsors:

AzureWatch - Paraleap offered an extended 30 day trial to the AzureWatch product with

unlimited data collection to every attendee.

Blue Syntax - Provided a license for the Cloud Backup Advanced Edition product for each

event. (worth $700)

Cerebrata - Offered a full license to the new Windows Azure Management Studio product to

every attendee. (worth $295)

Cloud Berry - Provided five licenses of their Cloud Berry Explorer and five licenses of their

Cloud Berry Drive products to give away at each event location. (worth $40 per license)

Inner Workings - Offered a 90 day free trial of their online learning system for every attendee.

JetBrains - Provided a license of one of their many great products to raffle away at each event.

(worth ~$300 per location)

Microsoft - Provided financial support for the US based events, as well as logistical support for

an online meeting for the Global Event staff.

MyGet - Offered every attendee a one month starter edition as well providing a one year

subscription to be given away at each event location. (annual pass worth $84)

PluralSight - Offered every attendee a seven day trial of their online learning system and also

provided one annual subscription to their service to be raffled away at each location. (annual

subscription worth $299)

Telerik- Provided one DevCraft Complete (all their products) package to give away at each

location. (worth $1,499 per location)

Zudio - Offered a three month free trial for the online Windows Azure Storage exploration

service.

Many of the single licenses that were given away were tracked by the Global team so that the

sponsors could get a handful of updates. The licenses and codes that were provided to all attendees

could not be tracked by the Global team, but to the best of our calculations the amount of software

potentially given away if all the attendees redeemed the offers, was in excess of $1.8 million USD /

€1.4 million EUR.

In addition to the Global Sponsors, many of the events also reached out to local sponsors specific for

their event. Local sponsors helped provide a variety of support to their events, such as facilities,

financial support for catering and additional giveaways.

Locations and organizers Here is a complete listing of all of the countries in GWAB:

Addison, Dallas, TX, US

Ahmedabad, Gujarat,

India

Atlanta, GA, US

Bangalore, Bengaluru,

India

Baton Rouge, Louisiana,

US

Beijing, China

Berlin, Germany

Biratnagar, Nepal

Birgunj, Nepal

Blumenau, Santa

Catarina

Boca Raton, FL, US

Bogota, Colombia

Boston, US

Bradford, England

Brasília/GO, Brasil

Brussels, Belgium

Bucarest, Romania

Buenos Aires,

Argentina

Calgary, Canada

Campo Grande, Brazil

Charlotte, NC, US

Chicago, IL, US

Chitwan, Nepal

Cluj-Napoca, Romania

Coimbatore,

Tamilnadu, India

Columbus, OH, US

Copenhagen, Denmark

Curitiba, Brazil

Dehli, India

Denver, USA

Detroit, MI, USA

Dublin, Ireland

Espoo, Finland

Fortaleza, Brazil

Frankfurt am Main,

Germany

Geneva, Switzerland

Goiânia, Brazil

Gothenburg, Sweden

Hampton Roads, VA,

USA

Hong Kong

Houston, US

Hyderabad, India

Istanbul, Turkey

Jakarta, Indonesia

Kairo, Egypt

Kathmandu, Nepal

Kirkland, Seattle, US

Knoxville, TN, USA

Kochi, Kerala, India

Kolkata, India

Ljubljana, Slovenia

Londrina, Brazil

Lumbini, Nepal

Malta

Manchester, UK

Manila, Philippines

Mauritius

Melbourne, Australia

Montreal, Canada

Mumbai, India

Namakkal, India

(private event)

Nashville, TN, USA

New York, NY

Nigeria, Africa

Niš, Serbia

Oradea, Romania

Oslo, Norway

Paris, France

Perth, Australia

Phoenix, AZ

Piracicaba, São Paulo,

Brazil

Pune, India

Reston, VA, USA

Rio de Janeiro, Brazil

Rochester, NY, US

Romania, Timisoara

San Diego, US

San Francisco, CA, US

Sao Paulo, Sao Paulo,

Brazil

Shoreditch, London, UK

Singapore

South-Korea

Stockholm, Sweden

Sydney, Australia

Taipei, Taiwan

Tokyo, Japan

Toronto, Canada

Veenendaal, The

Netherlands

Victoria, London, UK

Vienna, Austria

Vitória, Espírito Santo,

Brazil

Wroclaw, Poland

Yverdon, Switzerland

The Global Joint Render farm Lab One of the things that was discussed at the MVP summit was the idea of having some kind of lab, or

project that all the attendees could participate in. This would really help to drive the community spirit

and connect the groups in different regions. It would also help to make the event truly global, by

having participants around the world cooperating to achieve one goal. As Alan Smith had a worker role

animation rendering lab from his Windows Azure training course ready to go, he suggested it would

make a great lab for the Global Windows Azure Bootcamp. It should be fairly easy to convert the lab to

work with the different locations working as teams, and create a website that would display the

scores. It would be great fun to have all the different countries and locations competing with each

other to render the most animation frames. The challenge would be to ensure that the application

would scale to a global level and be able to handle the load that the attendees would place on it.

The lab used a Microsoft Kinect controller to capture depth data of attendees moving in front of the

sensor, and then upload the depth images to Windows Azure and initiate a job to use the data to

render a 3D ray-traced animation.

An animation would then be rendered using worker roles deployed by attendees at the different

locations. The animation would then be published on a website using Windows Azure Media Services.

The render farm would capture rendering statistics for each attendee and display the results grouped

by country and location. In order to introduce a competition element into the lab the countries and

locations would be ordered based on which location had rendered the most animation frames.

About 750 attendees from 50 locations in 22 countries took part in the lab. During the event a total of

9904 worker role instances were started, with over 4,000 instances running concurrently for the

second half of the event. 724,059 3D ray traced animation frames were rendered with a total render

time of 4 years 184 days 2 hours and 46 minutes. The overall compute time used by the 9904 worker

roles was almost 7 years.

The Global Render Lab website received 3,718 unique visits, with 40,022 page views during the event.

At times there were over 100 simultaneous visitors on the site. The traffic on the website was

sustained over the day with over 5,000 page views per hour at its peak. The website was hosted on a

single small reserved instance in Windows Azure Websites, with the ASP.NET cache being used to

cache the result sets form the queries to the Windows Azure SQL Database.

228 animations were published to the website using Windows Azure Media Services. The peak

inbound data was 6.57 GB per hour, and the maximum encoding job queue depth reached 43 jobs.

The worker roles used 4 storage accounts for animating, rendering, and encoding and media storage.

The rendering storage account peaked at 2,105,873 queue requests per hour, which is an average of

585 requests per second.

The peak for blob storage was 415,435 requests per hour, which is an average of 115 requests per

second.

Challenges The aim of the lab was to make something that every student could participate in. We originally

anticipated that we would have about 10 events, with an average of 50 people at each event, so we

would have a maximum of 500 participants. As the event drew nearer we realized that we had been

very conservative in our estimates, the event would be ten times larger than we originally planned,

with close to 100 events and over 7,000 attendees.

The challenge for when creating the lab was to make something that could scale to tens of thousands

of worker role instances if required. What made this even more challenging was that there would be

no way to test this scalability before the event, and we had no control over all the instances that were

running, as they would be deployed by attendees in different locations around the world. The lab

would last for 26 hours, starting in Sydney and Melbourne Australia, and ending in San Diego

California, meaning if we were going to be monitoring the lab over the event, we were not going to

get much sleep.

Another potential issue with the event being a lot more popular than we expected was the load that it

would place on Windows Azure. As I was hosting the storage services in the North Europe datacenter,

the attendees would be deploying there worker roles there. We asked the Azure team if there would

be any problems if the bootcamp attendees tried to create over 10,000 worker roles in one data

center, and were assured that it would not be an issue.

The students would have a deployment package that they could deploy to Windows Azure using their

own subscriptions. The events would also be able to use a Windows application and a Kinect controller

to create and upload animations that would be processed by the global render farm. There is a

webcast with an overview of the lab here.

Running the Global Render Lab The event kicked off in Sydney and Melbourne Australia on the morning of Saturday 27th April. In

Sweden it was midnight, and I was at home monitoring the progress. The students would hopefully

start deploring the worker roles early on, so I could see that everything was running smoothly and

then get some sleep. To monitor the render lab I added code to the worker roles to send messages to

a Windows Azure Storage queue and I used a C# console application that would receive the messages.

This meant I would receive notifications when worker roles started, stopped, animations were

completed, and also any exceptions that were thrown by worker roles. I could keep track of the

thousands of worker roles that were running using a simple C# console application. I even used

Console.Beep() so that I would know when things were happening if I was not set ay my PC.

At 01:14 Swedish time, Alex Thomas at the Melbourne event in Australia started the first worker role

instance, closely followed by other attendees at that event. A total of 93 worker role instances were

created at the Melbourne event, which rendered almost 9,000 frames of animation. At 04:00 on

Saturday morning the lab was running smoothly, and so I decided to get a few hours sleep before the

events in Europe started.

I woke up at 07:00 and some of the Eastern Europe events, and events in India had started. Things

were still running fine, and we had a few hundred instances running. The event in Stockholm that I

was running started at 10:00 and I got there early to open up and started the event with a short

presentation about the Global Render Lab. Robert Folkesson and Chris Klug did a fantastic job

delivering sessions and assisting the students with labs, whilst I spent most of the event monitoring

the Render lab. Germany, Belgium, Denmark, UK and The Netherlands really got into the spirit of the

lab, with Germany creating over 1,200 worker roles in total.

At 10:30 central European time we had over 1,000 running worker roles, and by 11:30 over 2,000. By

16:00 we had over 4,000 instance running, and this was maintained for the rest of the event as

attendees in Europe deleted their deployments and attendees in the USA deployed ad scaled up

theirs. I had also included a “Sharks with Freakin Lasers” Easter egg in the animation creator that some

of the attendees discovered.

By the time the events in Europe were closing, the events in the USA and Brazil had started. I got

home from the Stockholm event at 17:00 and after some family time I was back monitoring the lab.

USA had about 14 events completing in the render lab, and were trying to catch up with Germany.

USA had a total of 2477 worker roles deployed during the event, compared to Germany’s 1260, so by

the end of the event they had taken first place in the countries, with Berlin taking first place in the

locations.

Issues Running the Lab Two or three days before the event I was pretty sure that the Global Render Lab would be a failure,

and was seriously considering cancelling the lab at the last minute. About three days before the event

I hitting a lot of issues with reliability in Windows Azure Storage, I have not had time to diagnose

exactly what caused these, but will hopefully include them in a later report. 12 hours before the event

kicked off I hit a major potential show-stopper in my code but with help from to Maarten Balliauw I

was able to resolve it quickly.

Thanks to the time invested by some of the event organizers during the testing phases of the lab I was

able to detect a number of other issues that could have been potential show-stoppers on the day. The

need to be able to deploy a new version if needed, and to put all the running worker roles into an idle

state was quickly identified, as was the need to be able to reduce the load on storage accounts by

disable worker roles by country, location, attendee or specific role instance. I had no control over the

deployment and deleting of the worker roles, but I needed some control over how they ran against

the storage accounts.

A number of animations failed to be completed and got stuck in the render queue with a status of

Encoding, this was mostly due to the way I had implemented the encoding process in the worker role,

but also due to the way the students created and deleted deployments. Worker roles were being

deleted throughout the event, sometimes at a rate of over 100 per minute, and this meant that some

long-running tasks would fail to complete.

Lessons Learned Overall it was felt that the lab was a great success. From the photos captured by the attendees who

uploaded animations it looked like they were enjoying using the application. Many of the events took

part in the lab, with some of them taking the competition aspects seriously. It would have been great

to have more of the locations taking part, more effort could have been made to promote the lab and

make sure that content was provided to attendees in their native languages.

On the whole the application stood up to the load that we placed on it. Some attendees had to wait a

long time for their animations to be rendered and encoded. The job queue on the Media Services

account indicates that things could have been improved there by increasing the capacity available

there to reduce this time. There were a few reliability issues that meant that some animations never

got encoded, there is scope for improvement here. Also the range of different animations that could

be selected and rendered form the depth data could be extended.

Social Media We wanted to spread the word about our GWAB event to the World. Therefor we had a massive Social

Media Presence. We had activities on Twitter, Facebook, Lanyrd, Jabbr.NET and Flickr.

On our event website, we had a lot of information about the event and provided live blogging from

several locations. The following charts display unique visitors during the time of our event (charts

showing Feb 20, 2013 - May 6, 2013). The day of the event our website almost had 26.000 unique

visits, or more than 18 unique visitors every minute.

Twitter On Twitter we used the hashtag #GlobalWindowsAzure. Although this tag is a bit long we felt it was

important to use the full product name Windows Azure as part of the hashtag. Any search on

"WindowsAzure" on Twitter would surface our event.

During the UK events time frame the hashtag was trending in the UK.

Facebook On Facebook we created the page https://www.facebook.com/globalwindowsazure. Also the

Brazilians created a group https://www.facebook.com/groups/GWABootcampBrasil.

Windows Azure on Facebook helped out by adding an “event” on their page and some nice graphics:

https://www.facebook.com/events/253510711459112

Lanyrd On Lanyrd we created a GWAB event to keep track of all of the organizers and their sessions. This

listing was manual and ended up not covering all of the people involved or all of the locations. 84

speakers and 49 sessions was nowhere near all of it. From this perspective admittedly this was not a

complete success. The learning here is that this manual editing process just does not work or scale.

http://lanyrd.com/2013/globalwindowsazure

On Lanyrd we created a GWAB event to keep track of all of the organizers and their sessions. This

listing was manual and ended up not covering all of the people involved or all of the locations. 84

speakers and 49 sessions was nowhere near all of it. From this perspective admittedly this was not a

complete success. The learning here is that this manual editing process just does not work or scale.

http://lanyrd.com/2013/globalwindowsazure

Jabbr.NET As a chat back channel for the event we had a room on Jabbr.NET

https://jabbr.net/#/rooms/GlobalWindowsAzure. In this room it was possible to ask questions and get

answers as well as chat for fun with attendees from other locations.

Flickr The Flickr group http://www.flickr.com/groups/globalwindowsazure was joined by 71 people who

uploaded a total of 584 pictures.

Media Lots of media all around the world reported about our event. Here are a few samples from the flood:

Sweden, Australia, India, Germany, Malta, Nepal.

Next time The group is planning for a second Global Windows Azure Bootcamp to take place in the spring of

2014 which will of course break their own record!

Summary Here is a peek into the action: The GWAB Aftermath Video

Without a doubt this event took on a life of its own and grew way beyond anything we had ever

imagined when we started out. The tipping point was around 50 locations. When the growth speed

peaked we added 15 locations in one week. Our very basic organization with an email list and an

organizer Excel spread sheet in Magnus' SkyDrive just did not scale very well. We had to spend lots of

time handling data for each locations and answering the same email questions over and over again.

We can conclude that events on this scale require a web application that handles organizer

membership and data as well as a forum style communications board.

Given the inherent online and connected nature of the Windows Azure Community this event worked

really well. On the other hand we see no reason this type of global event, with a global social media

presence, cannot be repeated for other Microsoft products. This could be the beginning of a new type

of global community event. Also the communities can share the same basic technical platform.

The render farm lab became a wonderful glue to join the individual community events and make the

attendees feel they were part of greatness. As such it served an invaluable purpose. That lab is now

spent and next time something else must be used. Our idea is to prepare a Windows Azure

Deployment which can be configured as last time with names of a sponsoring company. The attendees

company can then donate compute time to one of the many research projects that exist online. For

example, if we worked with a group like the World Community Grid -

http://www.worldcommunitygrid.org/ - we could provide massive amounts of compute time to help

accomplish humanitarian goals. Each sponsor will use their own Windows Azure account. This means

no money will change hands direct from the sponsors to Microsoft. All the sponsor does is pay his

Windows Azure bill as usual. Sponsoring companies can have their company name, logo and link

displayed on the event site.

This event was phenomenal - and tiring! We are very grateful to have worked with the Greatest

Technical Community in existence: The Windows Azure Community. We look forward to doing this

again - bigger, bolder and even cooler!

Appendix A: Thanks to A lot of great Windows Azure enthusiasts stepped up and got involved in Global Windows Azure

Bootcamp. Hopefully the listings below do not miss out on any who should be named! We also got

input from all of the locations on names of people to thank. It is not possible to fully verify all of these

names but we feel the fair way to do it is to list all who have been named.

Community Activists So many community folks to thank! Everyone participated joyfully to make GWAB a very special event

at each location. The stories we have heard from around the globe are amazing and bear witness to

the greatness of this Cloud Community that is Windows Azure!

Abdallah Emad Abdel Rahman Magued Abhishek Sur Aboluwarin Olaoluwa David Adnan Cartwright Ahmed Abd El Zaher Ajay khankhoje Alaghunila Alagunila Alan Smith Alastair Waddell Alex Mang Alexander Singer Alexandre Brisebois Alexandru Allen Bailochan Tuladhar Allison Lingerfelt Amal Dev Amira Ahmed Amy Cheuk Andre Baltieri Andrei Ignat Andres Fontan Andres Londoño Andrew Howell Andri Yadi Andy Cross Andy Westgarth Anoop Madhusudanan Anton Staykov Antonio D'Ornellas Archana Ariel Schapiro Aries Triwahyudi Arnaud Meslier Arnie Locsin Arun Kumar Arunkumar Kumaresan Arunkumar Palanisamy Arunraja Athiyappan Ashwin

Ashvini Shahane Aviraj Ajgekar Aymeric Weinbach Ayodeji Adeleke Azza Eissa Balaji, Basavaraj Banji Olajire Basavaraj Bill Wegerson Blake McNeil Bob Familiar Bob Hunt Bojan Vrhovnik Bostjan Strazar Brad Allen Brendon McCarthy Bret Stateham Brian Hitney Brian Maier Brian Prince Brian Sherwin Brian Thompson Brittany Mundy Bruce Johnson Bruce Troutman Bruno Terkaly Carlos dos Santos Carlos Oliveira Casey Watson Catalin Dit Catalin Gheorghiu Cavit Yantac Chaitra Nagaraj Chris Bowen Chris Dufour Chris Hewitt Chris Klug Chris Koenig Chris Weldon Christian Longstaff Claire Smyth Clare Burgess Damian Otway Damir Dobric

Dan Stolts Dan Wahlin Daniel Egan Daniel Mellegaard Frost Danny Grieve Danny Mak Danny Price Darmawan Suandi Daron Yondem David Dong David Giard David Mackley David Makogon David McGhee David Paquette Deepika Dele Akinsade Demola Morebise Denis Kitchen Dennis Mulder Dennis Skrtic Derek Gabriel Dhananjay Kumar Dikdik Fazzarudin Dinesh Kumar Dineshkumar Don Jayasinghe Dr Vijay Dr. B.K. Alese Dr.S.Vijayaragavan Edward Portelli Emily Ocon Eneko Vallecillo Eric Rohler Eric ShangKuan Esteban Beltran Eugene Chuvyrov Fabien Lavocat Faizal Wely Fernando Correia Fiona Fisher Fober Folkesson François Boucher

Frank Arrigo Frans Thamura Frederic Harper Gareth Gauci Gaurav Mantri Gaurav Sharma Guanjun Hao Gustavo Malheiros Guy Barrette Hagar Ibrahim Hammad Rajjoub Hans Laubisch Harish Ranganathan Heriyadi Janwar Hernan Guzman Herve Roggero Hitesh Dhingra Holger Diekhoff Ibrahim Abdel Karim Ibukun Ilkay Ilknur Ira Bell Islam Zidan Jan Hentschel Jason Haley Jason Wihardja Jean-Luc Boucho Jim Coxe Jim O'Neil Jithu Thomas Joe Guadagno Joe Johnston Joe Mayo Joe Reynolds John Chang John Garland Johnny Halife Jonathan Cassar Jonathan Rozenblit Jose Romaniello Juan Carlos Ruiz Juan Guillermo Carvajal Juan Pablo Garcia

Juhani Vuorio Julio Avellaneda Julius Fenat June Tabadero Jung Joo-Myeong Jürgen Mayrbäurl Kamlesh Rao Karl Ots Karl Rissland Karthick Karthikeyan Anbarasan Katherine Chen Katrien De Graeve Kaushal Bhavsar Kim Dae-Woo Kim Jong-Min Kinda Lau Kiran Khambete Kris van der Mast Krishna Nadiminti Kristine Drier Kristof Rennen Kuppurasu Lauri Kotilainen Laxmikant Bhole Lee Jin Ah Lina Wu Linda Hogg Ljupco Grmaskoski Lohith G N Loryant Strant Lucas Romao Lukasz Gasior Magnus Mårtensson Mahesh Devjibhai Dhola Mahesh Krishnan Mahesh Mitkari Malte Lantin Mandar Kulkarni Marcel Meijer Margarita Corpuz Mariam Emad Marius Zaharia Mark Eisenberg Mark O'Shea Mark Rendle Markus Eilers Martin Abbott Marwan Hamdy Mary Perisic Mathias Brandewinder

Matias Woloski Mayur Tendulkar Mayura Dolas Michael Corpuz Michael S. Collier Michael Willett Michael Wood Michele Leroux Bustamante Mick Badran Mickaël Mottet Miguel Saez Mihai Nadas Mihai Tataran Mike Martin Mike Moles Milica Stojanovic Milorad Imbra Ming Chung Chu Mir Majeed Mirosław Pragłowski Mitch Denny Mohamed Faizal Mohamed Ghoneim Mohamed Mohsen Mohammed Ramees Monish Darda Moustafa Wahby Nabjyoti Boruah Nandhini Nathan DeWitt Neil Mackenzie Nelson Johnson Nevin Dong Nick Trogh Nico Wilhelm Niraj Bhatt Niraj Jee Norman Sasono Nuno Godinho Oana Viciu Ogundare D. Aboluwarin Oh Seong Mi Olaf Loogman Olaoluwa Elieseus Oliver Michalski Omkar Khair Osama AbdEl Aziz Panagiotis Kefalidis Pascal Laurin Patriek van Dorp

Paul Spiroski Pavan S B Pawel Lukasik Per-Frode Pedersen Petar Vucetin Peter Kirchner Petri Wilhelmsen Phani Kondepudi Pierre Arnaud Pierre Couzy Prabhjot Singh Bakshi Pradeep Kandel Praveen Nair Rachel Hogan Radu Ticiu Radu Vunvulea Rafael Ferreira dos Santos Rafael Leonhardt Raghavendran Rainer Stropek Rajesh Agarwal Ramees Mohammed Raymond Wong Reneata Chang Renee Worley Ricardo Villalobos Richard Conway Richard Fennell Richard Nalezynski Richard Qi Richard Reukema Rick G. Garibay Rob Bramhall Robert Folkesson Robert Hogg Roberto Alvarado Robin Mattern Robin Shahan Robson Castilho Rodrigo Kono Rok Bermez Rudy Setyo Purnomo Ruitao Feng Ryan Duclos Ryan Lowdermilk Sahas Lad Salem Kosemani Sam Vanhoutte Samuel Loup Sandra Marin Sankarakrishnan

Sara Ward Sarang Kulkarni Saravana Kumar Sarit Ghosh Sarit Ghosh Sasa Todorovic Sascha Dittmann Scott Simock Sebastian Iacomuzzi Senthil Kumar Shady Atef Shanatanu Soman Shanavas Thayyullathil Sherif Abbas Sherif Hamdy Shiju Varghese Shina Oyetosho Shravan Kumar Shreyas, Kiran Shri Swaroop Siddharth Monani Sigrid Vandeweghe Simon Timms Simran Chaudhry Sinem Eylem Arslan Sinisa Perovic Sirar Salih Sisley Lin Sky Chang So Young, Lee Srinivasan Seshan Stefano dos Santos Stephen Bradley Steve Maier Steve Spencer Sudhir Joseph Sureshkumar Surykant Lokhande Suvitha Swarnapriya Tanmay Kapoor Tim Rayburn Tim Vergel de Dios Tolu Joel Tom Carter Tomas Jansson Tricia Almas Tugberk Ugurlu Udaiappa Ramachandran Uduebor Michael Usman Mohammed

Vaishali Shah Walaa Atef Valentina Milano Valeria Ignatieva Walter Novoa Wassim Hosenbux

Wely Lau Victor Szalma Victor Szalma Vikram Pendse Wilfried Woivré William Tulloch

William Wong Vishnu Tiwari Vitor Meriat Xing Fang Yanesh Tyagi Yannick Labonne

Yemi Ajiboye Yves Goeleven Ziyan Xu Zoiner Tejada Zoli Herczeg Åsa Black

Microsoft Employees Though we are hesitant to single out any individuals from the Microsoft group we cannot but mention

a few names we know were key to helping the global administration team of GWAB to get everything

squared away:

Mark Brown – Goes without saying that your tireless support meant everything.

Dora Chan – Took care of all of the US locations as well as provided us valuable connections in Asia.

Paul Biplab – Lots of India locations thanks to you.

William Jansen – Assistance and support with administrative tasks.

Cameron Rogers – For working with us on social media (Twitter/Facebook) and giving us added wind

to our kites.

Mary Perisic -- For helping sponsor the US based events with financial support, plus helping the US

events get exposure on Twitter and Facebook properties managed by Microsoft.

Also (alphabetically): Allen Bailochan Tuladhar, Allison Lingerfelt, Amy Cheuk, Andre Howell, , Andrew Howell, Ariel

Schapiro, Aries Triwahyudi, Arnaud Meslier, Arnie Locsin, Aviraj Ajgekar, Azza Eissa, Biplab Paul, Bob ,

amiliar, Bob Hunt, Bojan Vrhovnik, Bostjan Strazar, Brad Allen, Bret Stateham, Brian Hitney, Brian

Prince, Bruno Terkaly, Catalin Dit, Cavit Yantac, Chris Bowen, Chris Koenig, Christian Longstaff, Claire

Smyth, Clare Burgess, Dan Stolts, Daniel Egan, Daniel Mellegaard Frost, Danny Mak, Danny Price,

Darlene, Darmawan Suandi, David Mackley, David Makogon, David McGhee, Dele Akinsade, Dennis

Mulder, Dora Chan, Edward Portelli, Emily Ocon, Eric ShangKuan, Fiona Fisher, Frank Arrigo, Frederic

Harper, Gaurav Sharma, Hammad Rajjoub, Harish Ranganathan, Heriyadi Janwar, Jerry Chai and his

team, Jim O'Neil, John Chang, Jonathan Rozenblit, Juan Carlos Ruiz Pacheco, Juan Pablo Garcia, Juhani

Vuorio, Julius Fenat, Jürgen Mayrbäurl, Karl Rissland, Katrien De Graeve, Kim Dae Woo, Kinda Lau, Lee

Jin Ah, Ljupco Grmaskoski, Malte Lantin, Miguel Saez, Mike Moles, Nevin Dong, Nick Trogh, Nico

Wilhelm, Norman Sasono, Oana Viciu, Peter Kirchner, Petri Wilhelmsen, Phani Kondepudi, Pierre

Couzy, Rachel Hogan, Renee Worley, Ricardo Villalobos, Richard Qi, Ryan Lowdermilk, Sandra Marin,

Sarit Ghosh, Scott Klein, Seong Mi, Oh, Sherif Abbas, Shina Oyetosho, Siddharth Monani, Sigrid

Vandeweghe, Simran Chaudhry, Sinem Eylem Arslan, Sinisa Perovic, So Young, Lee, Sudhir Joseph,

Tanmay Kapoor, Tim Vergel de Dios, Walaa Atef, Valentina Milano, Walter Novoa, Victor Szalma, Xing

Fang and Zoli Herczeg.