UNIT-III
DevOps Project Management?
• Definition: DevOps project management integrates
software development and IT operations to enhance
collaboration and accelerate the delivery of high-quality
software.
• Key Focus:
– Collaboration between cross-functional teams.
– Automation in testing, integration, and deployment.
– Agile Principles for fast and iterative delivery.
• Why is it Important?
– Faster delivery of features.
– Improved communication between teams.
– Continuous feedback loops.
The Need for Source Code Control
Source Code Control, also known as Version Control,
is essential for tracking changes to code over time.
• Why Use Source Code Control?
– Collaboration: Multiple developers can work on the
same codebase simultaneously.
– Versioning: Keeps track of all changes made to the
code.
– Branching: Supports parallel development (e.g.,
feature branches).
– Rollback: Ability to revert to previous versions if
something breaks.
Key Features of Source Code Control
• Collaboration and Teamwork: Developers can
work together using a central repository.
• Versioning: Keep track of every modification
to code files.
• Branching and Parallel Development: Allows
different features to be worked on
simultaneously without conflict.
• Auditing and Compliance: Logs every change
for compliance and auditing.
Th e Evo lu ti o n o fSo u rce C o d e M an age m e n t(SC M )
• Early Days: Local Version Control Systems (LVCS) tracked
changes only on local machines.
• Centralized Version Control Systems (CVCS): Used a central
server to store and manage code.
• Distributed Version Control Systems (DVCS): Examples
include Git and Mercurial; developers can work offline and
collaborate more efficiently.
• Integration with CI/CD: SCM systems now trigger
automated builds and tests.
• Infrastructure as Code (IaC): SCM also manages
infrastructure configurations.
Roles and code
1. Developer/Software Engineer
2. Operations Engineer/SysAdmin
3. Quality Assurance (QA) Engineer
4. Release Manager
5. DevOps Engineer
6. Scrum Master/Agile Coach
7. Product Owner/Business Stakeholder
Source Code Management System in DevOps
A Source Code Management (SCM) system is a software tool that
enables teams to manage and track changes made to source
code throughout its lifecycle.
➢ Version Control
➢ Collaboration.
➢ Change Tracking
➢ Branching and Merging
➢ Auditing and Compliance
Code Migrations in DevOps:
Code migration refers to the process of moving code changes from one
environment to another, typically from development to testing, staging, or
production environments.
➢ Deployment Automation.
➢ Continuous Integration and Delivery
➢ Environment Synchronization
➢ Rollback and Recovery
➢ Version Control Integration
Shared authentication
• Shared authentication in DevOps means using a single authentication
system across different tools and services.
• It allows users to access multiple resources without needing separate
logins for each component.
• Centralized authentication is used, where a central identity provider
manages user credentials, authentication, and authorization.
• Single Sign-On (SSO) is a common approach in shared authentication,
enabling users to authenticate once and access multiple tools
seamlessly.
• Federated identity management is often utilized, allowing users to
authenticate with their preferred identity provider, which then shares
authentication information with other trusted systems.
• Shared authentication enhances security by enforcing strong
authentication methods and centralized access control.
• It simplifies access management by ensuring consistent user permissions
across the DevOps ecosystem.
• It improves productivity by eliminating the need for managing multiple
Hosted Git servers
• Hosted Git servers are cloud-based platforms that provide Git
repository hosting services.
hosted Git server options:
➢ Centralized Repository.
➢ Version Control
➢ Collaboration:
➢ Access Control
➢ Code History and Auditing
➢ Integration with CI/CD
➢ Issue Tracking
➢ Third-Party Integrations
➢ Scalability and Availability
➢ Security
Different Git server implementations
• GitLab: Complete DevOps platform offering version control,
CI/CD pipelines, issue tracking, and more.
• GitHub: Popular for open-source collaboration, pull
requests, and GitHub Actions for CI/CD.
• Bitbucket: Integrates with Atlassian tools like JIRA for project
management.
• Azure DevOps: Microsoft-hosted service with Git, CI/CD, and
project tracking.
• AWS CodeCommit: AWS CodeCommit is a fully managed Git
service provided by Amazon Web Services (AWS).
• Gitea: Gitea is a lightweight, open-source Git server
implementation that can be self-hosted.
Docker intermission
• Docker is a popular open-source platform that
allows you to automate the deployment,
scaling, and management of applications using
containerization.
• It provides a consistent environment for
software to run, ensuring that applications
work reliably across different systems
Features of Docker
• Containerization
• Portability
• Image-Based
• Microservices Architecture
• Resource Efficiency
• Orchestration
• DevOps Integration
• Ecosystem and Community
• Containers provide application isolation and consistency across different
systems, ensuring that applications run reliably.
• Docker images are read-only templates that contain all the necessary
files, dependencies, and configurations to run an application.
• Docker containers are portable and can be run on any system that has
Docker installed, simplifying deployment across different environments.
• Docker containers are lightweight and resource-efficient compared to
traditional virtual machines, allowing for optimized resource utilization.
• Docker can be integrated with container orchestration tools like Docker
Swarm or Kubernetes to manage and scale containerized applications.
• Docker is commonly used in DevOps workflows to streamline software
development, testing, and production environments.
Gerrit
• Gerrit is a web-based code review tool which
is integrated with Git and built on top of Git
version control system.
• It provides a platform for developers to review
and approve code changes before they are
merged into the main codebase.
Features of Gerrit
• Gerrit is a free and an opensource Git version control system.
• The user interface of Gerrit is formed on Google Web Toolkit.
• It is a lightweight framework for reviewing every commit.
• Gerrit acts as a repository
• Submit Changes
• Git Integration
• Changesets
• Review and Feedback
• Access Controls
• Collaboration
• CI Integration
• Extensible and Customizable
• Open Source
The pull request model:
• The pull request model is a common workflow used in
software development, particularly in projects that utilize
version control systems like Git.
• It is a way for developers to propose changes to a codebase
and collaborate with their peers on those changes before they
are merged into the main codebase.
• ➢ Fork the repository: Create a personal copy of the original
repository.
• ➢ Create a branch: Make a new branch within your forked
repository.
• ➢ Make changes and commit: Modify the codebase in the
branch and create commits to track the modifications
• ➢ Push the branch: Upload the branch with its commits to
your forked repository.
• Create a pull request: Submit a request to merge the
branch's changes into the original repository,
explaining the purpose of the changes.
• ➢ Review the changes: Other developers review the
pull request, providing feedback and suggestions
• . ➢ Iterate and address feedback: Make additional
changes and commits to the branch based on the
feedback received.
• ➢ Approve and merge: Once the reviewers are
satisfied, the pull request is approved, and the
branch's changes are merged into the original
repository.
GitLab
• GitLab is a web-based platform for collaborative software
development.
• It provides a centralized repository for managing code using Git.
• It offers features for issue tracking, CI/CD, code review, and more.
• Teams can collaborate efficiently and streamline development
processes.
• It helps deliver high-quality software through effective teamwork.
• Git repository hosting: GitLab allows you to host and manage Git
repositories with support for branching, merging, and tagging.
• Issue tracking: It provides an integrated system for managing
tasks, bugs, and feature requests, enabling collaboration and
progress tracking.
➢ Continuous Integration and Deployment (CI/CD): GitLab offers
robust CI/CD capabilities with customizable pipelines for
automating build, test, and deployment processes.
➢ Collaboration and code review: GitLab facilitates code collaboration
with features like commenting, discussions, and change suggestions
for effective teamwork.
➢ Wiki and documentation: GitLab includes a wiki feature for creating
and organizing project documentation in a collaborative manner.
➢ Integration and extensibility: GitLab integrates with third-party tools
and services, such as issue trackers and project management tools,
and provides APIs and webhooks for custom integrations.
➢ Security and permissions: GitLab ensures code and data security
with features like role-based access control (RBAC), protected
branches, and merge request approvals.