Have you ever worked on a project that's impossible to develop and harder to deploy? In this course, you'll explore DevOps in the Microsoft world to deploy your projects faster and more reliably by creating an automated DevOps release pipeline.
There's a huge divide between software that's developed and software that's delivered. DevOps helps you bridge that divide. It's a mindset plus a set of practices that focuses on automation, reliability, and optimizing the process of software delivery. In this course, DevOps Skills for Developers with Visual Studio and TFS 2017, will show you how to use the tools and features of Visual Studio 2017 and Team Foundation Server 2017 to create an automated DevOps release pipeline for your applications. First, you'll learn how to build and deploy applications written with ASP.NET, ASP.NET Core, Entity Framework, and Entity Framework Core. Next, you'll explore how to think about and measure your DevOps practices, and your multi-environment deployments to on-premise data centers, Microsoft Azure, and Docker. Finally, you'll discover how to utilize QA testing with TFS 2017, and automated UI testing using Selenium. By the end of this course, you'll have the necessary skills and knowledge to set up your own automated DevOps release pipeline that will deploy your applications into either an on-premise data center or Microsoft Azure.
Benjamin Day is a consultant and trainer specializing in software development best practices using Microsoft-based technology. He is a Microsoft Visual Studio ALM MVP, a certified Scrum trainer via Scrum.org, and a speaker at conferences such as TechEd, DevTeach, and VSLive. He can be contacted via http://www.benday.com.
Course Overview Hey everyone. My name is Ben Day, and welcome to my course, DevOps Skills for Developers with Visual Studio & TFS 2017. I'm a developer, a trainer, and a coach, and I specialize in helping teams and companies get good at software delivery. Whether that's helping them with Scrum, or software testing, or software architecture, or just listening to them vent, it's all in the goal of helping them to deliver great, done, working software, which brings us to the topic of this course: DevOps. Have you ever worked on a project that's just kind of awful? It's impossible to develop and even harder to deploy? Yeah, well, the goal with DevOps is to try to improve that and make everyone's life better so that you can deliver faster and more reliably. So this course is going to talk about doing DevOps in the Microsoft world. There'll be some theoretical stuff that'll try to get you into the DevOps mindset, and the rest is going to be a lot of practical stuff showing you how to take that mindset and actually do DevOps using Microsoft's tools and technologies. Some of the things we're going to talk about: Team Foundation Server; version control in Git; automated builds, automated testing, and automated deploys; streamlining source control and releases using feature flags; and TFS Release Management for doing continuous deployment. By the end of this course, you'll know why you should care about DevOps and how to set up your own automated DevOps release pipeline that'll deploy your apps into either an on-premise data center or Microsoft Azure. Now before you start this course, you'll probably want to know the basics of developing software using Visual Studio, and you might want to know a little bit about Scrum and project management, too. So I hope you'll dive in on this course and learn DevOps with my DevOps Skills for Developers with Visual Studio & TFS 2017 course, here at Pluralsight.
Consolidating Your Team's Source Code with Version Control Module 2, Consolidating Your Team's Source Code with Version Control. So we're going to start by talking about why use version control? We'll talk about the two different types of version control that are available to us in TFS, the basics of using Git, version control conflicts in Git, we'll talk about what branching and merging is and what some branch dysfunctions are that can happen on your teams, we'll talk about using multiple Git repositories in a single team project, and then we'll wrap up by doing code reviews with pull requests.
DevOps Mindset and DevOps Metrics All right, this is the DevOps Mindset & DevOps Metrics module. In this module we're going to talk about, guess what? The DevOps mindset. A little bit more on what that actually is about. So we're going to start off talking about what is work, where does work come from, and then we're going to start talking about some DevOps metrics that'll help you start getting a handle on what's going on in your organization. And then we're going to wrap up with something called a theory of constraints. So when you find a bottleneck, if you find a constraint in your flow, how do you think about it and what do you do about it? So, first up, let's talk about work.
Planning and Tracking Your Team's Work All right, this is the Planning & Tracking Your Team's Work module. So here's a quick overview of a module that's probably going to be pretty long because we've got a lot of stuff to cover. We're going to start off with a Scrum and Kanban overview. Now we're not going to go in-depth on this. We're just trying to give you the basic ideas of what these two project management methodologies are about. Then I'm going to dive into TFS process templates, give you an idea about how Team Foundation Server manages and thinks about work items. And then we're going to do a bunch of demos. Now the demos we're going to do, we're going to start off with Kanban with TFS. Then we're going to do a bunch of demos related to Scrum with TFS, so Scrum product backlog management, Scrum sprint planning, Scrum sprint management. Then we're going to dive into work item queries, project dashboards, show you how to use the follow work item feature. Then we're going to talk about how to get lead time and cycle time out of TFS using Excel. And related to that demo, we're going to have to talk about work item customization, as well. So we've got kind of a lot of stuff to cover.
Automating Builds and Deployments Alright, this is the Automating Builds & Deployments module. So in this module, we're going to talk about why you care about automated builds and how it relates to DevOps. We'll talk about what the difference is between builds and release pipelines. We'll give you a tour of the TFS2017 build system, including what kind of build triggers you have available, how you can customize the build process, and a quick overview of extending TFS build by using TFS extensions, specifically getting more build activities to do things that are helpful inside of your build. And then finally, I'm going to walk you through how to create a new instance of the build agent on Windows and on Linux.
Managing and Deploying SQL Server Database Code Hey, everybody! This is the Managing and Deploying SQL Server Database Code module. Alright, in this module, guess what, we're talking about databases and DevOps. We'll talk about why it's hard, how you should think about it, and then we'll jump into some technologies that come in the Visual Studio world that can help you out with databases and DevOps. So we'll start off with Entity Framework. And since there are two versions of Entity Framework,. NET Framework and. NET Core version, I'm going to show you how to do this with both. The ideas are the same, commands are really different. We'll talk about SQL Server Data Tools, SSDT. From there, we'll talk about managing lookup data and configuration data. And with all these tools that I talk about, I'm going to show you how to do automated database deployments.
Feature Flags: Simplify Branching and Deployments Hey everybody. This is the feature flags, simplifying branching and deployments module. In this module we're going to talk about the limits of doing releases based purely on source control. Our answer for that and how we're going to simplify things is by introducing the idea of feature flags. Going to talk about what they are, how they can help out and then we're going to do a whole bunch of demos on how to use them inside your code to improve your DevOps flow.
Deploying ASP.NET 4.6 with Release Management Hey, everybody. This is the Deploying ASP. NET 4. 6 with Release Management module. And here's a quick overview. So, using Release Management and Team Foundation Server, in this module, we're going to deploy an ASP. NET 4. 6 application. So I want to make a distinction. ASP. NET 4. 6 is what we've been using for ASP. NET for a long time. So this is not ASP. NET Core. We're going to cover doing this same activity, this deploying of an ASP. NET Core application in the next module. So, this is ASP. NET 4. 6. So we're going to take one of those ASP. NET applications. We're going to deploy it. We're also going to deploy a database, and in this module, we're going to focus on deploying using SSDT, SQL Server Data Tools, projects. The next module, we'll focus on doing deployments using entity framework migrations. So, for right now, ASP. NET 4. 6 and SSDT database projects, and we're going to do two different kinds of deploys. So we're going to do a deploy to IIS and SQL Server, and then we're going to do a deployment of the same application to Azure, and we're going to target Azure App Service and Azure SQL Database. Since we've pretty much covered everything we need to talk about already in previous modules, it's just going to be demos, so let's dive into our first demo.
Deploying ASP.NET Core and EF Core with Release Management Hey everybody. This is the Deploying ASP. NET Core and EF Core with Release Management module. In this module, we're going to be doing more with Release Management in Team Foundation Server 2017, and the demos we're going to do in this are going to be deploying an ASP. NET Core application and deploying a database using EF Core Migrations. We're going to do two different targets. Target number one is going to be IIS and SQL Server, basically simulating an on-premise version of an ASP. NET Core application release. And then the second one, we're going to do an Azure App Service and SQL Database deploy which would simulate doing an ASP. NET Core application deploy to the cloud. And this module, just like the last module, is just demos because I'm hoping that you remember the stuff that I've taught you already, and this is just applying what I've already showed you how to do with Release Management to the specifics of ASP. NET Core. So if you're looking at this, and you're a little bit hazy on what I'm doing, go back a couple modules and watch the Release Management module and that should give you what you need to know.
Deploying to Containers Using TFS Build and Release Management Hey everybody, this is the Deploying to Containers Using TFS Build and Release Management module. In this module, we're going to discuss what is a container, what is Docker, I'm going to give you a crash course on containers and doing containers with Docker. I'm going to show you how to containerize an existing ASP. NET Core application, and then finally we're going to deploy that ASP. NET Core application to Docker using TFS Build.
QA Testing and Automated UI Tests with Selenium Hey everybody, this is the QA Testing and Automated UI Tests with Selenium module. And let's do an overview. All right, in this module, I'm going to talk about QA and manual testing in DevOps world. We'll talk some of the practical realities of test case management with Team Foundation Server. We'll do QA testing and defect tracking using the Chrome extension in Team Foundation Server. And then we'll pivot into automated UI testing with Selenium. So talking about what is automated UI testing, how to prioritize that against other types of tests. And then finally, I'll do a demo of how to run Selenium tests inside of TFS Builds.