Course: DevOps

DevOps is a set of software development practices that combine software development and information technology operations to shorten the systems development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives. Ref: Wikipedia

Now in simple words, You want to deliver your new features & fixes to end users as soon as possible (ideally on daily basis). How is it possible? Yes, It is if you change your development & deployment practices. Automation is Key in achieving this.

In this course, we’ll see different aspects/practices (not in any specific order) to move towards DevOps implementation.

Version Control System

A Version Control System is a Key/Core component in achieving DevOps. Git is a famous distributed version control system. Following are three interactive sessions with developers. (You may check this course as it is in tutorial format)

Google Doc Link for Practice

Learning Git with Hands-on Practice – Part 1

Sorry for some distortion of few seconds on couple of places. First 15 minutes are on board and then remaining is on laptop. Also white board part is not that good.

Learning Git with Hands-on Practice – Part 2

Learning Git with Hands-on Practice – Part 3

Automated Testing

Automated Testing is another important aspect of DevOps. This is one aspect which makes sure that things are fine & deliverable quickly.

Unit Testing With NUnit

In this Video, you will learn what is Unit Testing, how to do it with NUnit, What is its role in CI/CD. What is Dependency Injection and how to take benefit of it while writing test cases

Source code can be found here on github

Automated UI Testing with Selenium + C# – Part 1

In this Session, we explored what is Selenium and did some practice tasks

Here is Link of Lab for Practice

Automated UI Testing with Selenium + C# – Part 2

In this session, we learnt

  • How to use Selenium for Automated UI Testing
  • Using Selenium with NUnit + Headless
  • Introduction to Selenium IDE

Here is Link of Lab for Practice

DevOps for Databases

One of the complex & confusing component is how to maintain & automate deployment Databases’ changes.

DevOps for Databases Using SSDT – Part 1

In this session, we learnt

  • How do we manage database changes?
  • How do we deploy database changes?
  • What approaches exist for database change management
  • State vs Migration based
  • Playing with SSDT

Lab for Practice

DevOps for Databases Using SSDT – Part 2

In this session, we learnt

  1. SQLCMD Variables (1:407:00)
  2. MERGE Statement (7:0114:35)
  3. What is DACPAC file, how to create a DACPAC in SSMS
  4. How to upgrade a database from DACPAC file
  5. What is BACPAC file, how to create a BACPAC in SSMS
  6. How to import BACPAC file in SSMS (Step 4 till 6: 14:3623:50)
  7. Create a DACPAC using Sqlpackage.exe through commands
  8. Create a BACPAC using Sqlpackage.exe through commands
  9. Generate diff script by Source: DACPAC, Destination:Database using Sqlpackage.exe through commands.
  10. Publish changes Source: DACPAC, Destination:Database using Sqlpackage.exe through commands.
  11. How to import BACPAC file using SqlPackage.exe through commands (Step 7 till 11: 23:5542:10)
  12. Visual Studio SQL Server Compare feature (42:1046:40)
  13. Create DB Projects
  14. Adding Reference, using SQLCMD Variables (Step 13 till 14: [42:1058:10]
  15. Compare & Publish DB Projects from VS [58:1501:09:10]
  16. Build DB project using MSBuild.exe [1:09:101:11:55]
  17. Generate Script + Publish using SqlPackage.exe through Commands [1:11:551:19:20]
  18. Post Deployment scripts [1:19:211:33:20]

Deployment Automation

Configuring Jenkins for PHP on Linux – Simple Automation

Configuring Jenkins for TFS + ASP.NET MVC – Automation

Using Web Deploy to Publish Website to IIS (Remote Server)

Configuring Jenkins with TFS + Deployment to Remote Server using Web Deploy

ASP.NET Website Build + Publish through Commands

Leave a Reply