Intro to Azure DevOps - Source Control, CI/CD, Automation, and more

  • Published on Dec 17, 2018
  • Full courses:
    Application Lifecycle Design course:
    Newsletter signup:
    There are a ton of tools surrounding the processes of writing code, such as source control, code hosting, build systems, CI/CD tools, package managers, and more. In the past, companies would cludge together these tool conglomerations to get a process that worked for them. Individual developers, on the other hand, typically did everything with a minimal set of tools and a lot of manual processes. In this video, I am going to introduce you to a tool that changes all of that for both individuals and companies. It is called Azure DevOps. The best part is that, unless you are an organization with more than five developers or are making more than a million dollars in revenue each year, this product is free to use.

Comments • 153

  • Vinay Palaksha
    Vinay Palaksha 21 day ago

    Tim, which scripting language we use for automation in azure devops?

    • Vinay Palaksha
      Vinay Palaksha 21 day ago

      Tim, ok thank you

    • IAmTimCorey
      IAmTimCorey  21 day ago +1

      Azure DevOps can execute just about any type of automation script you want. As far as controlling Azure DevOps, your best bet is probably PowerShell, although I haven't tried it.

  • Raveendiran RR
    Raveendiran RR Month ago

    Could you also make one where we use azure devops for use a java/ python application

    • IAmTimCorey
      IAmTimCorey  Month ago

      I can add that suggestion to the list. We will see. I don't do a lot of Java or Python programming anymore.

  • Akshar Agarwal
    Akshar Agarwal Month ago +1

    Can you please make a playlist on moving to DevOps position from a developer as a fresher and what tools and methodologies to learn

    • IAmTimCorey
      IAmTimCorey  Month ago

      I have a course on using Azure DevOps in a development environment:

  • Dan H
    Dan H Month ago

    This was great and thorough as always Tim, many thanks 😊

  • Venkatesh R
    Venkatesh R Month ago +1

    Wow.. I didn't know content formatting..

  • Muhammad Haleem
    Muhammad Haleem Month ago

    Salute to your good work! Keep it up.

  • Manuel Alvarez
    Manuel Alvarez 2 months ago

    Almost all your videos are awesome but now to be honest I was so confuse because in my version I could't understand how add my code or add the pipelines :( I am using visual studio 2019 and I just get azure environment. I couldn't follow you this time :(

    • Manuel Alvarez
      Manuel Alvarez 2 months ago

      IAmTimCorey awesome!! I am going to watch this video again. Thanks!

    • IAmTimCorey
      IAmTimCorey  2 months ago +1

      The only difference between the latest Azure DevOps and when I demoed this version is that it wants you to create the pipelines using YAML by default now. However, there is a link at the bottom that says "Use Classic Editor". Click that link and you will be all set. The rest will be just like this video.

  • Dan Shepard
    Dan Shepard 2 months ago

    This is really fantastic. Really understanding and enjoying your explanations!

  • M Lizano
    M Lizano 2 months ago +1

    thanks Tim, again I understood everything without speak English fluently, I am very happy for that. Thanks a lot!

  • Ion Fierar
    Ion Fierar 2 months ago

    get your polyps removed or something

  • Dmitry Belyakov
    Dmitry Belyakov 2 months ago

    let's call it markdown!

    • Dmitry Belyakov
      Dmitry Belyakov 2 months ago

      @IAmTimCorey just something you said in the video that i though was funny!

    • IAmTimCorey
      IAmTimCorey  2 months ago

      Call what markdown?

  • Sourav Saha
    Sourav Saha 2 months ago

    Hi Tim,
    How can I achieve below scenario in Azure Devops
    We are using Azure Git as our repository.
    We want a single deployment which will take all the commits (delta) from the repo from last deployment.

    • IAmTimCorey
      IAmTimCorey  2 months ago +1

      So you might have 5 commits before you are ready to deploy again? In that case, use a branch or a tag. If you only merge changes into a branch when you want to deploy, you can automatically deploy off commits on that branch. It will deploy all of the source code every time, so if you merge in five commits, it will deploy all of those changes. Another method is to only deploy when you tag the branch as releasable.

  • Ramesh Kumar Sharma
    Ramesh Kumar Sharma 2 months ago

    The way explain that is awsom

  • Ramesh Kumar Sharma
    Ramesh Kumar Sharma 2 months ago +1

    Make a video Docker DevOps net project

  • Nick Wegener
    Nick Wegener 3 months ago +3

    Would have been better had you gone thru the steps instead of switching from an empty project to built up project.

    • IAmTimCorey
      IAmTimCorey  2 months ago +2

      Sure, but I did a runthrough that way and the time was a lot longer. I decided to go this route since I didn't see the longer way as adding that much value.

  • Vinay Palaksha
    Vinay Palaksha 3 months ago

    Will application lifecycle design course use TFS for explanation Tim?
    Because most of organizations use TFS for code repository.
    If at all you use other repositories such as Git, how does course differe from using TFS?

    • IAmTimCorey
      IAmTimCorey  3 months ago +2

      The usage of TFS is plummeting in the industry. The reason why is because git has clearly won the source control wars. Microsoft is pushing people towards git. Even they are getting off of TFS. Now, I know a lot of businesses still use TFS and change would be very difficult. However, I have focused on git because it is the future of source control. The course itself would differ in how you committed code. I'm not sure if it would be any different after that. It should build and deploy just fine. There just might be an issue with the triggers for building the code.

  • Anshu Anurag
    Anshu Anurag 3 months ago

    Excellent video, concise & precise !!!

  • Rakesh R
    Rakesh R 3 months ago

    Great explanation Tim

  • Pavel Iliev
    Pavel Iliev 3 months ago

    Great stuff Tim, first video watched and subscribed. Cant wait to watch others and learn more :))

  • Web Interceptor
    Web Interceptor 3 months ago

    So how did you build the pipeline so that only when dev is available you can deploy to staging and only when staging is successful to prod? Or are the three pipelines which you showed in example not doing something like that and are just configured to be deployed as soon as build is available on master ?

    • IAmTimCorey
      IAmTimCorey  3 months ago +1

      There are different configurations you can do based upon your deployment philosophy. For me, I want to push my code to a staging branch and a release branch when I am ready. That way, I get to choose which commit to roll over to staging and release. To do that, I build every branch but then I deploy only the master branch to development, only the staging branch to staging, etc. I have a separate release pipeline for each deployment branch. Everything gets built and tested, though. Now if you wanted to say that only after we approve a release on dev does it get pushed to staging, and then again to production, you can do that with one release pipeline and gated releases. The problem I've encountered with that is that you have a lot of releases that are never finished. You push to dev but you aren't ready to move it to staging so you stop it there. Then you do it again, but this time you find a bug so again, no push to staging. The next one you move to staging but you find a bug so you stop it there. The next one goes all the way through. So, in this simple example, you have four releases and only one goes all the way through. The rest were terminated early. I find that messier than doing three releases and choosing when to move code over to be released to the next level.

  • Jose Luis Crego Quirante

    Ver good tutorial. So, do you know how to migrate entire project and history, branches, etc. from an online tfs online to devops online and version control using tfvc? I need to migrate like 20 projects and im being forced to use tfvc by my company...

    • IAmTimCorey
      IAmTimCorey  3 months ago

      I am not an expert at that. There is probably some good guidance at though.

  • JHatLpool
    JHatLpool 3 months ago

    A very good tutorial/ video. I will bookmark it and I can see myself rerunning it, maybe, 5 or 6 times. You highlight the main menus in the UI, you highlight the key terms and define what those key terms mean.
    Thanks !

  • Shawn Mofid
    Shawn Mofid 3 months ago +3

    Thank you so much. It was comprehensive, to the point, and informative. Just tried tutorial, and it worked.

    • IAmTimCorey
      IAmTimCorey  3 months ago

      I'm glad you got started successfully.

    AQEEL AHMED 3 months ago +1

    Thanks TIM Boss!

  • jesshael cabrera
    jesshael cabrera 3 months ago

    Very Thanks Tim, i can translate my experience on GitLab to Azure Devops very easy, whit your support.

  • Ryan Ceasar Borromeo
    Ryan Ceasar Borromeo 3 months ago

    When creating projects (Advanced tab):
    It is confusing what is the difference between Agile and Scrum. Because Scrum is actually agile framework. Weird.

    • IAmTimCorey
      IAmTimCorey  3 months ago

      Scrum is agile but agile is not necessarily scrum. Here is a breakdown of what Azure DevOps means by each:

  • Foysal Alam
    Foysal Alam 3 months ago +1

    content is so clear :) really informative

  • John Weber
    John Weber 3 months ago +1

    Great video! You provide just the right amount of detail and background whether you are new to this or have been working in a devops environment for years. Very impressed!

  • Cedar Lo
    Cedar Lo 4 months ago +1

    Very Cool and very detail, thanks

  • Nikos Vovos
    Nikos Vovos 4 months ago +1

    Thanks for the video. It was really helpful. I have been working in Azure the last few months and I find it very interesting.
    However, I cannot find anywhere the functionality that Octopus has with the "Channel" tab. Do you know if Azure pipelines support Channels?

    • IAmTimCorey
      IAmTimCorey  4 months ago

      I'm not terribly familiar with Octopus Deploy but I believe you are talking about different build environments (dev, test, prod, etc.) If so then yes, Azure DevOps supports it. The basics are that you use different branches in git to handle the different environments. Then you can use the same build but different deploys to deploy to the different environments (based upon branches). You can automate it so that it all happens without intervention or you can add in gates to prevent a step from happening until an approval is given or a time is hit (only deploy at midnight, etc.) I go over all of this in my Application Lifecycle Design course:

  • Satish Singh
    Satish Singh 4 months ago +1

    its really good content for starting on devops. thank you.

  • Sai Niranjan
    Sai Niranjan 4 months ago

    I am tester and my company recently moved to Azure Devops for CI. I don't know how to use the options properly. Could you please make videos on Manual and automation testing options in DevOps? Thanks.

    • IAmTimCorey
      IAmTimCorey  4 months ago

      The following course deals a lot with Azure DevOps for CI, although it only covers automated testing. It might give you a good foundation to work from:

  • Sertan Yaman
    Sertan Yaman 4 months ago +1

    Great explanation, thanks

  • Dipendu Paul
    Dipendu Paul 5 months ago +1

    Seems as per Azure Devops terminology a Feature can have multiple User Stories, that is how Backlogs are organized

  • Prarthna Mala
    Prarthna Mala 5 months ago

    Hi for reports it take junit nunit else but not html . Is there any video we can manipulate it

    • Prarthna Mala
      Prarthna Mala 5 months ago

      @IAmTimCorey so we can't output a html report here

    • IAmTimCorey
      IAmTimCorey  5 months ago

      I use XUnit for my testing and it outputs a testing report (I'm assuming you are talking about in the build process).

  • Prarthna Mala
    Prarthna Mala 5 months ago

    Can we work on changing the state options like for bug states if I want something else at my org level

    • IAmTimCorey
      IAmTimCorey  5 months ago

      I'm not sure what you are asking to do.

  • Daniel Prowse
    Daniel Prowse 5 months ago +1

    Great help, thanks! x

  • Thangavel V
    Thangavel V 5 months ago +1

    Good video mate... Keep sharing your knowledge

  • Hastin Nuraini
    Hastin Nuraini 6 months ago +2


  • James Wonka
    James Wonka 6 months ago +2

    Oh my god, you speak such good english. Thank you for creating the video(s).

  • Shubham Tiwari
    Shubham Tiwari 6 months ago

    so is jenkins better or azure devops? if i have to automate the process of build and deploy?

    • James Peckham
      James Peckham 6 months ago

      @IAmTimCorey can you check your pipelines into source control and have them in gitflow or something for a review or change control process? Jenkins can do that.

    • IAmTimCorey
      IAmTimCorey  6 months ago

      I've used both and both are powerful. However, I've found Jenkins to be more complex and fragile. Azure DevOps is simple and does everything Jenkins does and more.

  • spock
    spock 6 months ago

    Hi Tim, does your Application Lifecycle Design course include unit testing as well?

    • IAmTimCorey
      IAmTimCorey  6 months ago

      Yes, in that we create a couple of tests to show how to run them at build. If the tests fail, we fail the build. If they succeed, we just report the success.

  • Steven Nell
    Steven Nell 6 months ago +1

    Automating as much as possible. Beautiful.

  • Jennifer Reed
    Jennifer Reed 6 months ago +2

    Best 32 minutes I spent this week. Thanks, Tim!

    • IAmTimCorey
      IAmTimCorey  6 months ago

      Excellent! I am glad it was so beneficial.

  • Jesse Aufiero
    Jesse Aufiero 7 months ago +1

    Really great presentation. Thank you.

    • IAmTimCorey
      IAmTimCorey  7 months ago

      You are most welcome. Thanks for watching.

  • Maqsood Alam
    Maqsood Alam 8 months ago

    Does this course includes SSIS, SSAS Tabular , SSAS Multidimensional?
    Application Lifecycle Design
    How real-world developers set up their projects, use source control, configure CI/CD, and manage multiple environments

    • IAmTimCorey
      IAmTimCorey  7 months ago

      Look into what Azure DevOps can do. It is the tool I use and while I don't show off a BI solution deployment, I'm sure Azure DevOps can handle it:

    • Maqsood Alam
      Maqsood Alam 8 months ago

      @IAmTimCorey any recommendations please for ci cd of MS BI projects

    • IAmTimCorey
      IAmTimCorey  8 months ago

      No, those are more focused on SQL Server and its tools. ALD focuses on code development. It takes a simple codebase with ASP.NET MVC, and Entity Framework database, and a SSDT created database and it deploys them in three different environments (development, staging, and production) using automation for the build process and the deployment process (CI/CD).

  • Dkay 2017
    Dkay 2017 8 months ago +1

    Great video , As always very precise and clear. thanks

  • Nirman Doshi
    Nirman Doshi 8 months ago +1

    Very helpful, and quite informative. A great introduction and overview of Azure DevOps. Thanks for sharing

    • IAmTimCorey
      IAmTimCorey  8 months ago

      You are most welcome. Thanks for watching.

  • Premkumar Waghmare
    Premkumar Waghmare 9 months ago

    I have set up an AD Connect which connects the AD to Azure AD, But some how the TFS group / Azure devops group is not getting synced to Azure Devops group, So my users are not able to use Azure Devops from the Cloud, Any suggestions ?

    • IAmTimCorey
      IAmTimCorey  9 months ago

      Not off the top of my head. Might be time to reach out to the Azure team to see if you can get some direct help.

  • Premkumar Waghmare
    Premkumar Waghmare 9 months ago

    Azure Devops is this onpremises or it is on the cloud, If it is on premises how can we sync it with Active Directory

    • IAmTimCorey
      IAmTimCorey  9 months ago

      There is an on prem version but Azure DevOps is cloud-based like Nelson was saying.

    • Nelson Scatarelli
      Nelson Scatarelli 9 months ago

      Hi Premkumar, it is cloud oriented, if you wish to use your own on prem AD you need to sync it with Azure AD. There are 3 ways to do this: AD Connect, AD FS and Authentication Passthrough.

  • Fatah Haniche
    Fatah Haniche 9 months ago +1

    Fantastic. Thank you.

  • Prab G
    Prab G 9 months ago +1

    Great vid once again Tim. A few things I would love to see you do some courses/vids on:
    1. Azure portal (app services etc) - you could probably do a whole playlist on that.
    2. Containerisation - docker, kubernetes (Actually showing containerising an app from the IDE and publishing it through azure devops and the portal would be amazing, kind of like an end to end).

  • Harag
    Harag 9 months ago +1

    Great overview Tim, many thanks for this :)
    Q) I've had a VSOnline account for ages now, but never really used it as the firms I worked for seem to use git, or my current place - SVN. I'm used to the concept of having "Branches", "Tags" and "Trunk" folders. I then create a folder on my HDD and using SVN pull down the code from the trunk. When we do a new release of our software (e.g. every couple months) we copy the trunk to the tag & branch folders and then carry on working on the trunk for the next release.
    How is this concept done in "Azure Dev Ops" ? What I've done at the moment is create one project and created the folders in that project, but not played with pipelines etc - just use it for personal use at the moment.

    • IAmTimCorey
      IAmTimCorey  9 months ago

      Git does not support SVN for source control. However, you can have the pipeline pick up the code from a known location and then go from there (building and deploying). You can also use the boards for issue tracking. Just not the repo section. Azure DevOps is flexible for just this reason.

  • Shubham Khandelwal
    Shubham Khandelwal 9 months ago

    Does Azure DevOps support ASP.Net Website projects to get build, generate artifact and get deployed on the server machine without the need to use any third party tools and templates?

    • IAmTimCorey
      IAmTimCorey  9 months ago

      Not quite sure what you are looking for but I do know Azure DevOps supports it. First, I believe a Web Application is what you are looking for (even for non-MVC sites). It will build your application and make sure your code compiles. However, if you are looking for it to be treated like an HTML site, you can do that too.

    • Shubham Khandelwal
      Shubham Khandelwal 9 months ago

      @IAmTimCorey Thanks for your reply. I will definitely go through your Application Lifecycle Design course for my learning.
      But apart from websites developed using ASP.NET MVC and ASP.NET Core frameworks, does it also support the deployment of the websites developed using ASP.NET framework (not MVC or Core). Actually when I was using VSTS, it did not have support for "website" build using ASP.NET framework, but it had support for the "Web Applications" developed using ASP.NET framework and also for website & web applications developed using MVC and Core. Just curious to know about it.
      Will feel really glad if you can reply.

    • IAmTimCorey
      IAmTimCorey  9 months ago

      Yes it does. In the Application Lifecycle Design course, I demonstrate taking an ASP.NET MVC site (with an EF authentication database and a "regular" database for my data), building it with Azure DevOps, and then deploying it to Azure Websites and Azure SQL Databases. You could just as easily deploy it to IIS on a server or FTP the files somewhere.

  • CryptoXpe
    CryptoXpe 10 months ago

    Hi, mr. Corey. Do you know how to work with User Controls ? For example, I need a tabular Datagrid to display 6 fields on the same row, 3 fields on top, 3 fields below, as one row. How can I achieve this, did you have the experience to do this ? I need also to bind the fields to the database through data reader. Can you make a tutorial based on this request ? Here's the row sample below:

    Db Row ID1
    Field1 Field2 Field3
    Field4 Field5 Field6

    Db Row ID2
    Field1 Field2 Field3
    Field4 Field5 Field6

    ...and so on
    Thank you. May Jesus Christ bless you !

    • IAmTimCorey
      IAmTimCorey  9 months ago

      This is a fairly specific set of requirements to do a video on. I've covered binding a list to the DataGrid in WPF. That will probably get you started (unless you are trying to do this in WinForms). I haven't done data reader binding, mainly because it is ugly and not the preferred method. What I would recommend is that you take a step back and look at what you are trying to accomplish. Strip out any of the technical requirements and look at what it should do. Then see what technologies might help you get the job done. Starting with the technology first makes for messy applications and frustrated developers.

  • Victor Onyebuchi
    Victor Onyebuchi 10 months ago +1

    Nice Job Tim, but just for others who might not know, it would have been better you teach how its being used via visual studios IDE itself.

    • IAmTimCorey
      IAmTimCorey  9 months ago +1

      Well, I disagree that it would have been better. I taught the tool as it is, not as seen through another tool. If you want to see how to use it through Visual Studio, the Application Lifecycle Design course covers that as well.

  • Isaac L
    Isaac L 10 months ago

    Thanks Tim.

  • FreaM20
    FreaM20 10 months ago

    Hi Tim, thank you for this video, it was perfectly timed since I started using DevOps for my source control. I have one question: In my pipelines I don’t have the possibility to edit the pipeline by tasks but only using a YAML file. Is there an option I forgot to select? Thanks again and cheers from Germany.

    • IAmTimCorey
      IAmTimCorey  10 months ago

      Interesting. Thanks for sharing. I've not seen a YAML-only view in my use of Azure DevOps (or VSTS previously).

    • FreaM20
      FreaM20 10 months ago

      Mathias Ottosson thank you for your response. I did that actually and there were still not the tasks as a GUI list in that pipeline. I figured that I need to setup my account (top left corner -> preview features -> disable „New YAML...“)
      Maybe this helps others with the same problem.

    • Mathias Ottosson
      Mathias Ottosson 10 months ago

      If you edit your build pipeline, you can click the "Edit in the visual designer" link in the top right corner.

  • Chris Carlos
    Chris Carlos 10 months ago

    Thank you. I have started a couple private projects using it and like it a lot. I still found myself learning a few things on your dive into the tools, so thank you for sharing this! Still learning it but you helped!

  • John Marsing
    John Marsing 10 months ago