Enabling DevOps Practices with Visual Studio Team Services Build
Microsoft Video Courses · 5 lessons · Free on YouTube
About this course
thanks for joining us on this course enabling DevOps practices with Visual Studio online build so today we were joined by myself Vivat SR I am a senior Technical
Evangelist at Microsoft you can see my blog there I’m a I’ve got hundreds of videos no joke shooting videos since 2007 all kinds of technical videos courses on DevOps all
kinds of things like that extreme sports enthusiasts for sure and as far as my professional career goes I’ve been working in IT since 1998 and been at Microsoft since 2002 a lot a
long time as an evangelist but always kind of focused on that ops ops audience and then of course we have my github profile down there which will come in handy later and I’m also joined by Donna
hey are you yeah so I am Donovan Brown I am a senior program manager for DevOps so I’m responsible for the experience that you have when you’re using our DevOps experience on video so I happen
to be the 12th best air hockey player in the world which is always a you hold always gets a round of applause when I say that you’re like a consistent 12th ranked or like I’m actually been 11 I’ve
been 12 so I’m pretty good I’m good there I just had a table brought to Microsoft so in the common that’s my table and I brought it so that we can share it and we can actually practice
there you go and intestine and shape on that yeah I also race cars for fun I’m an avid developer I’ve been slinging code since the 90s so I bring the dev to his ops when we’re talking about nabob
we’re going to keep each other honest and in balance there for a career the reason that I got acquired by Microsoft I feel like I got acquired I was recruited to come and join because of my
experience in the process consulting world I flew all over the world helping teams use Team Foundation server and implement scrum and become more agile and it seemed like a natural progression
for me to come to Microsoft and help sell those tools and and now I’m a p.m. to help build those tools so really excited about my opportunity here so I encourage you to join the conversation
you can follow me on twit it’s at Donovan Brown a lot of people are giving me their feedback in their comments and suggestions so that I can help make this the best project product
we have all right well we have five modules for you today and not going to list what all those are but yes so stay tuned beyond this overview module four for all
of the great content we have in store for you some prerequisites for you one is it would be nice if you had some get experience it is not a hard requirement I would say but things might make a
little more sense since we will be working with get a little bit it also would be useful for you to just have a general concept of builds like what is what is a build you don’t need to know
anything about Visual Studio online or Azure or really a whole lot else we assume that you’re relatively technical since you are attending a course here about build and if you want to follow
along you can go ahead and create a free Visual Studio online trial account it’s free up to five users it takes a couple minutes or so to get going so that is a little bit about prerequisites for the
course so with that we are going to start our overview of module here we wanted to give you a little bit of an idea of some background first right we are there’s by no means are we going to
go into every nook and cranny hero visual studio online but we want to explain some things upfront here so we can more adequately explain build one which is what is TFS versus VSO and how
does that hold dynamic work the other is what are the improvements in build this will be probably the the main focus of the course today which is the enhancements within build and then what
is this concept of DevOps practices that’s in the title what does that mean and how is that going to relate to what you’re going to learn for the rest of the course today so what is our solution
our solution for this entire space is Team Foundation server that’s been around for a really long time but come around 2011 we launched this service equivalent effect
of Team Foundation server so this does a lot of different things as you can see here you know source control agile planning test case management that list goes down a whole bunch of things here
there’s no way again like we’re going to cover all of this today but we are going to hone in on a number of different things here that specifically mostly relates to the build capabilities and
some of the things that you can do with it and how it relates to DevOps absolutely a team foundation server is a I like to describe it the collaboration hub that has your work item tracking
your bug tracking it has your your build your release management everything is combined into this fantastic solution and as you said we brought it online and one of the key points of that is their
build automation which we’re going to talk about today one of the one of the other things that I think is also really important to understand is is decadence so you know sometimes you get hey well
that’s great that you’re doing this you know new whiz-bang thing and Visual Studio online but named your excuse why you think you can’t go to cloud yet and and then what what I would tell you is
that well we have a great cadence here at Microsoft in that you know every three weeks we push things into Visual Studio online well after roughly every quarter or so
we push those features back to the TFS product on on the on premises right TFS so even though you may see something and we’re focusing today on Visual Studio online eventually you will get to see
those features on Team Foundation server if that’s what you need to to do so this equally applies for really TFS as well as even though this is focused on visual Street online for today so what are the
improvements that build on it there are lots of improvements in build it is completely new from the ground up so if you have a lot of experience with our old saml-based build where we had you
learn workflow to be able to do a build you’ll be nice to go and play and pleased to know that you don’t you no longer have to understand workflow to do your build you just simply need to know
the tools you already know today so if you’re using maven you can continue to use even if you’re using msbuild continue to use msbuild you don’t have to learn
another what we call DSL or domain-specific language to be able to do your builds today so the sam’l is gone we replace it within an enormous task library that we’re increasing and
that’s also open source so that you can go see how we written our tasks so that you can go write some of the tasks of your own in the future it’s completely web-based so you no longer have to go
inside a visual studio to build build definition and then try to go monitor it somewhere else you can stay in the web and have this nice single pane of glass that will allow you to do everything
that you need to do as it pertains to your builds as well so there’s a lot of new flexibility there we have a new agent based solution that we’re going to teach you how to install some of those
agents later we have we host those agents for you in the cloud so that’s there’s a zero installation process of getting your code actually building with the team Bill now very cool tons of
changes I mean really you know we looked at what are all of the feedbacks that we have been getting for our products over some time and said let’s fix all those vigilance and just do a whole new build
system right we also wanted one that was cross-platform which is a huge improvement on our old build system Microsoft has historically been the dotnet company and we’re trying to
change that and you see a lot of tweets about I love the new Microsoft and the new Microsoft is an open Microsoft where we’re doing open source and we’re open sourcing our task library it’s a
Microsoft where we’re trying to embrace Linux and we have Linux running on Azure and it’s very easy to stand up and we’re actually even embracing Mac so where you can do iOS development using our system
so no matter what technology you’re using or platform that you’re targeting Microsoft adds value to that project yeah if you if you step to this slide you can actually see that right here
this is a Macintosh that little black box on the right hand side is the DSO agent running on the Mac waiting to do builds for instance of iOS hi Lily iOS you got an iOS app you want to do test
automation for instance or builds if you’ve got that connection point right there so you could run a sea of Macintosh devices and have those be your build the building
absolutely absolutely yeah you also notice Linux right that’s another big big one that’s there and we’ll show a little bit of that more later but really truly you know changing the game in
terms of what people are doing in terms of that cross-platform right we realize that people are doing a lot more than Microsoft and dotnet these days and even us at Microsoft right we have a lot of
open source technologies that we’re supporting especially in the light of a Vasher right with Linux and we even open sourced our core for asp.net so you can run easy yeah so even they’re going over
to the last net will run on like hey that’s not it crazy who thought that whatever happened I always think it’s funny that until I joined Microsoft I had never installed Linux or owned a Mac
and now that I work at Microsoft I have an Android device I have a Macintosh and I’ve installed Linux more times than I can imagine and I’m thinking wow you ever thought I would have done this
before I joined Microsoft that after but it’s a completely new Microsoft it’s a Microsoft where we understand that we have to play in those ecosystems as well so what what can you tell us a little
more about the the dill DSL well what’s nice is that there is no build DSL which is the beautiful thing before there was and there are many of them already out there msbuild maven and grunt Gradle
picker tool but what we don’t want to do at Microsoft has introduced yet another tool that you’re going to have to go learn before you actually be able to do your builds so what we’re going to do is
you bring us your bits and we’re going to build those bits for you using the tools that you already know and love so we have tasks that will let you do Gradle and let you do grunt and do all
those other types of activities that you’re currently doing on your bill today we’re going to do them in our build as well very cool ok hiding our logs this has been a pain
point I think our old build system was very optimistic that everything was going to go great every time so we didn’t make getting to those logs very easy but we all know if you’ve ever done
any builds that builds break right especially ci builds that’s what they’re designed to do they’re supposed to fail fast so that I can go back and fix them but when they fail I need to get to
those actual log files that I can see what actually went wrong and what I’ll show you when we start doing our first build is our logs are now in real time you can see them as they’re happening
and we make them very very easy for you to get to ok what about the extensibility because this is one question that I get I mean you see a lot of and this is something
that I think is really important to clarify right because you see all these different cross plat tasks and stuff but then what sometimes I get is for what about whatever that is you know whether
at the HipChat or slack or some other thing right and right and maybe so maybe you can clarify a little bit on what are some of the extensions from Visual Studio online and and how does that kind
of relate a little great team foundation server historically has always been very extensible right we’ve always had hooks in places where you can actually plug in your system and what we’ve doing inside
of Visual Studio online as well is we’re making sure that we give you rest api s and other endpoints that you can listen to and monitor so that you can plug your system into it we’ve also taken our task
library that’s inside of our build system and open sourced it so that people can contribute to it and that you can add your own to it so we realized and I believe this firmly that team
foundation server and VSO is best when you use all of it as a unit but there’s going to be times or you’re going to need to replace the build system with something else or the release system
with something else and we’ve put those hooks in place to where if you’d like to use it all great but if you need to take it piece by piece and use it we have that functionality for you as well cool
all right DevOps frame so we talked about you know the title of this course is you know enabling DevOps practices well what is the DevOps practice what does that mean
we are definitely not going to explain all of what DevOps means to you today but I do want to at least explain to you at a high level how does the DevOps practice relate to this whole DevOps
thing that’s out there at 100 at the kind of flying really high the 50 or almost a hundred level right you’re going to have things relate to DevOps like people write dev ops business
you’re going to have things like process you’re going to say was the business value of doing DevOps all those types of things float at a very high level and on the other side of the spectrum the 300
or deeper level of the conversation you start to have all these different tools that pop up right I’m doing and I’m doing puppet and I’m doing a you know technology whatever that is Jenkins
then release me often on all those things and and there’s a bit of a if you left it at that there’s a bit of a disconnect right because you’re saying well there’s this this kind of DevOps
high-level concept thing and then there’s this technology thing and some people incorrectly say well I’m using chef so I’m DevOps or I’m using this and so it’s like no no you’re not right you
have to have that people process and that whole thing in place and your organization but there is still a desire right to kind of connect those two concepts together and so that’s where
DevOps practice really comes into play a DevOps practice is really something that I would call more industry-recognized with this like a set of things that you do and we’ll explain more of the
specific three that we’re going to talk about in a bit but that helps you to really kind of bridge those gaps right so if you’re doing let’s say infrastructure as code there are tons of
different ways you can implement of structures code whether you’re using Microsoft or not that is that is a DevOps practice and structures code on how you can you know kind of bridge the
gap between all of those the high-level things and the 300 level technology things so that’s what we mean here and how DevOps practices fits into the bigger picture what are the DevOps
practices though well this is just you know a lists here that I’ve come up with and the left-hand side I would say is probably more of the the well more well-known once in that space but
specifically for today we are going to be covering you know these three and how there’s a few on line build can help with those three components now that being said Visual Studio online in
general there is a lot to it like we mentioned that first slide we had at the beginning of this module you know there’s a ton here and and there’s no way we’re going to cover all of these
things today but just know that visual student online can enable a lot of other things here and we’re just going to focus on just these three today so with that I would love to snap over
to to Donovan sure and give you just kind of a you know a quick intro right on on VSO so that people may get a little familiar with at least the source code side of things
sure so you’ll be able to follow along if you have a VSO account with what we’re going to be doing today so what we’re going to start off with is showing you how to create a team project that
uses git as the repository and then we’re going to actually take some code off of github and use that as our sample project for the remainder of our modules today so they get started inside of your
VSO account you can simply click on new this is going to allow me to create a new team project you can give it any name you want we can call it MBA o two and then from here we can choose a
process template so if you’re scrum or agile or CMMI you get to choose what template you’d like it to use and then down here you get to choose the version control as you can see Team Foundation
server version control is still the default and I want to take a moment to say we’re not getting rid of TF VC right David and I spoke about which source control system we wanted to talk to
today we chose get but that is no indication that we’re dropping support for TF VC right git is very popular right now and you’ll see a lot of activity from Microsoft on
git and that’s because there’s some workflows that we have in T FEC that aren’t implemented in get yet so yeah there’s a lot of activity and excitement there but it’s not an indication of our
lack of support for tfcc I just want to throw that out there cuz I’m a big TF DC fan but get is unavoidable so regardless if you love it or not you’re gonna have to learn it so
let’s go ahead and use this as an opportunity to learn how to use git as well so I’m going to go ahead and create this project and add the original slide showed with TFS and visuals Visual
Studio online there’s a lot of value so what it’s doing in the background right now is creating all that value for us it’s giving us a place to store our test cases our bug our requirements our
builds our releases all that valuable stuff and now it’s done it’s very quick to do and what I’m going to have now is an opportunity to see a dashboard of our brand new project it gives me a quick
way to get started and what we’re interested in today is the code so if I go to the code tab you’re going to see that I now have a private repo in of TFS but there’s no code in it so
we’re going to need to do now is go get some code we have a couple projects David and I both that you can use to follow along my username is dark the AR qu e warrior and if we search here
you’ll be able to see that I have some repos up here and the one that we’re going to be using first is going to be the parts Unlimited repo and there’s a branch in here that we’re going to want
to use which is the asp.net 4 or 5 branch and all I’m going to do real quickly is just download the zip file if I open this up I’ll be able to just copy this folder and then let’s find a place
on our hard drive where we want to store this information and I’m just going to go very quickly to see create a folder called repos here and then simply paste this folder into it now I’m going to be
using my credentials from VSO to do all of my work but as David pointed out there is a way for you to actually go in and set what we call alternative credentials that will allow you
I believe that this is the right right tab for that yeah so when it loads up here in just a second we’re going to be able to set alternate credentials that you could then type in
on the command line versus having to use your Hotmail or whatever account you’re using to associate with your with your git repo here I’m going to go ahead and steal this while I’m here while that
loads we’ll come back and look at that here I don’t want to wait for that particular thing to load we’re going to go ahead and jump into PowerShell and I’m going to use normal git command so
the point that we want to drive home here is this is the get you know and love it’s not a TFS version of git or a Microsoft version of get this is just flat-out get so I’m going to run
commands if you’re a get user that you should be familiar with and hopefully that I get right because like I said before I am a TF PC fan but we’re going to go ahead and get into the parts
Unlimited folder and I’m just going to go ahead and do a get an it and I’m also going to go ahead and set up some global configuration stuff so I’m going to do git config global
and from here I’m going to set up my user email I can type today and I’m going to just go ahead and use my hotmail account which I also misspelled here mellow calm and I’m going to do
another git config and I’m going to set my username I think I’m getting the hang of this keyboard a little better now that I have that setup what I’m going to need to be able to do is push this
information into our repo and to do that you’re going to have to set up a remote so we’re going to do get remote we’re going to add a new one we’re going to call this guy origin and we’re simply
going to paste in what we copied from the clipboard and now that we have that we basically need to do the normal get stuff you would do add the files to our repo commit that repo and then push it
so we’re going to do a get add and I’m just going to add everything and then after doing that I’m going to go ahead and commit these changes so let’s do a git commit and I’m going to do – this
and this is just going to be my initial check in here and then finally I need to push these changes to our repo so if I simply do a git push and I want to make sure I get all this stuff there this
should start pushing all of my stuff up there once I log in and this is where the credentials that we just talked about or I’ll show you here in just a second you can set so you don’t have to
put this on the command line and hopefully everything that starts going up the way I want it to and then in a moment when I go back here so from here I go to the security and for some reason
this is running a little slower than I’d like it to always does when you’re doing a demo so it’s important to point out to the the that the the commands forget config for global that’s only done
though on the first time absolutely just so that when you when you push to the repo people know who you are that’s just part of the way in which get works and then here I could set up my
alternate credentials and then I could put any username and password here that I want and then be able to type that on the command line versus my my account information that I did before and again
we’re having some very slow internet and there are also a number of different ways in which you can commit to the repo absolutely resistance Donovan could have done a a git clone absolutely hold down
you know the empty repository and then put the copy and paste of the files in there and then done a push so there’s a number of different ways you can go about it but we just want to get you
familiar and show you that hey this is this is git absolutely you know the standard protocol and how you operate yeah so there’s no wrong way to get your code into the git repo whatever commands
work for you feel free to use them that’s the mode that I go to because if I were to clone and then sometimes clone from from github you have to then copy it out of there to make sure you don’t
have all the other information and I felt this way allowed me to just do a quick copy and paste but he’s absolutely right there’s no wrong way to get your code in there I wanted to jump back to
this screen while we waited for the other one the load to show you that that empty repo now has all the code in it that we want to use in the future modules to be able to continue with
build and here’s where you would actually be able to set those additional credentials okay great we’re ready now to kick off into the next module and actually show how we’re going to build
that code using our new build system very cool so we want to share with you some resources that we have just so you’re well aware of where you can learn more things about DevOps and we went out
specifically call out you know Donovan already has shown us this parks and limited application now he pulled some custom he had a fork of the parts and loaded application and did some custom
customizations to his own repo but that being said there is a Microsoft supported parts unlimited application and parts of limited MRP which is fully open source and the parts of limited is
the kind of all Microsoft type of type of app tied back to the Phoenix project that’s the main one I want to call out here but there are a ton of other resources from Microsoft
on on helping you with DevOps absolutely so with that though we want to go ahead and close out thanks for watching the overview and stay tuned for the next module
THERE IS ALWAYS MORE