Global Azure Bootcamp 2016
On Saturday I had a pleasure to participate in an even called Global Azure Bootcamp 2016 organized by Łukasz Gąsior from Objectivity. Actually it was second time I did it, first one was in 2012 which was the very first time actually they organized it. The event is called global, because it’s organized in countries all around the world. Map looked like that:
Pretty nice, huh? As the name says, it’s basically an event to put your hands on the different Azure features you would like to try and learn. In the agenda for our location we had few speakers, with quite an interesting content.
First session by Andrzej Kowal was about IoT. It was quite fast and hard to follow up, but finally the session was a complete tour building (from scratch) a solution in Azure that listens for signals from ‘things’ 🙂 (in this particular case it was a temperature sensor connected to raspbery pi), and aggregates it, displaying the data using some charts on the website. Even for me, who doesn’t have any experience with IoT, it was very interesting and I learned a lot. I wish I had Raspberry Pi at home to play with it a bit.
Second session by Artur Menc was about machine learning. Very well prepared and professional, however totally out of the scope of my interests. It sounds obvious that azure is a good place for solutions like that. Loads of processing units that you can scale the way you want seem to be made for such things. I could easily conclude that having such tools on demand by subscription is the right way to go, if my needs are bigger than one PC can solve 🙂
Third session by Tomasz Wiśniewski (@) was about Azure App Services and Continuous Integration using Azure, Git and Visual Studio Team Services. The approach Tomasz presented was to have team working on an ASP.NET MVC app, with source controlled by Git, which enables a lot of automation to help you manage the release process easily. In the end, we had 3 types on environments (production, development, QA) with related acceptance strategies (people validating releases after automated emails), automated builds and azure deployments using some simple configuration on the Visual Studio Team Services website. Very interesting approach showing how powerful Microsoft’s technology stack is.
Additionally, there was a game made specially for this event, that all the attendees from each location could play to win both personally and on the location/country level. Finally, Poland ended up on the 3rd place. You can check the full results page here.
The meeting was organized in Radisson Blu Wroclaw Hotel, which was obviously a very comfortable place to stay for so many hours. I liked it so much that i will very likely attend next one in one year.
Daj się Poznać
Since I was learning about Azure, I couldn’t miss the opportunity to make my website visible on the web, hosted on Azure. I know there’s not much to see there, but it’s alive: here. There were couple of things I needed to change.
The most problematic thing about this website is that it’s using a package called node-gyp which is using python to build some content. This already took a lot of my time when working locally, but finally after I got this all set up properly, I needed to make it working also on Azure. It seems that instead of installing stuff on Azure, the suggested approach is just to copy the ‘node_modules’ directory to your website location so that npm doesn’t need to run the build process, which is throwing errors due to python and some c++ stuff missing/not configured. In any case, copying the files made the job and I hope to not need to get back to this problem again.
Another thing that I needed to get done was the MongoDB instance available on Azure. That was relatively easy as there’s a ready package to pick from azure marketplace from mLab. Click-click and you’re done.
Next thing I had to work on was the deployment script, so that my solution doesn’t try to install itself each time I push to the azure remote repository. It’s a very powerful and flexible solution that’s very easy to use. All you need to do is install azure cli on your computer:
npm install azure-cli -g
After that, you’re one step from having a complete deployment script generated for you:
azure site deploymentscript --node
And that’s actually it. You get two files generated:
- .deployment – Contains the command to run for deploying your site.
- deploy.cmd – Contains the deployment script.
I had to change few lines of code to not run ‘npm start’ or anything like that after deploy. For now I just run build to get my webpack bundle ready right after git push. You can read more about the scripts for deployment here.
After all those steps, the continuous integration process looks very simple. You just keep one remote for azure, so that when you want to release the website, you just:
git push azure master
and it’s ready to use, online, in less than one minute.
Azure – was it worth it?
One, or two weeks ago, when I decided to host my website in Azure just to give it a try and make it accessible for tests, I wasn’t sure if that’s a right choice. I wasted already a lot of time on fixing the environment instead of writing code, so I was afraid I won’t have time to code. Now I know it was a good choice. I learned a lot and actually I liked this whole Azure ecosystem a lot. I even started to think about extending my subscription after the 1-month trial (which will expire on last day of April). We’ll see, for now I think I can start working more on the code level than I did so far.