Pied Piper 2017 - Tech Summit

After a frenetic 6 weeks rush, where 10 team members sacrifice lots of sleep hours and family time, the Tech Summit had arrived. This is an event where all Australia and New Zealand DellEMC presales community get together, along with partners and some international speakers and guests, including most of the global management team, for a total of 350 people. This year was hosted at the Cypress Lakes hotel in the Hunter Valley, a wine producing region in the state of New South Wales ... I have always said that wine and hacking go very well together !


Despite all the preparations we had to cram lots of activity at the last minute:
  • All components of the architecture (except the "Time Keeper") seen in the diagram below relied on the Mongo database. Since Pivotal Web Services currently doesn't offer a production grade Mongo database in their Marketplace we decided to move our database to an external provider. We bought the lowest tier of clustered Mongo database (aka M10) with 3 nodes and continuous backups. Mongo Atlas offers a number of cloud providers and regions to host your database, we chose AWS us-east-1 as it was the nearest to our applications
  • After the move we did a final stress test of the main app with "Paessler web stress tool" and managed to simulate 300 users clicking every 5 seconds. The results: no errors, sub-second web requests and 20% CPU utilization on the public facing app and 40% in the backend analytics engine. GREAT!
  • We then scale the app to 2 instances for each microservice for High Availability (nice and easy when you have an cloud native app) and we were ready to rock.
  • Every event has some last minute panic and this one was not an exception. The RFID cards didn't arrive from China until the afternoon before, and only then we discovered that the name and registration numbers had been printed very small. So we had to improvise 350 stickers with names.
  • The Hunter Valley is more than 2 hours away from Sydney so it was impossible for us to go there to organize network requirements in advance. So the day before the event we had to work hard to sort out static IP addresses for the time keeping devices and firewall access for MQTT and NTP.

The final network architecture diagram shows a number of components:
  • The Speakers Interface was a welcome feature, as it allowed session speakers to edit information related to their sessions and their own profile as long as they had a valid registered email addresses. In previous events it was always painful to do those last minute editions myself.
  • The main app had grown organically over the last 2 years and to make it easier for a team to work with we decided to unfolded into an MVC (Model-View-Controller) architecture. We changed the main menu to cater for the extra functionality and added a navigation bar for all pages. We also gamified the whole event to drive participation. We were giving points for reviewing and attending sessions, for visiting sponsor stands, for tweeting and for providing feedback. This worked very well and we saw more than 22,000 hits to the app. Finally we included a basic logon functionality so that we could track all activity per person.
  • A new feature added with this release was the Recommender System. This run in the Analytics and Admin microservice as an API to the main app. It provided attendees with a custom agenda and also with a matching score for sessions due to start in the next 60 minutes, to help them navigate through the event. All this based on their interests and their profile. This microservice also hosted existing post event analytics for event organizers such as a report of the overall scores for all events

  • The "Twitter Fun" button in the main menu open the door to a whole new plethora of functionality, including Twitter sentiment on our #DellEMCTechSummit hashtag (which received more than 1000 tweets thanks to the gamification), top 10 tweeters, top 10 tweets, and even a word cloud with the shape of a bulb, the symbol of "global presales".
  • Then there was the whole RFID infrastructure which included 10 custom built RFID scanners based on WeMos microcontrollers, with their own 3D printed case and custom printed PCB. These got the card scans from people coming into the sessions and sent them to a cloud based MQTT service and eventually register them into the database. We also built some great functionality to find out who is attending which session and take actions such as sending a link to review that specific session or send a link to the slides. However we run it out of time to automate them and had to run them manually afterwards.
  • Finally, another very successful component was what we called the OTK (Obsessive Time Keeper). The ANZ Tech Summit is well known for being very strict with time. So this feature got a warm welcome from the organizers. These consisted on Raspberry devices with a 1 meter LED strip attached with a web interface from which room managers could set the ending time at the beginning of a session. The 1 meter LED strip would then lit up all the way to the top and then switch off LED's all the way down till the time run out. Finally it would flash red a few times to let the speaker know time is over

It wasn't just a great experience for everyone in the team to put all this together but it contributed greatly to enhance the experience for Tech Summit attendees and it helped showcase our own technology

As of this writing we haven't decided yet how to take this forward but we are considering putting some extra effort into it to improve some aspects and to package it in a way that can easily be used in other events internationally, both internal and customer facing. See you next year !

Thanks for putting up with me for the past few articles!

This is part 5 of a 5 post series about the 2017 Pied Piper program:
1 - Program intro - Must start somewhere
2 - Personal projects
3 - Hackathon
4 - Agile sprints
5 - Tech Summit

Comments

Popular posts from this blog

Sending PowerStore alerts via SNMP

Electronic Nose - eNose

Use Vagrant to deploy to AWS