Yesterday I and Leandro Prado had two sessions at Visual Studio Summit Brazil 2016, brought by 2PC and Microsoft. Lots of great people were there to share knowledge in their sessions in this traditional event here in Sao Paulo. Leandro's session was named DevOps: Release Management vNext. Unhappily, I could not watch his sessions due to time conflict. I'm going to try to be fast and comment about the event and the content I shared in my session, named DevOps: how Microsoft uses VSTS.
The event structure didn't follow the classic track model. Differently, the format valued the double execution of each session during the event: one in a little meeting room and other in one of the auditoriums. This format allowed the public to have a second chance to watch a session they might have lost due to time conflict.
Among all the speakers, we had names like Andre Baltieri, Angelo Belchior, Alexandre Chohfi, Eduardo Pires, Evilazaro Alves, Giovanni Bassi, Julio Arruda, Lucas Romão, Leandro "Piá" Prado, Osvaldo Daibert, Ramon Durães and Victor Cavalcante. Vinicius Moura was called in the same day of the event to cover a session from a speaker who had an unexpected problem and could not be there with us. Vinicius deserves congratulations for his courage and for being able to prepare such a great content with that few hours.
Besides the guaranteed quality of the contents, the best aspect of the event in my opinion was the punctuality of each session. It contributed to keep the event running in a good pace.
Well, as everyone, I had two sessions to share the same content, at 3PM and 4:20PM. I tried to break that story that says: "Cobblers’ children never wear shoes.". I tried it by sharing that the VSTS Product Team in fact uses its own product.
I shared some values that the team has. We analyzed a video that compares the racing teams from 1950 and 2003, when Ferrari broke the world record for the fastest pit stop in history. I tried to let everyone understand that modernization is inevitable and Microsoft needed to modernize itself continuously to keep being one of the biggest players in the market.
After we watched that video, we focused in Tools, Process and People, all focusing on Microsoft and the product team.
About this aspect, we understood the Developer Division's dimension inside Microsoft, how many of them are from the Team Services Team and in how many Feature Team they are divided. We also analyzed the growing number of internal users that VSTS has.
Here we could understand which are the team's timeboxes, like the Sprints and what is the frequence that the team revises its Roadmap. We saw that the backlog is fed by the team itself and also by all the users through UserVoice, the official tool to collect feedback and new ideas. Lastly we checked that the team uses Work Items (customized!) to manage its backlog.
As one of the Tool's items, we saw that the team uses Git to version their code, replacing TFVC permanently, which seems to be in maintenance mode. Just my thoughts... Besides that, I showed that the branches mechanism is simpler than everyone imagined, using only a main branch and creating a branch for each feature being developed. The Pull Requests are used to increase quality by promoting Code Review.
This was the most expected aspect and was also the one that brought more content. Here we could understand some things:
- Canary Deployment: this concept is used to release a new version in production and, in case of an incident, a minimal group of user accounts, including the own team's, is impacted. Here we can conclude that YES, the team uses its own product. Dog-fooding!
- The Canary term is based on the history of the coal miners who took a canary every time they go to the mine and, if the canary dies, it was time to leave the mine because the air was too toxic to stay there.
- Scale Units: to make Canary Deployment possible, VSTS has some Scale Units (SUs) as production environments. Each one of them is a set of Team Services accounts that, the smaller, the more early adopters they are. Scale Unit 0 is what they call Canary Instance.
- It's possible to request to be an early adopter throught a support request to the product team. You may go from SU3 to Su2 or SU1. It never hurts to try, huh? 🙂 Be aware that only some internal teams, employees and initiatives are elegible to SU0.
- Release Management: And here we have another YES! The new releases of VSTS are triggered automatically on each SU through Release Management. It was so cool to talk about that. We were done with this aspect by discovering that LightRail, a PowerShell-based tool, is used in one of the few tasks to run this deployment in each environment.
- How to be up to date with the service status: at last, we saw that there's a lot of transparency about service health. It's possible to follow the detailed news and the service status through the following channels:
- Twitter @VSTeam: news and incident announcements;
- Product Status Website: here you can easily know if there's any problem with the product operation. And remember: green means that everything is ok; yellow means that there's a problem which the team already know the root cause and they're already working on it/the product is partially unavailable; and red means that there's a problem with an unknown root cause and the team is still investigating/the product is unavailable.
- Service Blog: here it is possible to know details of deployments, ivestigation and correction of problems.
You can check the slides I used in my sessions below:
I honestly hope that sharing these informations with the devs that were in each session had given some extra energy to them so they can encourage even more their companies to the "road to the cloud" and to Visual Studio Team Services, making the constant modernization possible and bringing even more productivity to their day-by-day.
Want to keep in touch? Just choose one of the channels on the right side 🙂