I have received many questions from people asking me two main questions
- How to start their careers in DevOps?
- What is the best DevOps roadmap?
First of all, you need to know that DevOps is not pipelines either automation, DevOps is a wider and bigger than that.
DevOps covers the End-to-End process for the entire organization. You can always start with pipelines, but you should understand the full picture across all areas and even improve some of your skills over all of them.
Learning how to use tools and technologies is not difficult but learning when, where and how to employ them is the most challenging part.
So, I would suggest following the next plan either you are very new to DevOps or even an expert who still struggling because some parts of this plan will restate any miss conceptions you had.
Sometimes you may not understand the practices or the technologies/tools, but try to continue and you will find by reaching to the end, it will clear many of what you didn't understand in the beginning. Also, I am planning to hold live sessions for free as Q&A to answer any question regarding any miss understanding parts and open the doors for complex parts.
DevOps Online Events
Here are the links for the live session to register.
DevOps Videos
Watching the following videos respecting the order.
- Knowing how, when and what for DevOps. E.g. how to measure DevOps and what is the big picture looks like.
- Knowing what is CI/CD means no matter what are the tools and the technologies.
- Knowing how to modernize application architecture and the underlying infrastructure using microservices and containers.
- Docker for an absolute beginner.
- Advanced Docker to run automation testing in containers.
- Security is part of the end-to-end DevOps.
- Deploying Infrastructure Automatically to The Cloud Using Ansible and Pipelines.
- Deploying Infrastructure Automatically to The Cloud Using Terraform and Pipelines.
- Everything in source control even the pipeline.
- Kubernetes and how to automate deployment microservice with pipelines.
- Understand how to build and configure pipelines.
Knowing how, when and what for DevOps.
This video helps you to learn
- Improving the lead time is very important for achieving high-performance DevOps adaption. But first, we must understand what is the difference between Lead time and Cycle time.
- How Kanban can help to improve Continues Delivery and DevOps.
- Know what it means of the frequency of deployment. Know more about the delivery cycles chart by John Allspaw, know more about the state of DevOps report and see how many companies adopt DevOps and see some examples of high-performance DevOps companies.
- Learn the difference between Scrum and Kanban and why Kanban is the best choice for Continuous Delivery and DevOps.
- Learn the importance of visualization and how to measure DevOps and know different KPIs for DevOps transformation and performance.
Knowing what is CI/CD
It’s very important to understand Continuous Integration and Continuous Deployment CI/CD principles and practices no matter what is the tool or the platform that you are using to build and deploy your application.
In this video, you will learn
- What is the difference between Continuous Integration (CI) tasks and Continuous Deployment (CD) tasks?
- Working with and without Continuous Integration, what are the process of Continuous Integration and Continuous Deployment CI/CD including compile, quality gates and packing the application.
- Also, you will learn how to consider and integrate security as part of Continuous Integration and Continuous Deployment pipelines.
- You will also learn the importance of storing the package before deploying it and how and where to consider test automation and provision environment as part of CI/CD pipelines. How you can include infrastructure as code and how to secure infrastructure and your application.
Knowing how to modernize application architecture
This video helps you to learn
- What are microservices & containers | why microservices & containers?
- What is the story behind containers and what drives or the needs it?
- Why did companies move from traditional solution architecture to Microservices?
- How this put containers as the perfect solution for running them?
- What is the difference between VM, Container and Hyper-V Container?
- Why we would prefer containers over VM and when the VM is better?
- What is the difference between container and image and know the life cycle of creating a new image?
- Why I do that, like adding more layers to the base image, push that to container images registry on the cloud, then pull that from the registry to anywhere to have a new container.
- How the orchestration and clustering work for containers by managing the underline nodes which host the containers?
- What are the different technologies and services around a container, like Docker, Docker Hub, Docker Swarm, Kubernetes, Azure Container Services (AKS), Azure Container Registry?
Docker for an absolute beginner
This video helps you to learn
- How to work with Docker and containers, this includes VM VS. Containers VS. Hyper-V Container?
- What's Docker, Value Preposition for VM VS. Containers?
- How to install and uninstall Docker on Linux and Windows?
- What are the differences between
- Images VS Containers,
- Container Deployment Workflow and container registry, Dockerfile.
- How to enable Bridge Networking and Port Mapping in the Docker image.
- What's the relation between Containers, CI/CD and DevOps to understand where does container fit in the DevOps space?
Advanced Docker to run automation testing in containers
This video will focus on
- How to run unit testing inside the Docker container, it will show how to run a unit test manually inside the container. Also, how to run unit tests as part of the CI/CD pipelines.
- How Dockerfile builds a Docker image to run unit tests?
- How to save test results as part of the Docker image and how to run a container from that image to see the test results?
- It will explain Docker file line by line. So, you can understand and see exactly what the real operation, instruction and what is happening by each line in the Dockerfile. This is a good opportunity to understand Dockerfile.
Security is part of the end-to-end DevOps
This video will cover the following points:
- Traditional Security Vs. DevSecOps (Rugged DevOps)
- Security as a continuously varying state
- Evolving DevOps
- Continuous Practices & Shift Left
- Security and Compliance within DevOps
- What do we need to check for security?
- Vulnerabilities overview
- How do we check for security?
- Overview about OWASP
- High Overview of Secure DevOps Kit for Azure
- How to run different types of security scans?
- Azure Policy
- Azure Policy and Release Management
- Azure Blueprints
- Microsoft Azure Security Centre
- Automate Governance and Compliance
- Continuous security validation within CI/CD pipeline
- Passive penetration test VS. Active penetration test
- Infrastructure validation and Security Scan
- Track vulnerabilities
Deploying Infrastructure Automatically to The Cloud Using Ansible and Pipelines
This video will focus on
- How to use Ansible with Azure Pipelines?
- How to execute Ansible playbook yml files on an Ansible remote machine?
- It will provide Ansible and Pipelines tutorial for Beginners | Infrastructure as Code using Ansible and Azure Pipelines training.
- Learn a complete tutorial for automating and provisioning infrastructure on the cloud using Ansible and pipelines.
- This will cover, how to prepare a remote Ansible VM, this includes installing Ansible, installing Python pip and installing Ansible Azure SDK.
- Also, it will cover how to configure the Ansible machine to authenticate to the cloud and how to provide authentication between the Ansible machine and the pipeline agent. So, the pipeline can execute the Ansible playbook remotely on the VM.
- Also, how to create the application package and store that on the artifact along with the Ansible playbook.yml fil so the continuous deployment can pick them up to create the infrastructure and then deploy the web package to the created web app on the infrastructure.
Deploying Infrastructure Automatically to The Cloud Using Terraform and Pipelines
This video will focus on
- How to use Terraform with Azure Pipelines?
- How to execute a Terraform configuration on the pipelines?
- It will provide Terraform and Pipelines tutorial for Beginners | Infrastructure as Code using Terraform and Azure Pipelines training.
- Learn a complete tutorial for automating and provisioning infrastructure on the cloud using Terraform and pipelines.
- This will cover, what is the Terraform configuration file, how Terraform compiles the configuration file into an execution plan to achieve the desired state of the target infrastructure,
- How to install Terraform on the pipeline agent?
- How to initiate Terraform to install the cloud provider suite and how to apply the Terraform execution plan to create the infrastructure?
- How Terraform store the Terroform.tfstate on storage account on the cloud, then how to create a web app and deploy that to the cloud.
- How to use Azure DevOps and Azure Pipeline with Terraform.
Everything in source control even the pipeline
This video will focus on
- How to use CI/CD Pipelines as Code with YAML for Azure Pipelines?
- How to create a Multi-stage pipeline using a YAML file. It will provide Pipelines as Code with YAML tutorial for Beginners | Multi-stage Azure Pipelines training.
- Learn a complete tutorial for creating the Continuous Integration and Continuous Deployment pipelines as Code using YAML configuration Language.
- This will cover, creating the application infrastructure on the cloud with Azure SQL, Azure Service Plan, Azure SQL Server and configure a firewall rule to allow Azure Web App to communicate with Azure SQL Server.
- How to create a new YAML pipeline from Azure DevOps pipelines template for ASP.NET which include tasks in YAML that restore all the NuGet packages, build the ASP.NET application and running unit test, create Web.Zip of the app and store that on Azure Artifacts then pick this package and deploy it to the Web App and SQL Server on Azure.
- Using YAML (Yet Another Markup Language). This allows us to access pipeline features as but with a markup file that can be managed like any other source control file. YAML build definitions can be added to a project by simply adding their source file to the root of the repository. Azure DevOps also provides default templates for popular project types, as well as a YAML designer to simplify the process of defining build and release tasks.
Kubernetes and how to automate deployment microservice with pipelines
This video will focus on
- Create a Kubernetes cluster using Azure CLI.
- Create an Azure Container Registry (ACR), AKS and Azure SQL server
- Provision the Azure DevOps Team Project with a sample .NET Core application
- Configure application and database deployment, using Continuous Deployment (CD) in the Azure DevOps using Azure Pipelines
- Initiate the build to automatically deploy the application to Docker image, push the image to a private Azure registry.
- Automatically trigger the release pipeline to pull the docker image and push it to the Kubernetes cluster.
Understand how to build and configure pipelines
This video will focus on
- How to configure Azure Pipelines organization agent pool and project agent pool?
- How to install the Azure Pipelines agent?
- How to configure Azure Pipelines as a service and as a process or interactive which required so Azure Pipelines can run automated UI testing.
- Learn Azure Pipelines roles and permission and how to delegate Azure Pipelines organization pool admin to a project administrator without giving Azure DevOps organization administrator.
- How to assign users to Azure Pipelines organization pool Administrator role as well as Service Account role?
- What is the difference between Azure Pipelines hosted agent vs. Azure Pipelines self-hosted agent or private agent?
- You will also learn when to use Azure Pipelines hosted agent and when to use Azure Pipelines self-hosted agent as well when not to use them.
- How to create an Azure Pipelines project pool that automatically creates an Azure Pipelines organization pool?
- What's the relation between Azure DevOps projects and Azure Pipelines organization pools and Azure DevOps project agent pool.
- How to install multiple Azure Pipelines agents on the same machine, you will also learn how to remove or uninstall Azure Pipelines agents?
DevOps Books
Once you complete all videos, it would be great to read the below valuable books:
Once you complete this plan, you will not be an expert, but you will know what you need to know and what is the right direction for your future plans to be an expert.
Good Luck