Introduction To Project Management
Introduction To Project Management
Project Management
Need for Source Code Control
• A source control system, also called a version control system, allows
developers to collaborate on code and track changes. Source control is an
essential tool for multi-developer projects.
• Source control is important for maintaining a single source of truth for
development teams.
• Source control (or version control) is the practice of tracking and managing
changes to code. Source control management (SCM) systems provide a
running history of code development and help to resolve conflicts when
merging contributions from multiple sources.
History of Source Code Control
• Source Code Control System's introduction, having been published on
December 4, 1975, historically implied it was the first deliberate revision
control system.
• Source code management is important because, in work
environments, multiple developers work in a shared codebase at the same time.
With each developer working on a single feature, one dev could unknowingly
make conflicting code changes — or one developer’s saved edits could
overwrite the other dev’s changes.
• Before source code management became widespread, few safeguards existed
to prevent these scenarios. Each time a developer started work on a file, they
could let teammates know to ensure no one else was working on it
simultaneously. This was hardly foolproof. And when it worked, this method
left no record of all the changes made over the course of a project — if a
change resulted in a bug, there was no way to trace where it originated or
determine how to fix it.
Roles & Code
DevOps Quality assurance personnel can store their automated tests in
codified form in the source code repository.
DevOps Security Engineer will provides security in each and every stage of
DevOps life cycle.
Shared Authentication
• In most organizations, there is some form of a central server for handling
authentication. An LDAP server is a fairly common choice.
• One possibility is using 389 Server, named after the port commonly used for
the LDAP server.
• Lightweight directory access protocol (LDAP) is a protocol that makes it
possible for applications to query user information rapidly.
• LDAP is a protocol, so it doesn't specify how directory programs work.
Instead, it's a form of language that allows users to find the information they
need very quickly.
• Companies store usernames, passwords, email addresses, printer
connections, and other static data within directories.
• LDAP is an open, vendor-neutral application protocol for accessing and
maintaining that data.
• LDAP can also tackle authentication, so users can sign on just once and
access many different files on the server.
Lightweight Directory Access Protocol (LDAP)
An LDAP query typically involves:
• Session connection. The user connects to the server via an LDAP port.
• Request. The user submits a query, such as an email lookup, to the server.
• Response. The LDAP protocol queries the directory, finds the information,
and delivers it to the user.
• Completion. The user disconnects from the LDAP port.
Before any search commences, the LDAP must authenticate the user.
Two methods are available for that work:
• Simple. The correct name and password connect the user to the server.
• Simple Authentication and Security Layer (SASL). A secondary service,
such as Kerberos, performs authentication before the user can connect. For
companies that require advanced security, this can be a good option.
People can tackle all sorts of operations with LDAP. They can:
• Add. Enter a new file into the database.
• Delete. Take out a file from the database.
• Search. Start a query to find something within the database.
• Compare. Examine two files for similarities or differences.
• Modify. Make a change to an existing entry.
Source Code Management System and Migrations
• When working with code that deploys to servers, it is important to agree on a
branching strategy across the organization.
• A branching strategy is a convention, or a set of rules, that describes when
branches are created, how they are to be named, what use branches should
have, and so on.
• Branching strategies are important when working together with other people
and are, to a degree, less important when you are working on your own, but
they still have a purpose.
Git flow looks complex, so let's have a brief look at what the branches are for:
• The master branch only contains finished work. All commits are tagged,
since they represent releases. All releases happen from master.
• The develop branch is where work on the next release happens. When work
is finished here, develop is merged to master.
• We use separate feature branches for all new features. Feature branches
are merged to develop.
• When a devastating bug is revealed in production, a hotfix branch is made
where a bug fix is created. The hotfix branch is then merged to master, and a
new release for production is made.
Hosted GIT Servers
• Many organizations can't use services hosted within another organization's
walls at all.
• These might be government organizations or organizations dealing with
money, such as bank, insurance, and gaming organizations.
• The causes might be legal or, simply nervousness about letting critical code
leave the organization's doors, so to speak.
• Using GitHub or GitLab is, at any rate, a convenient way to get to learn to
use Git and explore its possibilities.
• Some of the features offered by both GitLab and GitHub over plain Git are
as follows:
Web interfaces
A documentation facility with an inbuilt wiki
Issue trackers
Commit visualization
Branch visualization
The pull request workflow
Gerrit
• Gerrit is a Git-based code review tool.
• Gerrit allows you to set up rules to allow developers to review and approve
changes made to a codebase by other developers
• These might be senior developers reviewing changes made by
inexperienced developers or the more common case, which is simply that
more eyeballs on the code is good for quality in general.
• Gerrit is Java-based and uses a Java-based Git implementation under the
hood.
GitLab