Hello, my name is Stephen Burnley, and in these lessons, you will learn about the software development lifecycle and how DevOps is a collection of tools and services to support the software development in your organization. Azure DevOps is a collection of tools that are needed in order to provide a comprehensive DevOps implementation within an organization. In addition to the Azure DevOps portal, we will specifically look at Azure Boards. Azure Boards are the first step in development of a software application. It'll be used to manage your requirements, assign requirements to developers, and estimate the amount of effort that's needed to build your project. DevOps is based on the agile software development process. It is meant to be a comprehensive set of tools. This would require that it manager process from the gathering of requirements all the way through software development, deployment, and monitoring of your application. One of the more popular tools is JIRA. You can see here that JIRA supports Scrum, which is a type of agile software development methodology. It also supports Kanban Boards. Kanban Boards are displayed in the graphic below and show the idea of requirement cards that can be used to collect information about what is needed to be added to your application and also help you determine who is working on it and when it should be done. In this course, we will specifically be looking at a Microsoft tool called Azure Boards. You can see that Azure Boards provides a similar requirements management and Kanban card style compared to JIRA. This is a great way to learn software development using this free tool. Software development starts with the concept of requirements management. Once you know what to do to improve your application, developers will now need to generate source code. One of the more common text editors for developers to use when building software applications is Sublime. The Sublime text editor is a popular and free tool for building software applications. You can see the detailed color coding and navigation, which provides great help to developers as they're working through bugs and testing of their software. Microsoft also provides a free software development tool called Visual Studio Code. You can see that Visual Studio Code is described as a lightweight source code editor and provides the same type of color coding and template language assistance that would be provided by a tool like Sublime. Developers collaborate on source code, meaning they have shared controlled access to this code. This means that you will need to implement some form of source code management. One of the most popular source code management tools is GitHub. GitHub is a free tool that allows you to set up projects and authorize multiple developers to check out code, modify code, and notify team leaders when new code is ready to be tested. We will specifically be using a GitHub compatible tool that's included in the Azure DevOps portal called Azure Repos. Azure Repos is a compatible tool with GitHub technology and it's provided in an integrated way with your projects that are stored in your Azure DevOps portal. This keeps your source code stored in the same tool as your requirements management. Azure Repos is used as a storage location for source code to provide a location for testing and evaluating software and eliminate human errors and human activity that's needed to have this done manually. Continuous integration and continuous delivery are a critical part of the DevOps process. Typically, they're abbreviated CI and CD. Azure implements CI and CD processes through the concept of Azure Pipelines. The advantage of integrating pipelines into your DevOps process is that it can monitor your source code repository such as GitHub or the Azure repo, and when developers commit changes to those repos, your pipeline can provide automated build services. This means that source code is automatically compiled and then installed on a test server or cloud service for evaluation. Continuous integration and continuous delivery build pipelines that allow you to manage this process. For continuous integration, you can see that Azure DevOps environment supports Windows, Linux and Mac build computers. This gives you flexibility to publish source code from many different types of source code editors. You can also see here that the Azure pipeline provides deployment services. This gives you the ability to publish your compiled source code to different locations, including cloud hosting accounts or virtual machines. There are also management tools built into this portal. You can see statistics about successful builds and failed builds. This helps you refine your software process to make it more durable, reliable and efficient. The DevOps process does not end with deployment. This is done in an automated way, so DevOps can extend this by including additional tools to test your software application as it goes through your build and deployment process. This would include source code evaluation tools, such as Sonar Cloud, that can analyze your source code and recommend better security or efficient ways to develop your application before it is compiled. MEND is another popular software component to provide automated testing of your application as it goes through the DevOps process. MEND can analyze software dependencies, such as outside third party software components that your developers have chose to reference. MEND can make sure that those references are using the most recent version of those external components and that there are no known problems with these dependencies. In addition to automated testing, DevOps also provides an opportunity to do automated cloud monitoring. We monitor applications, determine future optimizations, changes or bug fixes, and then put that in the Azure board to be built in the next iteration. The following examples will be based on a sample project in the Azure DevOps portal called Parts Unlimited. Parts Unlimited is a free sample project that can be installed through a tool called the Azure DevOps demo generator. You can do this as part of an Azure DevOps subscription and see the same information that will be displayed in these videos, and you will be able to look at the same sample program if you install this in your free Azure DevOps subscription. You can see here that Azure boards shows individual requirements that need to be implemented as part of this software application lifecycle. In addition to the Azure boards, you can also see the Azure repo contains the individual source code files that the developers will be using when they collaborate and implement the changes required by those requirements cards. This source code is shared and shows a combination of all developer efforts. You can then see that the Azure DevOps portal provides a section to build pipelines. This will include the ability to build continuous integration pipelines for compiling your applications, as well as continuous delivery pipelines for installing your applications on cloud services. We will be publishing our applications to an Azure cloud subscription so we can test this process in a live environment. Stay tuned for the next lesson, where we will look at the DevOps tool specifically. Thanks for watching.