I had the opportunity to attend the first Azure Government HackFest & Training on June 7 and June 8, 2017 with several of my AIS colleagues (Jonathan Eckman, Nicolas Mark, and Brian Rudolph) and it did not disappoint. This event was a great opportunity for me personally to learn more about Azure and spend some time applying that new information to work on an interesting problem. I know that many of you might be considering attending another HackFest, so I wanted to take some time to tell you about the event and what I learned. I also wanted to give you a few tips if you attend one of these in the future.
Day One started off with a number of training/knowledge-sharing sessions with the Microsoft Azure Government Engineering Team, providing an overview of Azure Gov, Security, Lift and Shift, Azure HDInsight, and Cognitive Services. The information provided was detailed enough that it wasn’t marketing material, but not so deep to be too difficult for general IT pros to grasp. Kudos to those that presented from the Microsoft Azure Engineering Team!
- Steve Michelotti, Azure Government Chief Evangelist
- Zach Kramer, Azure Government Engineering Lead
- Sachin Dubey, Senior Software Engineer, Azure Government
- John Molesky, Program Manager, Azure Government
- Gerardo Saca, Senior Program Manager, Azure Government
At the end of Day One, we were divided up into teams based on Star Wars characters (yes, really) and were asked to provide solutions for two of the four challenges below:
- Building solutions on Azure Government PaaS services
- Building a secure/compliant IaaS network infrastructure on Azure Government
- Utilizing Cognitive Services on Azure Government
- Leveraging Big Data on Azure Government with HDInsight and Power BI
Those of us from AIS were on Team Yoda with Zara Ellini, who is very knowledgeable about Network Security. And anyone that knows anything at all about Star Wars can understand the type of pressure we felt when we found out we were on Team Yoda!
Tip 1: Just go! Even if you don’t know anyone else at the event, you’ll get assigned to a team and find out they are just like you – really interested in learning and trying something new.
We decided to build a solution on PaaS services and build a secure/compliant IaaS network infrastructure on Azure Government. The requirements were very open and there were no restrictions other than you had to finish your solutions and present to the other teams at the end of day two. We had a good blend of developer and infrastructure experience so those two challenges seemed more realistic to what we could accomplish. Our projects would consist of the below:
- Building out an IaaS environment while utilizing some pieces of the PaaS offering to deploy a secure website that can be access controlled, but is accessible from the Internet.
- Creating a continuous delivery model for an application utilizing the ARM templates from Dev to Test to Prod.
Tip 2: Don’t worry if you aren’t a developer. The best teams at hackathons always have a mix of experience. Our team was unique in that we had developers, infrastructure, and security experts.
By automating the buildout of the IaaS environment, we were able to build a domain controller, create a forest, and create two web front ends. Once the provisioning and configuration of each element were complete, we tested the Azure Load Balancer and Application Gateway to see which best met the goal of load balancing two web servers for a secure web page. We found that the Application Gateway was perfect for what we needed to do. Once we added the servers to the Gateway, we successfully balanced the load for the site to both web front end servers while maintaining security through the domain controller.
Tip 3: Automation is the key to success in the cloud and at hackathons. By automating the provisioning of servers, we were able to spend time testing and learning about Azure Gov services.
While Brian and I built the IaaS solution, the other half of the team focused on creating a public web site utilizing only Azure’s PaaS offerings. A .NET Core MVC application was deployed to an Azure Web App, Entity Framework Core was used to manage our data access to our Azure SQL database, and Redis cache was used to improve performance.
All this infrastructure was deployed using Azure Resource Manager (ARM) templates. Any sensitive parameters for the deployment, such as the SQL login credentials, were not added to the template and source controlled. Instead they were secured within an Azure KeyVault and referenced with a URL to the location of the secret. All code was source controlled in GitHub.
When changes were pushed to the repository, a trigger in Visual Studio Team Services (VSTS) would first kick off the Continuous Integration (CI) builds and then the Continuous Delivery (CD) release which deployed the changes straight to the web app in the GovCloud. This CI/CD pipeline had our code changes flowing into production quickly and may have given us an advantage over other teams.
Tip 4: Working on a multi-disciplinary team gives you the ability to learn about problems from other people’s perspectives. This is a lesson that I know I can apply at my day job.
At the end of Day Two, all the teams presented their solutions and were graded by a panel of judges that then awarded first, second, and third place. Several teams made attempts at utilizing Cognitive Services, PowerBI, and building out IaaS environments, but there could only be one top team.
Team Yoda did not disappoint and took home first place with our solutions!
I had a great time and the fact that we won made it even better. However, what was most impressive from this event was how well the speakers presented information on Azure Government and how much I learned. The Microsoft Azure Government Engineering team was completely integrated with all of the teams and assisted or answered questions throughout the entire event. The attendees were also fortunate enough to have Jason Zander, Corporate VP of Microsoft Azure, speak to us so we could get a better understanding of Microsoft’s goals for Azure Government.
I hope these tips have been useful to you and have inspired you to attend the next HackFest. If you are able to attend the next one and see me there, say ‘Hi’!