DevOps Days London is fast approaching. The main conference runs from Tuesday 19th – Wednesday 20th April 2016, however, on Thursday 21st April there is a one day Hackathon which Microsoft is supporting. From the DevOps Days London website:
"This isn’t a traditional Hackathon, we are looking to test the principles of DevOps against the clock and at the same time attempt to build a production quality Minimum Viable Product (MVP) that could facilitate the giving of small (micro) donations to a variety of charities so easy it becomes a way of life. The concept is to create a facility for retailers to offer their customers the option to round individual transactions to the nearest $, £, €,¥ etc., to see their donations update a fund real-time and to influence who benefits from it."
To ensure the hackathon runs smoothly, on April 21st a dry run was carried out with a small group at Barclays. I attended, as did my colleague Jonathan Collinge. To ensure that attendees could get up and running as quickly as possible a group of DevOps specialists from Accenture had created an instance of their DevOps platform on Azure for each team.
The Accenture DevOps Platform
Accenture have made their DevOps platform (ADOP) available on GitHub. It combines a number of open source DevOps tools to provide a delivery pipeline. It has a concept of "cartridges" that allow projects to be loaded into the platform. Out of the box it came with a Java cartridge with a "Pet Clinic" web application. The tools included in the platform are:
What did we do at the dry run hackathon?
As we will be proctoring the event on April 21st we decided to work with some of the guys from Accenture to make the hackers as productive as possible on the day. There are a number of items that we worked on, including:
1. Create an Azure Resource Manager Template to deploy ADOP to an Ubuntu virtual machine on Azure
Prior to the dry run, the guys from Accenture deployed ADOP to Azure using the Azure driver for Docker Machine. There was also the need to manually create some firewall rules which takes time and an installation of Docker Machine was required. We wanted attendees to be able to deploy ADOP to Azure with one click. The solution? An ARM Template utilising the Docker VM Extension and a Custom Script Extension for Linux. This is "almost" complete and can be found on GitHub. Please feel free to give it a try!
2. Integrate the Parts Unlimited website into ADOP
A key part of the hackathon involves creating a plugin for an e-commerce web site. To prevent the need for attendees to create their own ecommerce base site, we decided to load ADOP with a sample e-commerce website. Microsoft has a sample store called Parts Unlimited available on GitHub. There are two versions, one written in ASP.NET 5 (now known as .NET Core), MVC 6 and the other in with Java. We wanted to provide different platforms for attendees to build on. We therefore worked to integrate both versions of Parts Unlimited into ADOP.
3. Create a cartridge to enable future .NET Core projects to be built using ADOP
As ADOP will be used by people after the hackathon, it was decided to build upon the work carried out in step 2 to release an ADOP cartridge to enable building .NET Core projects. This is currently work in progress and is available on GitHub.
It felt like we ran our own "mini" hackathon building the items above. One of the biggest take ways for myself was working with Joni and the guys from Accenture. They have a very different skillset to myself so I learnt a lot from working together. Hackathons are an excellent opportunity to meet new people and learn new skills so if you do have the opportunity to join one get involved.
But I work for Microsoft?
I thought working at Microsoft would mean working day in day out with Microsoft technologies – how wrong could I have been? Prior to joining I built my career working in pure Microsoft environments with minimal if any OSS technologies. As the beginning of 2016 I had never worked with any (or even heard of many) of the technologies I have highlighted throughout this post. The truth is I would have actively avoided these technologies and stuck with what I know.
Given the choice I would still chose to work with Windows Server and Visual Studio Team Services, however, the key to staying valued in the industry is increasingly having the ability to learn and understand new technologies. Limiting knowledge of a few existing "legacy" technologies is taking a risk. Who knows how technology is going to evolve in the future?