This is the first of two posts on “Off the Grid” Days.
The second post will showcase the first, second, and third place winners.
“Off the Grid” Days is an annual opportunity for everyone at NaviNet—yes, even Product and Marketing, as well as Engineering and Delivery—to work on teams to invent something fun, creative, unique, and “Best Benefit to NaviNet.” On January 23-25, 2013, along the road of coding and application innovation, we picked up one mascot and met Patrick Walker, who is a Senior Software Engineer during the week, but must host Belfast’s version of Saturday Night Live on the weekends.
The almost 150 participants forming 27 different teams hailed from Boston, Belfast, Maryland, Oregon, California, and several other states. The event was set in frigid Boston. “You know, we have rain and ice and cold in Belfast, but this…,” said Mark Ingram, Principal Software Engineer, shuddering as he looked over the white-capped Boston Harbor. (Hey, Mark, +7 was balmy relative to the record low of -13.)
Key themes throughout the day were the aggregation of big data, provider data integrity, and empowering the customer and the user through streamlined technology and apps. Former CTO Paul Vienneau joined Frank Ingari, CEO; Laura Gere, SVP, Operations; Catherine Weston, SVP, Marketing; and James Andrew, VP, Product Management on the judges panel. Competition was tough, but four winners clearly stood out in the end.
Today, we’re profiling the First Annual Paul Vienneau Award. ZooKeeper: Hierarchical Configuration of Applications Through Document Databases—Andrew Kilgore, Paul McLaughlin, Paddy O’Neill, Stephen Black and Ian Whittle. Andrew Kilgore, Principal Software Engineer, Belfast, kindly shared their story.
LM: Andrew, what’s the goal of ZooKeeper: Hierarchical Configuration of Applications Through Document Databases?
AK: Given the problems experienced with our Federation Resources system, mainly due to NetBIOs limitations in Windows Server 2003, we aimed to provide a more robust system that would be capable of managing our resources and provide fault tolerance, while maintaining a similarity with the current paradigm, thus minimizing the learning curve for support teams. As preparation for the Off the Grid event, we investigated creating a bespoke system, until a colleague suggested looking into Apache ZooKeeper.
LM: How did you do it?
AK: We started by creating a simple "Hello, World"-style application to get over the initial learning curve. ZooKeeper was surprisingly easy to configure and get running. An extension of this simple application allowed us to load the current resources into ZooKeeper in the expected directory structure.
The team then divided, concentrating on the different areas we wanted to investigate. Ian started working on replacing the existing NaviNet file management APIs, which load the existing resources, while Paddy and Stephen started working on the clustering and fault-tolerance aspects. Paul and I began working on an auditing tool, which would capture change events from ZooKeeper to be persisted in a data store. Once these were complete, the team got together to integrate the different strands.
As it stood, everything was working; however, the information being provided wasn't easily consumable. We decided to create a Web-based User Interface to provide a view on the Audit events and the ZooKeeper directory structure. We used Asp.Net WebForms, SignalR, and Twitter Bootstrap to quickly create a usable interface that provided real-time updates to the users. Once this was complete and quickly tested, we were happy that the goals of the project had been completed.
LM: Were there any learnings along the way that surprised you?
AK: We were pleasantly surprised about just how easy it was to get ZooKeeper running in a Windows environment. For production purposes, we would likely host this on Linux. Being able to provide a development environment on Windows is a big plus.
LM: Thank you so much, Andrew.
And the mascot, you wonder? That would be Pirate Horse, created by Karsten Nielsen (having escaped Boston to warm up in Belfast), Tony Leopold, Mark Patience, Gareth Armour, and Rodrigo Blanco, the inventors of Ye Olde OrgEntities Buccaneer: Or How I Learned to Stop Worrying (About SQL).
What do you think about Off the Grid Days? ZooKeeper: Hierarchical Configuration of Applications Through Document Databases? Are you an inventive genius, too? Continue the discussion by commenting on our blog, and connecting with us on Twitter, Facebook, and LinkedIn.