Sometimes you end up working on projects that just don't go well. Distractions, no focus, impossible to develop. Shifting requirements, brutally hard to test, non-stop bugs. In this course, DevOps Skills for Developers with Visual Studio & TFS 2015, you're going to learn about doing DevOps in the Microsoft world. There will be some theoretical material about DevOps that's entirely cross-platform to get you into the mindset of DevOps. The rest is going to be a lot of practical information, showing you how to take that DevOps mindset and actually do DevOps using Microsoft's tools and technologies. The first topic this course will cover will be version control, covering Team Foundation Server and Git. Next, you'll learn about automated build, automated testing, and automated deploy, as well as how to streamline releases using feature flags. Finally, you'll learn about the TFS release management for doing continuous deployment. By the end this course, you'll know why you should care about DevOps and how to set up your own automated DevOps release pipeline for your application.
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 2015. A little bit about me, I'm a developer, a trainer, a coach, and I specialize in helping teams and companies get good at software delivery. You might say that I'm a therapist for teams. Now whether that means I'm 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 deliver great done, working software. Which brings us to the topic of this course, DevOps. This course is going to talk about doing DevOps in the Microsoft world. Now, it'll be a little bit of a mix. There's going to be some theoretical stuff about DevOps. That stuff's going to be entirely cross platform. And the idea on that is that it's going to try to get you into the mindset of doing DevOps. The rest of the course is practical stuff, showing you how to take that DevOps mindset and apply it and actually do DevOps using Microsoft's tools and technologies. Now, we're going to cover a lot in this course, but here are a few of the things we're going to talk about. We're going to talk about version control using team foundation server version control and Git. We'll talk about automated build, automated testing, and automated deploy. Streamlining your releases using feature flags. And using TFS release management for doing continuous deployment. By the end of this course, you're going to know why you should care about DevOps and how to set up your own automated DevOps release pipeline for your application. Now, before you start this course, you're probably going to want to know the basics of developing software with Visual Studio and you might want to know a little bit about Scrum, too. Alright, so I hope you'll dive in on this course and learn DevOps with my DevOps Skills for Developers with Visual Studio and TFS 2015 course here at Pluralsight.
Work & Constraints Hey everybody, how's it going? This is the work and constraints module, and guess what, we're going to talk about work and constraints. Here's a quick overview. This is going to be a little bit on the theoretical side, but I think it's actually interesting to go through as you dive into through DevOps and try to optimize your delivery process. So first off we're going to talk about, what is work? Thinking of it in the abstract. Work and DevOps, so how does work flow in an IT world? What are the types of work we will encounter? We're going to talk about work in progress, multitasking and the dangers of multitasking, wait time and rework, and then we're going to wrap up with something called the theory of constraints.
Planning and Tracking Your Team's Work Hey, how's it going? This is the Planning and Tracking Your Team's Work module. In this module, we're going to do a Scrum and Kanban overview followed by a whole lot of demos. Demos of using Kanban with TFS, Scrum with TFS, how to do backlog management, Sprint planning, Sprint management, then we'll dive into work item queries and then wrap it up with project dashboards.
Unit Testing and DevOps Alright, so this is the unit testing and DevOps module. So, we're going to start off by talking about what a unit test is, just a quick intro to that. And then we're going to talk about unit testing and DevOps. Basically, how unbelievably important unit tests are to being successful with DevOps. Now, as a disclaimer, my goal is not to teach you a lot about unit testing, that' s an enormous topic that deserves courses upon courses all by itself. If you're looking for a good amount of detail on how to do unit testing with Visual Studio, check out my ALM for developers with Visual Studio 2012 course. So, I know what you're thinking. Visual Studio 2012, that's old. Well, unit testing and the way that I cover it really hasn't changed that much. It's a bit about how you use the tool, and a lot about how you think about writing your code. So, check out the ALM for developers with Visual Studio 2012 course, specifically the unit testing basics and unit testing beyond the basics modules.
Managing & Deploying SQL Server Database Code Hey, everybody, this is the managing and deploying SQL server database code module. In this module we're going to talk about databases and how they relate to DevOps. Then we'll dive in to SQL Server Data Tools and then some techniques on managing lookup and configuration data that you might need inside your application and how you can hook that into your DevOps SSDT flow. And then finally, we're going to wrap up with automated database deployment using something called SqlPackage. exe.
Automating Builds and Deployments Okay, this is the Automating Builds and Deployments module. Quick overview, we're going to talk about automating builds and deploys and how that relates to DevOps, and really why you care about this automated build stuff anyway. We'll talk about the TFS2015 build system brand new for this version of TFS, different types of build triggers. And then we'll start getting into customization. We'll customize using PowerShell. I'll show you how to use SqlPackage. exe to do database deployments from automated build. And then we'll wrap up with deploying an ASP. NET application from an automated build.
Managing 'Hot Fixes' & Code Quality: Branches and Code Reviews Hey everybody, this is the Managing Hot Fixes and Code Quality module. And we're going to be talking about branching and code reviews in this module, which might seem like kind of a weird combination to put together, but hopefully it will make sense as we dive into it. So branching let's you work on multiple, but separate versions of your code in source control. Really fast overview of these two things, branching let's you work on multiple versions of your code in source control at once. So you have two different copies, they're separate but they're related through version control. And then code reviews help you to keep your code quality really high and catch problems. So in this module, we're going to talk about what is branching? What are the reasons and the mindsets for branching? What are the risks? How Git and Team Foundation Server Version Control do it differently. Doing merges in both version control systems. Then we're going to do code reviews in both Git and Team Foundation Server Version Control. And as you can guess, we're going to do a lot of demos.
QA Testing & Automated UI Tests with Coded UI Okay, this is the QA Testing and Automated UI Test with Coded UI module. And here's an overview of what we're going to talk about. So we're going to talk about the role of QA testing, sometimes known as manual testing, in a DevOps world. Then we'll talk about test case management with Team Foundation Server and how you'd manage your QA test process. Then we'll hop into the automation side and we'll talk about how you can use Coded UI to help automate some of the tedious stuff that you might need to do when you're testing your builds. And finally, we're going to wrap up with how to run those coded UI tests as part of your TFS automated builds.
Simplifying Feature Deployments and Feedback Hey everybody. This is the Simplifying Feature Deployments and Feedback module. Starting off with an overview. We're going to start off by talking about some of the limitations with the ways that we typically do releases specifically using source controls to model what actually gets deployed. The answer to that is to use something called feature flags. We're going to talk about what feature flags are, why they're helpful, what some of their downsides are. , then we're going to dive in doing some demos with that. I'll show you an implementation of how to do feature flags in application, then we're going to talk about how feature flags relate to product ownership and how you can start thinking about features as experiments and finally why you should care about feature usage and feedback. Now before we dive into the content, I want to give a big thanks to my friend Dan Piessens. When I first started writing this module, I realized that my thinking on feature flags, and how to implement that, and why you care, and what some of the downsides are, I realized that all that stuff was really unclear and unfocused to my head. Dan really helped me to clear that stuff up and get some focus, so thanks Dan for the help on the feature flags stuff. And now on with the show.
DevOps Release Pipelines with Visual Studio Release Management Alright, last module of the course, here we go. This is the DevOps Release Pipelines with Visual Studio Release Management module. So in this module, we're going to talk about what is Release Management? What is the product of Release Management? What's the problem it's trying to solve in DevOps? And we're going to do a bunch of demos. So let's dive in.