Introduction to Azure DevOps

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
thank you so much and good morning everyone let's try that again good morning everyone perfect all right so what we're going to talk about is DevOps we're gonna be talking about it all day long one of the things that I think is important about DevOps is how it can transform the way that you do business and the way that you compete with your competition I recently found a video that I like to share at the beginning of my talks that I believe highlights what your company can look like before and after you implement DevOps what we're gonna do is we're going to watch the video now and then we'll talk about the video after but Hollin comes in for a pit stop time to refuel and change tire loom or himself changes the tires only for crew members including the driver are allowed to work on the car it's the tenth time Holland stays in his seat anxious to get away let's watch [Music] the tires are changed to glass a cruel man polishes the windshield as Holland moves away just 67 seconds after II stop they should be trying to go from a swinging a hammer to be able to move a car in less than three seconds now I'm extremely active on Twitter it is the number one way to get a hold of me I actually spoke at a conference yesterday and the way that they got ahold of me was they tweeted at me and I flew all the way to England to come hang out with them so if you want to get a hold of me this is the best way and I tweeted this video not too long ago and I said DevOps before and after generally people got what I was talking about but obviously a couple people didn't hear I've blurred their faces to make sure that I don't embarrass them but I did not delete the tweet so if you really a curious of who these two knuckleheads are you can actually go find them right one of them said there's no value because there are so many more people in the second video the other person said they didn't even refill the car there's clearly less value in the second pit stop from the first pit stop so what I want to do is I want to address these two people because I remember when I read these I was sitting in my office reading these comments and clearly I'm having like a physical reaction to this because my wife walks in and says what's wrong with you I'm like mumbling under my breath I don't understand how do they not get this as an amazing analogy for this so what I did is I wrote this amazing blog post that explains why this is a great analogy but we're gonna do is were gonna address these first two people the increase in the number of people I remember I started writing software at a little computer company called Compaq computers does anyone remember compact computers all the old fogies I remember compact computers I'm old too I started writing software there in the mid-90s and I remember when I was done Donovan brown writing software I would walk into a server room and then that server one would be ProLiant servers connected to the Internet production boxes I can pull out a tray type in my username and password and it would log me in and I could then do whatever I needed to to that machine I had admin privileges changing registry settings deleting files copying files whatever I needed to literally I was swinging a hammer at a ProLiant server till it did what I told it to do and then I ran out of the room as fast as I could because if I got out of there before the IT prokop me that was their problem I had to put this offer on they had to keep the lights on it was a beautiful job for me beautiful right no consequences no matter how bad the code was it was not my fault anymore it was their fault it was just me and a computer very few people try that today impossible first of all you probably don't even know where the servers are you definitely do not have admin permissions on those servers dev is involved ops is involved auditing is involved security is involved quality program managers the list goes on and on and on everybody wants to say they were involved in shipping the latest version of that piece of software even if they weren't there are simply more people involved in deploying software today than at any point in our history before so on that level alone this analogy works there are more people involved today which means I was right this is a beautiful analogy for for DevOps but I didn't even see these as people I saw them as automation continuous integration continuous delivery infrastructure as code security rule backs that's what I saw here specialized services you know what's important about DevOps is delivering value the only way that you can know if you delivered value is to measure and monitor what you do in production check it out if you watch this again these two people here they never move these are two gentlemen monitoring a three-second pitstop to see how it can be a two and a half second pit stop next time you should be doing the exact same thing in your organization's why make a change if you don't know if it improved anything you have to measure before run an experiment and measure again after that's exactly what they're doing right here they're measuring everything that they do you know another thing that's really hot today and DevOps is security everyone wants deaf SEC ops now these two gentlemen in the middle are literally just securing the car on the jacks so that it does not fall off this is security in action that's their whole job that's what I'd want to do by the way if I want a pit crew just hold the car and then back like I did something major when I left off be awesome right how many of you are on your DevOps transformations right now anyone ever built a pipeline do you remember the first pipeline you built it didn't work right and what was the first knee-jerk reaction you had man how do we do a rollback because if this happens again I need to be able to roll back really really quickly in my mind this must have happened on this pit crew you know why because this person here has a jack and it jacks up the rear of the car at some point that jack must have failed you know why because that guy has a jack too right sitting there waiting for that first jack to just like you had that rollback mechanism just in case your pipeline actually fails it's this that same thing you know what else you should do in your DevOps pipeline is reevaluate your tools make sure that you're using the best tools for the job in the past they were using a hammer in this video they're using an impact wrench a specialized tool designed to do one thing and one thing only take the tires off and then put the lug nuts back on to put the tire back on the more I look at this video the more I see other analogies in ways that this is a perfect analogy for what you should be doing inside your DevOps pipeline security is in here rollback is in here monitoring is in here improving your tools it's all in this picture here right so let's talk about the next person Donavan they didn't refuel the car if you agree with that statement you're as coolest as the person who said that it's not that they did not refuel the car it's that they did not have to refill the car that one word changes this drastically I've always been taught that you were supposed to fix what hurts most first is refilling the car even the thing that hurts the most in this picture they were done 30 seconds in filling the car the other 37 seconds is spent changing the other tire what they should be focused on is fixing the tire problem first and let's imagine that they do they realize that they can change tires now in 10 seconds instead of 67 seconds now they look at this picture and for the next 20 seconds is the poor guy trying to put the fuel into the car because even if we filled it at the same pace in this video in the second video we would have been done in half the time so let's say they got it down to 10 seconds they realized that this poor person is still putting in gas now they have to fix that bottleneck and instead of figuring out how to trick physics and use vacuums to get the gas into the car faster they just shifted left technology in innovation aerodynamics made the engine more efficient made the car more efficient so where they eliminated the bottleneck altogether so they don't even have to fill the car and you go from the first video to this video where they not only changed the front to tires but also the rear two tires in less time than the entire pit stop before this is what your company should be trying to do every single time you think about DevOps monitor what you're doing and make sure that you're doing it faster and faster like I said the more I watch this video the more I see it being a perfect analogy for what your company can look like before and after DevOps ok and Microsoft this is the definition for DevOps that we use you're gonna see me use it you're gonna probably going to see Martin use it it's just our North Star it's all about delivering value you notice that this does not have software in the definition at all the reason that I avoided the word software is because I believed that if I said the word software I'd only be talking to half the room the dev side of the room but this is called dev ops and another reason I wanted to focus on value and not software is because I meet a lot of organizations and the first question they say to me is Donovan why do our dev and our ops teams work against each other I say well how are they incentivized like well we incentivize the ops teams by keeping the lights on the server's on like okay how do you incentivize the dev teams by changing the servers as much as they can by adding features I guess what the easiest way to keep us servers lights on is not to change it so if you're going to reward me for keeping the lights on on that server I'm gonna do whatever I have to to stop people from changing that server and if I'm a developer who gets rewarded for adding features I'm gonna do whatever I can to change that server so we are literally taught to fight against each other because they get the big bonus we have to do the thing that gets you the smallest bonus now what if instead we change the conversation said hey ops and dev you both only get the big bonus if we deliver a value to our end users they are naturally going to work together because that's the only way that they get the big bonus because the deliver value takes dev and ops great infrastructure and great software not one or the other but both so focusing on value aligned your team on a common goal and it naturally makes them work together the hardest part of this sentence is people it should be red and underlined and flashing because you're here but we invited a lot more people than that are sitting in this room right now and some of them might have been your peers so when you leave here I hope you're excited and pumped up about DevOps and you know what it can do for your company but you're going to be met by resistance by everyone who is not sitting in here they're going to keep doing it the exact same way they've always been doing it and what's really funny is success is the biggest deterrent to implementing DevOps what I mean by that is if I've gotten successful doing it this old way I'm the biggest in my industry doing it the old way if it's not broken why would I fix it the reason why is because remember when the first car was getting his tires changed he heard all those other cars still driving around on the track just lapping you that's your competition who's realized that there's a better way of doing this than the way that you're currently doing it right now so your people have to get on board your people have to understand that this is not optional this is not a nice-to-have this is fundamental and required for you to succeed as a company and when you do the process and the products that's the easy part we already understand agile and Kanban and scrum and we understand that stuff and products not only do we have products but our competitors have products and most of us are giving it away for free the process and the products are the easy part but you got to get your people to understand that delivering value is the goal and we're gonna talk about that today so what technologies do you do this is not an inclusive list these are just some of the fundamental things I believe that continuous integration is like that first domino that starts this chain reaction of this greatness that takes that code and puts it out into production and your first thing you got to do is build it and then package it and test it such as you can then push it out into production once you have continuous integration firing on all cylinders it's time to take that increment of shippable software and actually ship the software a lot of people feel like they've got taken advantage of because they went off and they started implementing scrum and agile and like all we have now are these pals of increments of strippable software but scrum and agile didn't tell us how to ship any of it they just say produce it in me we did in now attila takes months or years to get that code actually into production and that's where cds gonna come in and say nope we're gonna take that incremental shippable software we're actually gonna help you ship it to the environments that you need to and as I said before and as the two gentleman explained or or showed us there you've got to monitor and learn what you're doing if you're an agile or a scrum shop you should be having something called a product backlog it is a laundry list of any and everything that you want your software to do the key about that is the most important thing should be at the top how do you know it's the most important thing because your product owner said so and how do you know that they're right because they're all knowing right that's what a product owner is they know everything they know why that thing is most and you just take their word for it so what do you do you move heaven and earth and you turn that idea into a working piece of software and you ship it you go have pizza you go celebrate a milestone but did you deliver a value if you're not monitoring if you don't have telemetry you actually have no idea you cannot quantify that and prove that you actually deliver value your priorities could completely be out of whack and you're actually delivering the wrong thing if you put telemetry in there even if you didn't deliver value it's better to know that that's not valuable and that you we need to go try something else then they're just Randall needs to keep putting features out to your customers that are not delivering value you have to monitor what you're doing and learn from that monitoring and that telemetry is extremely important I think we collect on the order of seven terabytes of telemetry every single day on Azure DevOps to make sure that we're delivering value and not just delivering features to our customers now you also going to need a platform that's very flexible powerful and open and asher checks all these boxes when it comes to flexible we can give you is we can give you pads we can give you sass we can give you hybrid right anywhere that you want to run your code we're gonna help you run it there any services that you need we're gonna stop having you have to reinvent the wheel and just use the services right out of the box when it comes to powerful we have cores and data centers popping up all over the world it's unbelievable every time Scott Guthrie does a keynote he says how many data centers we have and it's a huge jump from the last time you got on stage which might have only been like a week ago right and it's just stamping them out like crazy it's unbelievable and when it comes to open 50% of the cores that we run all right Linux course people think that Azure is just for Windows they're thinking wrong right we run more Linux than we do windows in our own cloud because we're completely open I love to say any language any platform and we try to prove it every single day I can't remember the last time I did a dotnet demo not because I don't love dot net I do but I have to prove to people that it works for Java and nodejs and Python and all the other languages I've been deploying to AWS and GCP and Azure and mobile devices because I have to prove that it's any language in any platform so do not believe this is the old TFS 2005 that only worked for dotnet on Windows those days are long gone and long behind us the way that we provide all this valuable stuff to you is through as your DevOps the name sucks okay so don't worry about it I'm there with you it's a horrible horrible name but please do not let the name detract from how powerful these features are they are incredible as your boards is basically your JIRA compete so if you're using JIRA today that is the direct competitor for JIRA it's where you're going to do all your planning your project management your Kanban boards your task boards capacity planning release management it's unbelievable release planning excuse me it's all in as your boards and it links up really well with everything else on this page including things like github that isn't on this page as your pipelines my hands-down my favorite feature of the entire suite it is our CI CD platform it gives you access to Mac Windows and Linux which no one else on planet does know I was so sad when you guys said you weren't doing mobile development because you just don't understand how cool it is to have a Mac sitting in the cloud ready to do your builds for you it's amazing because I have a Mac and I've had to configure it several times to do iOS builds and it's a nightmare but now I'll have to do is say hey there's a Mac up there here's my code go build it and this beautiful IPA comes back down to me from the cloud it's like magic right and we have that for you and no one else has that we have as a repose think of github but private that's the best way to describe me yes you can have public ones here but that's really not its Forte if you want to do public open source development github is the answer but if you want to have your entry level I would need to say entry level get if you want have your private get that you don't want anyone else to see repos is fantastic and the reason I like repo so much is that it naturally talks to everything else on this board you get unparalleled traceability with no effort whatsoever it's just wants to talk to everything else on this board you have manual testing teams as a lot of company should you can use our test plans with ties into our boards really well just imagine that you're grooming your product backlog you're looking at a product backlog item and when you double-click on it you can actually see the manual test cases that your testing team is gonna run against that to verify that you're done how cool would that be because now you can actually read the test cases understand how they're gonna use it and have it guide your do I have it guide your design and your patterns you can do that now because these two things are not separate they're actually integrated together and then finally artifacts think of artifactory this is you're gonna be able to store your new get packages or NPM packages maven packages we're adding more and more technologies to it all the time and now you can have a curated list of where you want your engineers to go and get their packages without going to the wild and potentially having vulnerabilities or issues and those particular packages and all this stuff comes together inside of Azure DevOps what's really cool about it is that you don't have to use all of it you can use as much or as little as you want we understand that we live in a world where people have already made an investment in Jenkins and they're not gonna abandon that investment nor do we want you to but you have a problem when it comes to releasing so all you have to do is use the release management portion of pipelines taking the output from your Jenkins build and actually being able to deploy it out into the environment that you want you now get to take it on piece by piece and what I would encourage you to do is fix what hurts most first just like I talked about in the analogy pick the one of the five services that you need that fixes what hurts the most for you and then what you're going to notice is that man that was really easy what would happen if I use something else and then what you're gonna do is realize that once you solve the first problem something else becomes the pain point and that's what you want to go fix next and hopefully it's gonna be another service inside of as your DevOps that's gonna be able to fix that for you as well but you do not have to rip and replace everything that you have you can actually start small take one problem at a time and just keep solving them with the services that we provide and this again any language any platform AWS actually has an extension in our marketplace that you can actually use to deploy to everything inside of AWS GCP has a command line that you can use and because our tool sets are so flexible if you can do it from the command line or you can do it from a REST API you can do it from our build in our release system so since GCP has a CLI we can use that CLI as part of our build and deploy the GCP just as easily as asher or AWS it's a brilliant system I told you a story earlier before we got started about updating a GoDaddy DNS record with the IP that I just got from a newly provision a KS cluster that's because I can run whatever I want from a command line I wrote a PowerShell script that actually updates GoDaddy using a REST API and now it's a permanent part of my pipeline and I never see the GoDaddy API ever again right I just run a build and all my IP addresses are fixed right that's the kind of power that you have a veil - you putting all this together with Azure in the center it's just an amazing ecosystem of power and you can still use like I said terraform puppet chef ansible whatever tools are already in your quiver whatever expertise if you've already built up whatever investments you've already made you do not have to abandon any of those you can actually leverage those it's just tack on what we do here at Microsoft so let's talk about how do you get started doing this stuff the easiest way to get started is to simply go to our site dev - or calm and from there you can actually just get started for free for example these three gentlemen here and the row behind them these five people here could go create an account and get started for absolutely zero dollars and zero cents you're now a startup we're gonna give you everything I just talked about for free it costs you absolutely nothing when you add the sixth person that's when we make all of our money back right we charge you what is like six dollars now it's six dollars a person so it's like it's in significantly cheap for you to be able to use all this power for your people now what's really cool is that if any of the five people in that front row already had an MSDN subscription you don't even count against the five that you get for free right you just keep adding people until you have five that don't have an MSDN and then the sixth person will charge you six dollars and you get everything that I just mentioned for free if you already have some some code off and github you can actually get started from github as well inside of the github marketplace you're gonna see that there's actually a underneath continuous integration and continuous delivery you'll find Azure pipelines and you can actually add Azure pipelines to your github repositories if they're public again for free you get 10 concurrent pipelines unlimited build minutes access to Mac Windows and Linux and a single yamo file to rule them all how many of you develop on github anyone proves github so if you ever gone and github almost every repo you've gone into has more than one Yemma files they have a mo file for a player and another and um will file for Travis or they have one for circle and one for Jenkins the reason why is because they can't get to Mac Windows and Linux from anywhere else they have to use two and three llamo files to reach all the platforms those guys are gone if you use Azure pipelines you write one llamo file that rules them all I only maintain one file but I have access to Mac Windows and Linux with a single llamo file which awesome so if you want to start using our stuff either go to Devdas or calm or come directly here to github and go ahead and connect it to your pipeline and start building in the cloud for free the Mac's the Windows and the Linux machines are actually in the cloud just waiting for you right there's nothing for you to install there's nothing for you to configure you just do a git push sit back and relax and let us go build your code for you okay so again pipeline is my favorite feature it's really really easy to get started with so that's all I wanted to talk about on getting started let's talk about some of the other features as your boards this is Kanban boards task boards capacity planning tools this is where you do all your agile planning it comes out of the box with three different templates we have an agile template for those who want to use the words like user story and issue we have a scrum template for those who want to say product backlog items and impediments and then if you're low key waterfall we call it CMMI because we don't want to embarrass people and call them waterfall in public so they call that CMMI but it's waterfall change request requirements the whole freaking nine yards so if you're that we actually have templates and why do we have so many templates because the tool changes its vocabulary to match the words that you use in your meetings if you're going to say user stories in your stand-ups why would you want to say product backlog items in your tools we want the tools to match the way that you work and that's why we actually have different templates and some of the rules and the guidance that the templates give you is slightly different the Kanban boards are completely customizable almost all of its customizable now if you come from the TFS world you remember we should say don't customize unless you can absolutely had to customize it and people will customize it anyway and get themselves in a lot of trouble so what we've done is we still allow you to customize this one but we put guard rails so that you don't get yourself into trouble all the customizations that you make are going to be upgradeable automatically and you won't lose into the features like you used to do back on trim which is really nice as well so let's go ahead and look at boards now this is a cool one because what I'm going to show you is actually how we use boards so what Martin is going to show you later is how we actually do DevOps inside of Microsoft in the way that we do DevOps inside of Microsoft is we use Azure DevOps inside of Microsoft which is really really powerful so what I'm going to show you here is an actual dashboard from one of the actual teams that builds as your DevOps I'm not going to go into the details here cuz imma leave that for Martin to cover for you but I wanted to show you that you have this really cool configurable dashboard some of this data is coming from Azure DevOps some of this data can come from Azure for example if you have application insights configured into your application for telemetry that telemetry can actually be surfaced here on your dashboard inside of Azure DevOps so you can say hey how's our last release doing is it healthy is it performance in perming well are we having a lot of server errors and if so then we can start locking bugs and those bugs and actually show up here on this dashboard another thing that you can do here is actually go over here to our Kanban board so what imma do is I'm gonna show you an actual comp on board don't take a picture of this because we're about to have a build conference and some of this stuff is about to be delivered at build and I don't want to spoil it for them however I'm not going to build so part of me wants to leak all this stuff too right so I wasn't going this year so I'm not happy about it but nevertheless these are actual real boards this is like a real active board and as you can tell later yesterday there was one of them that had a different color on it but since this is real data it's always moving see if I can find it again but they up there it is sorry so you can see some of these are different colors here because we have rules that we can actually say that if this is blocked I want it to be red so that no one misses it or if it's a certain priority I need it to be a certain color so that it grabs people's attention or if it's assigned to Donovan to everyone swarm on it because he's not gonna get it done not kind of stuff right so you can do whatever you need to here you can customize it and they're really doing bad this is called a whip limit does everyone know what whip stands for work in progress and the top number is supposed to never be bigger than the bottom number right so we need to go have a conversation because I was 16 yesterday and it's 18 today so people were just completely ignoring their whip limits which is bad whip is supposed to make sure you get stuff done they're basically ignoring the whip anyway so we need to actually change the stories like Italy if you try to drag it over there it would just like bounce back out right and not let them drop it over there versus just telling them that they're over there whip limit you can also look at this as a con bomb I mean as a backlog as well so this is this that laundry list that I was talking about earlier I won't drag and drop any of this stuff because I get mad at me when I do that for a demo because I just changed the priorities of all this stuff just to show that I can and that's they don't laugh anymore so we won't make that joke anymore but I can actually change all this stuff and you see this will they have an arrow on them they can actually break these down so I can show you the hierarchy here and if you see the hierarchy you can get an idea of exactly how much work is gonna take to finish that one that one's not very bad but if you scroll down you'll see some of these are gonna have several child nodes underneath them as well and this is just giving me a better idea of to get this particular item done it's going to take these particular tasks and we can see if they're proposed or done and if I want to put these into a particular sprint I simply drag and drop this over to the Sprint here and as you can see we're currently in sprint 148 and then we can go ahead and decide how we want to do our sprint planning going forward there's also capacity planning in this tool as well so again if you're thinking about JIRA this is the exact compete for JIRA and what's really nice about this is that you can actually create branches from here if we want to start doing your work you can associate all of these work items to different test cases or to your commits your build and your releases that you do inside of your product so that when your release is done you can click on it and say hey why did you release this what features were in here what lines of code word change all the stuff just ties together so again just think about work item tracking and this is what we have here in our boards product little clicker here again now we're gonna talk about repos our repo system is an extremely amazing product the reason I say that is because it hosts one of the largest known git repositories in the world which is Windows Windows get repository was about 350 gigabytes I think it was when we first put it in there and get itself the technology was simply not capable of handling a 350 gigabyte repository if you're are you familiar with git you probably do it get status 5 times 6 times a day and that should take a couple milliseconds to tell you that hey you've changed these files or you didn't change any files to do it on Windows when it was originally put in there I think was 5 minutes or something like that to do a git status to find out that you didn't change anything I just waited five minutes to find out that nothing on my hard drive had changed it was unusable slow I forget to clone the repo was like hours to clone the repo it was ridiculous right so what do we do at Microsoft we had to go to get for Windows we invented the get virtual file system actually invented a file system that allows get to scale when it's 350 gigabytes are bigger and we gave it back to the open source all right so our competitors can go off and implement this exact same technology so that you can do big stuff it is the biggest now because inside of Microsoft we have this mandate that we're going to use one engineering system and we're all at different Cadence's on moving to that one engineering system which is as your DevOps when office gets here the rumors have it that office is gonna be 450 gigabyte get repository right isn't that weird that office is 100 gigabytes bigger than the operating system upon which it runs for some reason never my brain never wraps his head around how you can be bigger than what you run on but office is much bigger than Windows and it's a fantastic repository it has a great pool requests which Martin's going to show you later on an actual pull request from our team do not miss that it's always fun to see our pull request process but I won't show you that but I will show you one of our repositories here so this is just a quick snapshot of one of our repositories we do trunk base development are you going to go into drunk base development right so while you're seeing here are these little feature branches all merging back into master but again when it comes to scaling we can honestly scale to Windows and Windows is our largest customer about 20,000 active engineers millions and millions of work items I forget how many builds and check-ins they do every day it's unbelievable I do a show called added DevOps interviews which I will give you a link to at the end of this presentation where I've sat down with the guy who was responsible for moving that git repository into Azure DevOps and the woman who was brave enough to do all the work out I'm tracking Windows is such a big organization that some of the teams are waterfall some of the teams are agile yet they all have to work together and she's figured out how to do it right so I have no idea how Jill does that it's amazing story but you can see all that stuff later on but they also use this product it's funny using our own product has made it really really good right because if you use 2005 we weren't using 2005 we were selling it to you but we weren't using it internally as our dirty little secret and I think it was tech ready 19 we have an internal conference at Microsoft called tech ready and I remember back then I was a seller I used to sell this product instead of just evangelize for the product and Saatchi Nadella was in the keynote and I remember him saying we have to stop living this fake life where we would write software for others that we would not use ourselves he was talking specifically about this product and that's when he made the mandate of the one engineering system office is coming Windows is coming Xbox being if you write software at Microsoft you will be using Azure DevOps at that time well it's called Visual Studio online I believe it was way back then or VST S or one of the other names but their thing was that the product instantly started getting better like exponentially better right because like you you got to use the stuff that you're working in and Windows has to use like our crown jewels now I have to use this product it better get good and if you'll notice 2013 was a really cool release 2015 even better 17 and just kept getting better and better and better so dogfooding is a fantastic way to put quality in your product and that's the same way that we know that I get repositories really good is because some of our biggest customers or AXI our selves so I'm not gonna beat that one up because I don't want to steal the thunder from what Martin is going to show you in the pull request but the pull request ties into this and you're gonna see a lot of cool stuff with our repositories there now my favorite feature this is Azure pipeline's any language any platform and it's highly extensible and I'm gonna show you this in the second section so after lunch I'm gonna come back and do another demo and that's what I'm gonna be talking about the extensibility of this a lot right and I'm actually gonna show off some of it and the demo I'm gonna do later on if you're ready for containers we're ready for containers too and it's a fantastic way to build your open-source products we have the best open source offering on the planet when it comes to capabilities capacity minutes and platforms that we offer you it's and now that we own github it's just gonna get better and better and better after you start doing CI it's time to start doing CD this is we're gonna actually release it and you can actually use arm templates you can use the CLI ansible chef terraform things we haven't even thought of yet duffels coming out there oh you can use blueprints whatever you want to do again anything you can do from the command line or the REST API you can do from here so even technologies that don't exist yet are going to be able to be worked with and used really well here so what I'm gonna do now is I'm gonna take you and show you some really cool pipelines that I've built some of my own personal projects and some of the projects that others have been working on as well this is one of my said this is one of my favorite features so what we're gonna be looking at now is one of my flagship demo applications it's called people tracker and it basically just a database that allows you to track people and the reason I like this is because changed the application and the database schema while the attendees are using the app and nothing skips right it's just a really fun demo now this demo is made up all lots of different pieces it has a mobile front-end written in xamarin so it works on iOS and Android requires a Mac it has a docker dotnet core application that runs inside of kubernetes that is the front-end that you actually see backed by a app service running a web service that is reading out of sequel server azor and so they can imagine like every part of azure I could use I tried to throw into one big demo and now I can imagine how many builds do you need to be able to build the docker container and the mobile application and the database project and the apps in them and the web services just one I only need one build even though I need a Mac a Windows analytics machine to do all that I don't need four and five different builds this is a single build definition and this build definition right here is building what I call a burst service which won't make any sense to anyone who's not doing mobile so I'm not going to go into what a burst service is but it's just a web service okay that web service is actually being built in net core so I can host it inside a containers or not in containers if I want to but I'm building this one on a Windows agent as you can see here on Windows if I scroll down you'll notice that I'm actually building this docker this is a docker image that I'm building here so it's still got net core but I'm building it and publishing it for docker using the azure CLI I'm actually standing up an ACR which is an azure container registry as part of my build to make sure that I have a place to park the image that I just built that's also cool here is that I'm publishing my app but ACR has a building mechanism inside of it so you can upload your context folder to ACR and say hey build my image in yourself and then tag it and leave it there when you're done that way I don't need a machine that has docker on it at all right because this is just a normal dotnet build and publish I take it I tell a CR go grab it and build it on yourself so I don't need a docker configure the machine at all and then I basically copy some infrastructure as code files across and I published my artifact that all happens on a Linux machine then I scroll down a low down a little bit further I have a database project selenium test and my dotnet full framework web service being built on a Windows machine and then you go even further down and you that there's a mobile application here being built on a Mac this is a single build I commit code all these things start firing off because I have so many build agents all for these start to run at the exact same time these do not happen sequentially they happen in parallel and then when they're done all of the artifacts the apk the IPA file the database projects the zip files all end up as one artifact that I can then tease apart inside of my release so just imagine how much easier it is not having to create four and five different bills and then figure out how to coordinate them and then get all the outputs into the same place I created a single bill definition and then I have all access to all the machines I want and these different phases all run in parallel it's freaking awesome and then what's really nice about this is if I wanted this in the ammo I could get an enamel as well I actually prefer and like the UI I understand why yeah Milles important if you really want the ammo badly just click this button here and we'll write the ammo for you right and then you just take the yam we'll stick it in your repository and you can do this exact same thing without using that looking at the UI but I really like the view I another thing we're going to talk about here is releasing so all that stuff that I just talked about is being released and what's funny is that all these first boxes that's just the dev environment right those are not individual environment those are just different stages of the deploying my dev environment first I have to go off and do the common infrastructure so there's dev QA and prod but there's common infrastructure that all those things rely upon I think about key vault or burst servers and things like that are gonna be deployed here in parallel am I not only deploying the common infrastructure I'm caught I'm also deploying the dev environment infrastructure that's required as well once both of these are done I start deploying the applications inside the infrastructure that I just deployed what's really fun about this demo when I do it is that my Asha subscription when I start is empty there's not a single resource group there's not a single resource in my application I mean my Azure subscription but running this build and this release together everything starts to get provisioned automatically and once I know everything is good I then come over here and I run my mobile and my send my mobile out to App Center and then down here I have all of my testing that's going to happen selenium tests and my has cloud test happen and one all that's good I rinse and repeat this again and set a QA and then finally again inside a production so you can scale out and imagine how complicated your builds can get you can actually deploy anything on any platform this could be a Raspberry Pi it could be a Commodore 64 and I'm dead serious about that there's a blog post where a guy actually used as your dev ops to deploy to a Commodore 64 when I say any language any platform we're not bluffing right we can actually do this stuff for anything another one of the cool ones is this one here so I'll you can obviously switch the theme of your of your Astro dev ops from light to dark and I switched it for dark just to prove that you can do that and this is probably hands-down the most complicated deployment I've ever seen I wrote open source product called yo team what yo team allows you to do is stand up pipelines like the one I just showed you by answering five questions you type in yo you tell it the language you want to program in the azure subscription that you want and you sit back and relax in this entire pipeline just comes up the other end now it supports Mac Windows and Linux it supports five different targets inside of azure and it also supports nodejs java.net core and full net framework oh yeah and also PowerShell which we just added so what these are actually doing here these are test environments because for me to be able to push a change I have to first prove that it works and every one of the configurations I just mentioned if you do the math that's about 63 different environments across three different platforms five four different languages and five different platforms inside of azure what's really cool about this is that this takes about three hours to get through you know how many days it took me to do this before had I have no idea cuz I'd always give up so I have no idea how many days it would take to test all this stuff manually but now a person gives me a pull request three hours later it either gets it rejected or I get to approve it and it goes out into production and when it goes out into production I know that it is perfect because I've literally tested every possible combination on every possible platform before it goes out into production this is the type of power that DevOps in this product itself can actually give you knowing with 100% certainty that what you're about to ship to production is perfect because we allow you to do testing pen testing security scans whatever it is that you need inside of your actual pipeline so I love showing this pipeline as well because I remember on Facebook once our Noah's photos on Twitter yeah Donovan as your DevOps looks good but we have a tough environment has 21 environments in it like 21 I just started giggling like laugh out loud 21 here 63 right and I'm not even done building this thing yet right we can handle whatever you want to throw at us so this is another reason I love pipelines is because it's extremely extremely flexible so how am i doing on time here I'm not doing too bad actually so as your pipelines is fantastic it's highly extensible to you can write your own extensions for it you can write your own tasks for it as well which is something that I like to do in my spare time is just add to it what it needs all of our tasks that we've written for it that you saw me actually was talking about there are written in the open by Microsoft so there's a github repository you can go and type in as your DevOps tasks I believe it is and github and you'll find the repository with all the tasks in it why am I telling you this because you can actually create a pull request and put your own task back in the box two of my tasks I've actually been put in the Box right which is cool when I worked for Jamie cool my docker tasks were in the box and there was another one that I wrote I forget oh they SSD T tasks I wrote those because I wasn't willing to wait for the team and they sing you know the team's like okay we're gonna take those over for you and they've been in the Box ever since which is really really cool so you can do the same thing you can actually add your own tasks and we'll put them in the box or you can see how rewritten our task and write your own and keep them to yourself alright because you don't have to publish some publicly you can also publish them privately for your own organization if you want to give yourself some type of advantage you can do that as well so I already did that one so let's talk about test plans test plans are for companies who have a normal QA team who has to go off and do manual testing and create test plans and test matrices and things like that and the reason that I like this so much is that whenever I take over a team as a scrum master the first thing I do is I go find my QA team I invite them to the family because normally they're not part of the family they're just this put-upon resource that you throw black boxes of code over the wall to and expect them to count all the bugs for you but what I do instead is I bring them into our planning meetings I'm like okay this was the workout in that we're looking at these are the criteria how are you going to test this particular work item and I have amuse our testing tools linked to that work item all the manual test cases that they're going to run and the steps that anyone can run to go verify that it does what it's supposed to do having that information ahead of time allows my developers to develop develop higher quality code how many times have you developed code and the person logged a bug against it not because it was broken but because they didn't just agree with how the code actually worked oh I thought the button was gonna be over there so I log that as a bug well who cares where the bug where the button is like how does that make any difference or I thought it should be a drop-down versus a checkbox so I called it as a bug even though it functions the same way if you knew how they were going to test it ahead of time and that they expected to check a box you can save yourself a lot of time because you wouldn't have put a drop-down in there with yes knowing it you would have put a checkbox because that wasn't the test set it was supposed to be and all of a sudden you're saving yourself tons of time so having this tool in the product and so tightly integrated with our work item tracking can actually speed your development because now you know how they're gonna actually test the product before you start writing it so let me show you how our test plans actually work I'm actually a really big fan of this product and this used to be a WPF application like it used to be called test manager so if you've ever used test manager we've basically taken all that functionality and we moved it into the web browser by doing that you now have access to it on Mac Windows and Linux because it was a WPF application before you had to be on a Windows machine and run test manager but now that it's web-based anyone can run it from anywhere including your mobile device and you'll notice here I have a couple of different test Suites the test Suites come in several different flavors you have a static test suite that's basically a logical box where I just put in all the test cases that I want to run and I can reorder them if I wanted to the other one is the requirements space test suite which is the one that I hope everyone starts to use because if you do what I just described a moment ago where you actually have your QA team as part of your planning exercises and you associate the test cases to the requirements those requirements are actual test suites there are a collection of test cases and I need to run to verify that something has actually happened and you can pull those requirements right into their test plan and they become the test suite themselves and if you add or remove test cases they automatically update here as well and then there's the last one is what we call it query based test suite this is where you might want to say man we're in underwear under fire we need to do some testing but we don't need to do all of it I need you all my pair one test cases so what you do is a write a query that says show me all my priority one test cases and when a test case is either promoted to priority one or demoted out a priority one that test suite automatically adjusts itself to only show you the things that meet that criteria so it's really nice and flexible and what we do here is you basically have those test suites and you can see that I have one of them that's currently in progress and I have some of them that are active that I haven't run yet I can pass and fill those and if you open these particular things up you'll see all the different anatomy of a particular tests so I open one of them up you'll see that it has a description and it has the steps that I'm going to take for example I'm gonna open the mobile app I'm gonna select people from the menu then I would just continue to write down each individual step with the expected result for that particular step a lot of people realize that testing is very similar I do the same five things to start all my tests I'll start a web browser navigate to the website I put in my username my password and I click OK that's five steps well it's really cool about our testing is you can actually take those five steps and create what we call a shared step that way if at some point it goes from five to six steps you don't have to go and change hundreds of test cases you go and change that one shared step to say then there's six steps instead of five and then all hundreds of your tests now have that reflect that new change I don't understand what I'm saying so you like your moduli zhing your test development just like you would your code that you write as a developer and we've given that power to all of our testers as well the other thing that we allow you to do here which is pretty cool is actually set up your test configuration so let me go ahead and expand my set here and over here you're gonna see configurations and this is we're gonna see things like am i running on iOS android or firefox and windows what browsers with operating systems and what this is going to allow the tester to do is put out all the different configurations that they need build what we call the text make test matrix and then we're going to help them track across that test matrix what they have or have not actually tested so they make sure they have high levels of code coverage as well so I just wanted to go take you a quick synopsis of what this is and we have some videos on channel 9 or they give you a little deeper dive on what our test plans do but this helps helps round out the offering that we have from Azure DevOps and then finally we're going to talk about as your artifacts and I can actually show you how I use that our artifacts as well that vs team and the yo team I mentioned earlier yo team is actually developed and pushed first to artifacts before it to push to MPN you might like well why are you doing that the reason is because I learn the very hard way that just because your MPM package works on Windows does not mean your MPM package works on Mac or Linux why would it not work on all of them because the casing of a word was different right that casing means absolutely nothing to Windows and it works no matter how it's cased but if you have a configuration that says the file does lowercase and you give it to Linux and that file starts with an uppercase letter Linux will not work I learned that very very painfully so what I ended up doing is saying hey I need a temporary place for me to be able to publish my packages and install them on those different platforms before I push them the NPM or the PowerShell galleries I don't want people seeing that these are fake or alpha-bits I don't want them seeing them until I know that they're perfect so what I'm able to do now is take as your artifacts as my dev environment and what I do is I will package my my package and then I will upload it to Azure artifacts and as part of my release pipeline I actually install it from artifacts as I will from the PowerShell gallery or from NPM or from nougat or whether the case might be on to Mac Windows Linux I run all my unit and integration tests again and I verify that it works on all those platforms before I then take those exact same zeros and ones and publish them publicly to the actual stores that I want people or the package management I want people to get them from so this is allowed me a great deal of flexibility and confidence in what I'm actually pushing into production another way that you can actually use artifacts is that this could be a curated list of packages that have been approved by your organization for use in your own applications because what you don't want necessarily is someone going out into the public pulling down a package that has vulnerabilities in it hasn't been scanned or verified by your company and then getting you in a lot of liability and a lot of risk by using this instead you've now said this is the only place you can download packages because these have all been vetted blessed and certified to be good for our use and then this is where you actually do your package management instead so it's the kind of a like a boring little demo but I'm gonna show it to you anyway because there's really not much to see it's a package store right so if I come over here there's a package store ok so that's a great demo of its sect it's nothing to show right it's like there packages in there what's cool is that these are like my packages though I wrote this one and I wrote this one actually I wrote this one too so these are all the packages that I developed and I test them here inside this particular environment before I then push them this one goes to the PowerShell gallery this one goes to the PowerShell gallery and this one goes to actually these are all powershell valerie ones oh yeah this is for the team module I also have this for another module here so if I were to go back to the league and then bring up yo team it also has package management in here as well you're gonna see a whole different list of packages in here for yo team yeah whole bunch more so this is an NPM package so NPM derives on all these other NPM packages we're just actually pulled into this one for me as well and yo is all we at the bottom so if I scroll down yo was in here somewhere but you get the idea these are all the dependencies for yo team and I now I know that they're all good and vetted because they're down here with the code that's actually written and it's a long list so I won't search for yo team in here generator team there it is so it's name is generator team technically but it's called yo team on the command line so this is the actual package that I've built and you can actually confirm this with what's out inside of the NPM feed again this is just a great place for you to be able to provision and test your packages and make sure they're packaged correctly and that they install correctly before you actually push them out into the wild like I said it's that kind of a lame demo you can use as much or as little as you want but I obviously think they work better together right so if you can't if you have not settled on a stack I would just use this entire stack as it comes out of the box if you've already invested in any portion of this stack already use your current investment find the part where there's a gap that you haven't done anything at all or it is the most risky use that one feature here what's gonna happen is you're going to realize that that that is no longer a problem for you and then someone else on this board is gonna stand out as a potential solution for what eles you the most right now in your pipeline but you want to make very small controlled updates to your process and we have solutions for everything so we're gonna make a cool announcement obviously we have global reach with our products here but one of the places that we did not have a stamp of azure DevOps was in the UK I said used to not have because today we actually now have a stamp right here so whenever you want to go and create an azure pipe lines you can actually go and create one that it lives right here in the UK because we only have so many stamps as you can see all over the world where you can actually have an azure DevOps but now we actually have one for you as well so if you have data sovereignty issues if you just want you have your code very close to your engineer so that they can actually have a really good experience using our products you can now have one and not have to worry about where the data actually lives so when you want to go in there it's very important to remember this by default it doesn't allow you to see this there's a button you click this as advanced and what you want to do now is just basically choose UK south and that will be where your actual as your devops project will be created your organisation will be created and all your projects will be created there as well so I showed you how to get started earlier but what if you want to migrate your stuff so you haven't gotten started yet and you want to migrate your code we actually have a migration product that your feature that allows you to go back and take your Team Foundation server you're basically taking your collection and lifting and shifting that collection into the cloud we also have lots of partners if you don't feel like doing this on your own that can actually help you with this migration process but from what I understand it's pretty much just follow the guide and and let the system run and it'll move the collection for you and you go from the on-prem product to the cloud product why would you want to move from the on print product to the cloud product the on-prem product is updated every three months which is a fantastic cadence but it's also sometimes too fast for you to get down time to go update that system yourself on primp the on line product is updated every three weeks and you don't have to do anything to get all the new features so at a minimum at a minimum you're three months behind but you're usually more like six or nine months behind even if you're on the latest update from what we have inside of Azure devops right so this service itself so if you can move to the service I highly recommend it I describe it as everything that you love and you know and love about the server with none of the maintenance all right you don't have to back it up you don't have to scale it out you never have to worry about upgrading it it's all the love and great but you don't have to do any of it on your own so if you need help this is a place where you can go and get some help internally and externally this team is called the league it's basically five DevOps practitioners who love love love DevOps that have specialties in different areas of the world if you have questions about kubernetes open source or linux you'll be talking to Jessica Dean if you have questions about sre operations on windows DSC or power show you'll be talking to Steve Moravsky if you have DevOps questions that are generic DevOps questions mobile development you'll probably be talking to me if you have questions about octopus deploy process you're gonna be talking to Damien Brady and if you have pure development questions you will be talking to Abel Wang he is hands down the best developer I have ever met he uses one of those old IBM clicker keyboards or really loud ones and when he's coding not when he's writing email but when he's coding it sounds like a machine gun I've never seen anyone code with that just stream-of-consciousness that's like really good code I've developed with him before and I always kept trying to find bugs in his stuff it was always my stuff that was broken right I don't think I've ever seen a bug in his stuff as fast as he types I thought it would be one so you have to have questions this is the guy I'm going to get you to talk to you if you need our help you can actually use this hashtag it's just an abbreviation for the League of Extraordinary cloud developer advocates it's hashtag loa CDA it's sort of like a sort of like a bat signal because when you use it my entire team will go and read that particular tweet if we don't know the answers to it in Martin can attest I will add Martin to the thread if he's the person that I know knows the answer to that particular question so you can reach inside a Microsoft now and get questions answered that you've always wanted answered in the past just use that hashtag I think we had it used 900 times in like six months right so it's being really well used and I've actually had a production fix pushed out in less than three hours once it was a back when we had mobile Center now called App Center person tweeted at me Donovan my bills were working an hour ago they're not working right now I didn't change anything like hold on I added Thomas to the thread Thomas is like we're investigating that right now three hours later Thomas just said run it again we pushed a fix for you like how cool is that right Microsoft would have never done that in the past but you actually have access directly to us and luckily I know everyone the answer DevOps team I know everyone on the Azure team so I can probably get you a question or my team can get you an answer for sure last bit some resources here as your Friday these are all shows that you can get to on YouTube or channel 9 as your Friday is great for keeping up with Azure visual studio toolbox is great for keeping up with new features from a short DevOps the team if you want to know anything more about what Martin is about to talk to you about so Martin's only gonna be able to speak for an hour these shows are about half an hour or 45 minutes a piece about each slide that he's gonna show you today right so if you want to know more about safe deployment you want to learn more about testing how we do our pull requests how we do feature Flags DevOps interviews to show you're gonna want to go and watch any show that has that gentleman there whose name is Menil Shaw you want to watch that show because he talks about how we went from 27,000 UI tests to over 80 some odd thousand or whatever unit tests right he talks about that how we do our ring deployment we go from ring 0 to ring 5 now I believe it is yeah we used to have a foray which used to be the special ring just for Windows which is kind of cool he explains all that stuff too right so if you enjoy what Martin's about to do and you will if you want to get deep dives and every one of those topics that's just show you're gonna want to go watch if you have a problem that you need solved the DevOps lab is the show to go watch for that it's more of a problem solution type of show which is a lot of fun again I'm Matt Donovan Brown on Twitter and my team is accessible through the leak and I think I'm handing it over to Martin thank you so much everyone [Applause]
Info
Channel: Azure DevOps
Views: 60,363
Rating: undefined out of 5
Keywords: DevOps, Azure DevOps
Id: yecw2rUlywA
Channel Id: undefined
Length: 57min 3sec (3423 seconds)
Published: Tue Apr 09 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.