SlideShare una empresa de Scribd logo
w
w
w
.ijarcsa.org
GIT WORKFLOW, FROM DEVELOPMENT TO DEPLOYMENT
REDEFINED!
PRAVAT KUMAR SUTAR
Senior Solution Integrator, Ericsson India Global Services Pvt. Ltd.
ABSTRACT
Distributed version control or Decentralized version control, allows many software developers to
work on a given project without requiring them to share a common network. The software revisions
are stored in a distributed revision control system (DRCS), also known as a distributed version control
system (DVCS).
One such open source DVCS, Git, provides a lightweight yet robust framework for tracking and
controlling changes to a project's files, in particular to source code, documentation, and web pages.
For individual researchers, Git provides a powerful way to track and compare versions, retrace errors,
explore new approaches in a structured manner, while maintaining a full audit trail. For larger
collaborative efforts, Git and Git hosting services make it possible for everyone to work
asynchronously and merge their contributions at any time, all the while maintaining a complete
authorship trail.
In this paper, I provide an overview of Git work flow that can be followed across organizations and I
have highlighted both development and deployment including the code review through GERRIT and
the deployment through Jenkins/Hudson and how it can leverage development/deployment process of
Agile Methodology more reproducible and transparent, foster new collaborations, and support novel
uses.
Keywords: Distributed Version Control Systems (DVCs), Agile Methodology, GIT, GERRIT,
Hudson/Jenkins, repository, SPRINT, Clone, Checkout, Switch, Rebase, Branch, Tag, Development
Server, Acceptance Server, User Acceptance Server and Production Server, Apache Tomcat.
PURPOSE
CollabNetTeamforge’sGit integration is powered by Gerrit, an open source Git server which enforces
access control on Git repositories and supports powerful review features and integration points for
continuous integration tools like Jenkins. Few points are necessary to make out here
a. Source code is maintained in Teamforge’s remote repository
b. The code changes are not pushed directly to remote repository instead it is pushed to Gerrit
for review.
c. Jenkins is used for continuous integration, gerrit-trigger for reviewing the code in Gerritforge,
for building the maven projects and deploying the projects web archive in the application
servers.
d. The User Stories, Epics, Defects and Tasks are maintained in Teamforge’s Tracker artifacts.
The basic purposesare
a. How efficiently we can manage the development and deployment cycle with this GIT version
control system.
www.ijarcsa.org 27 admin@ijarcsa.org
INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER SCIENCE AND APPLICATIONS
ISSN 2321-872X ONLINE ISSN 2321-8932 PRINT IMPACT FACTOR : 0.782
VOLUME 3, ISSUE 3, MARCH 2015.
w
w
w
.ijarcsa.org
b. How efficiently we can revert the defect code from the codebase
c. How efficiently we can maintain the release tags before the release to different instances.
High Level Work flow architecture Diagram
www.ijarcsa.org 28 admin@ijarcsa.org
INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER SCIENCE AND APPLICATIONS
ISSN 2321-872X ONLINE ISSN 2321-8932 PRINT IMPACT FACTOR : 0.782
VOLUME 3, ISSUE 3, MARCH 2015.
w
w
w
.ijarcsa.org
DESCRIPTION
Step 1: ASPRINT-<N>Branch (Ex. SPRINT-1) will be created at the starting of each sprint in remote
eforge GIT repository.
Step 2: The developer will clone the remote repository to the local system for first time. From the 2nd
time onwards, the developer has to fetch from remote and checkout or switch to SPRINT-<N>
branch.
Step 3: The developer will create a separate feature branch in the local based on the ticket, s/he has
accepted or assigned to him/her. The name of the branch will be sprint-ticket-<ticket-no>. Here
sprint number is not mentioned in the feature branch because a ticket may not be completed in a
single sprint.
Below are the steps
Fetch SPRINT-<N> from remote Rebase remote SPRINT-<N> branch with local SPRINT-
<N>Create new feature branch from SPRINT-<N>
Example:
If a developer works in defects/task i.e. “artf1234” of SPRINT-1, then below steps need to be
followed:
1. git fetch origin
2. git checkout SPRINT-1
3. git rebase origin/SPRINT-1 SPRINT-1
4. git checkout -b sprint-ticket-artf1234
Step 4: Once the code changes are done, the developer will do unit testing to validate everything
looks fine based on the requirement in the ticket. At this stage, the developer will test the code in local
system. The developer will commit the changes to the feature branch and push it for review to
GERRIT SPRINT-<N> branch.
Note: Kindly note that the modified code won’t go to the GIT remote repository directly rather it will
go to GERRIT for code review.
Step 5: The reviewer(s) will review the code changes in GERRIT and can provide the
suggestions/recommendations, abandon or merge the changes. In case it is abandoned, the watch list
will get notification on this and the developer who worked on the ticket need to rework based on the
suggestions and recommendations and this process will be continued. In case the reviewer is
approving the changes, the code will be merged to SPRINT-<N> branch ofthe remote repository.
Step 6: If the merge is successful, no action is required. The latest code will move to the remote
repository but if a conflict occurs even after the review is success, GERRIT will not be able to merge
and abandon the commit. A notification will be sent to the watch list. The developer need to fetch,
rebase (rebase feature branch with remote SPRINT-<N>) to resolve the conflicts and push the updated
code to GERRIT again. Again the reviewer, review the changes and merge the code to GIT remote
repository.
Step 7: The deployment process starts from here. Once the code changes are merged with the remote
repository, a tag for DEV release will be created with name DEV-SPRINT-<N>-<DATE>-<TIME>.
www.ijarcsa.org 29 admin@ijarcsa.org
INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER SCIENCE AND APPLICATIONS
ISSN 2321-872X ONLINE ISSN 2321-8932 PRINT IMPACT FACTOR : 0.782
VOLUME 3, ISSUE 3, MARCH 2015.
w
w
w
.ijarcsa.org
Step 8: The DEV-SPRINT-<N>-<DATE>-<TIME> tag will be deployed to DEV application server
by Jenkins.
Step 9: Testing will be performed in DEV.This deployment to DEV and ACC is a continuous process
that can be done partially or completely. If testing fails in DEV, the team will be notified and
corrective action will be taken in SPRINT-<N> branch.
Step 10: If testing is successful in DEV, the deployment can be done in ACC.
Step 11: Testing will be performed in ACC. If testing fails in ACC, the team will be notified and
corrective action will be taken in SPRINT-<N> branch.
Step 12: If testing is success in ACC, a tag for PROD deployment will be created from the SPRINT-
<N> branch as it will be the stable one. The syntax of the tag name for PROD will bePRD-SPRINT-
<N>-<DATE>-<TIME>.
Step 13: The deployment will be done in User Acceptance Testing (UAT) Server with PRD-
SPRINT-<N>-<DATE>-<TIME>tag.
Step 14: Testing will be performed in UAT. If testing is successful, deployment plan will be made for
Production release. If testing fails, the corrective action will be taken in SPRINT-<N> branch and
again the whole deployment process will be continued as is.
Step 15: Deployment will be done in Production once testing in UAT is successful.
Step 16: Testing will be performed in production. If testing fails at some point, the code will be
reverted back to the previous one and the SPRINT-<N> will be marked as fail.
Step 17: If testing is successful, the code will be merged in a master branch.
Note: Here master is the stable branch which will always be updated after a successful production
release.
CONCLUSION
Since GIT is a standard tool that is widely used and backed by a large developer community, there are
numerous resources for learning and seeking helpofficial tutorial athttp://git-scm.com. GIT can be
readily used without any knowledge of command-line tools due to the available of many fully
featured GIT graphic user interfaces http://git-scm.com/downloads/guiswebsite. However, leveraging
its full potential, especially when working on complex projects where one might encounter unwieldy
merge conflicts, comes at a significant learning cost. There are also comparable alternatives to GIT
(e.g. Mercurial) which offer fewer granularities but are more user-friendly but as a matter of fact, the
workflow is important on how you are defining the development, code review and deployment
process.More the workflow streamlined; more will be the productivity gain.
REFERENCES
1. Pragmatic Guide to Git by Travis Swicegood
2. Version Control with Git, 2nd Editionby Jon Loeliger, Matthew McCullough
3. Introduction to Git-flow: A Git Workflow and Development Model by Chris Weed
www.ijarcsa.org 30 admin@ijarcsa.org
INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER SCIENCE AND APPLICATIONS
ISSN 2321-872X ONLINE ISSN 2321-8932 PRINT IMPACT FACTOR : 0.782
VOLUME 3, ISSUE 3, MARCH 2015.

Más contenido relacionado

La actualidad más candente

Codeu+git+flow+presentation
Codeu+git+flow+presentationCodeu+git+flow+presentation
Codeu+git+flow+presentation
Lars Kruse
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
Sujai Sivasamy
 
Test Process in Agile vs Waterfall
Test Process in Agile vs WaterfallTest Process in Agile vs Waterfall
Test Process in Agile vs Waterfall
Return on Intelligence
 
How do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about PipelinesHow do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about Pipelines
ThoughtWorks Studios
 
Modern Post-Exploitation Strategies - 44CON 2012
Modern Post-Exploitation Strategies - 44CON 2012Modern Post-Exploitation Strategies - 44CON 2012
Modern Post-Exploitation Strategies - 44CON 2012
44CON
 
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit Teamforge
CollabNet
 
On Software Release Engineering (Bram Adams)
On Software Release Engineering (Bram Adams)On Software Release Engineering (Bram Adams)
On Software Release Engineering (Bram Adams)
Bram Adams
 
UXDX Dublin - No risk, no reward. The joys of testing in production, by Fabio...
UXDX Dublin - No risk, no reward. The joys of testing in production, by Fabio...UXDX Dublin - No risk, no reward. The joys of testing in production, by Fabio...
UXDX Dublin - No risk, no reward. The joys of testing in production, by Fabio...
UXDXConf
 
Linking Upstream and Downstream Agile
Linking Upstream and Downstream AgileLinking Upstream and Downstream Agile
Linking Upstream and Downstream Agile
CollabNet
 
Git tech
Git techGit tech
Git tech
Taj Nehme
 
The Definitive Guide to Implementing Shift Left Testing in QA
The Definitive Guide to Implementing Shift Left Testing in QAThe Definitive Guide to Implementing Shift Left Testing in QA
The Definitive Guide to Implementing Shift Left Testing in QA
RapidValue
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
Tomas Riha
 
Iteria lowcode 2022-01-10
Iteria lowcode 2022-01-10Iteria lowcode 2022-01-10
Iteria lowcode 2022-01-10
Jozef Slezak
 
Differences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileDifferences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and Agile
Return on Intelligence
 
Continuously Delivering Distributed Systems
Continuously Delivering Distributed SystemsContinuously Delivering Distributed Systems
Continuously Delivering Distributed Systems
Daniel Löffelholz
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
guestc8adce
 
fall2013-team14-Interim-second_report
fall2013-team14-Interim-second_reportfall2013-team14-Interim-second_report
fall2013-team14-Interim-second_report
Santosh Kiran Beyagudem
 
Lcu14 312-Introduction to the Ecosystem day
Lcu14 312-Introduction to the Ecosystem day Lcu14 312-Introduction to the Ecosystem day
Lcu14 312-Introduction to the Ecosystem day
Linaro
 
Agile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality AssistanceAgile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality Assistance
Luca Giovenzana
 

La actualidad más candente (19)

Codeu+git+flow+presentation
Codeu+git+flow+presentationCodeu+git+flow+presentation
Codeu+git+flow+presentation
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
 
Test Process in Agile vs Waterfall
Test Process in Agile vs WaterfallTest Process in Agile vs Waterfall
Test Process in Agile vs Waterfall
 
How do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about PipelinesHow do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about Pipelines
 
Modern Post-Exploitation Strategies - 44CON 2012
Modern Post-Exploitation Strategies - 44CON 2012Modern Post-Exploitation Strategies - 44CON 2012
Modern Post-Exploitation Strategies - 44CON 2012
 
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit Teamforge
 
On Software Release Engineering (Bram Adams)
On Software Release Engineering (Bram Adams)On Software Release Engineering (Bram Adams)
On Software Release Engineering (Bram Adams)
 
UXDX Dublin - No risk, no reward. The joys of testing in production, by Fabio...
UXDX Dublin - No risk, no reward. The joys of testing in production, by Fabio...UXDX Dublin - No risk, no reward. The joys of testing in production, by Fabio...
UXDX Dublin - No risk, no reward. The joys of testing in production, by Fabio...
 
Linking Upstream and Downstream Agile
Linking Upstream and Downstream AgileLinking Upstream and Downstream Agile
Linking Upstream and Downstream Agile
 
Git tech
Git techGit tech
Git tech
 
The Definitive Guide to Implementing Shift Left Testing in QA
The Definitive Guide to Implementing Shift Left Testing in QAThe Definitive Guide to Implementing Shift Left Testing in QA
The Definitive Guide to Implementing Shift Left Testing in QA
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 
Iteria lowcode 2022-01-10
Iteria lowcode 2022-01-10Iteria lowcode 2022-01-10
Iteria lowcode 2022-01-10
 
Differences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileDifferences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and Agile
 
Continuously Delivering Distributed Systems
Continuously Delivering Distributed SystemsContinuously Delivering Distributed Systems
Continuously Delivering Distributed Systems
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
 
fall2013-team14-Interim-second_report
fall2013-team14-Interim-second_reportfall2013-team14-Interim-second_report
fall2013-team14-Interim-second_report
 
Lcu14 312-Introduction to the Ecosystem day
Lcu14 312-Introduction to the Ecosystem day Lcu14 312-Introduction to the Ecosystem day
Lcu14 312-Introduction to the Ecosystem day
 
Agile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality AssistanceAgile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality Assistance
 

Destacado

Vicevaert Glostrup
Vicevaert GlostrupVicevaert Glostrup
Vicevaert Glostrup
emptyzit7925
 
Let's Talk-Life
Let's Talk-LifeLet's Talk-Life
Let's Talk-Life
Rajesh Walecha
 
AIA City processes presentation 092514
AIA City processes presentation 092514AIA City processes presentation 092514
AIA City processes presentation 092514
Mary Kell
 
Tritt die Branche auf der Stelle - Trends und Zukunft des Online Fundraisings
Tritt die Branche auf der Stelle - Trends und Zukunft des Online FundraisingsTritt die Branche auf der Stelle - Trends und Zukunft des Online Fundraisings
Tritt die Branche auf der Stelle - Trends und Zukunft des Online Fundraisings
Eva Hieninger
 
TRBTRCC
TRBTRCCTRBTRCC
PPP of Fairy tales
PPP of Fairy talesPPP of Fairy tales
PPP of Fairy tales
Josh Valerin
 
Tecnica de la pregunta
Tecnica de la preguntaTecnica de la pregunta
Tecnica de la pregunta
verito velasquez
 
nxt remote control
nxt remote controlnxt remote control
nxt remote control
hemaycortes
 
Resume e.bakradze
Resume e.bakradzeResume e.bakradze
Resume e.bakradze
Elina Bakradze
 
Plan nacional 2015
Plan nacional 2015Plan nacional 2015
Plan nacional 2015
melchora ysabel quispe
 
PIS as a Solution
PIS as a SolutionPIS as a Solution
PIS as a Solution
Yunus Thariq Rizky
 

Destacado (12)

Vicevaert Glostrup
Vicevaert GlostrupVicevaert Glostrup
Vicevaert Glostrup
 
Let's Talk-Life
Let's Talk-LifeLet's Talk-Life
Let's Talk-Life
 
база даних
база данихбаза даних
база даних
 
AIA City processes presentation 092514
AIA City processes presentation 092514AIA City processes presentation 092514
AIA City processes presentation 092514
 
Tritt die Branche auf der Stelle - Trends und Zukunft des Online Fundraisings
Tritt die Branche auf der Stelle - Trends und Zukunft des Online FundraisingsTritt die Branche auf der Stelle - Trends und Zukunft des Online Fundraisings
Tritt die Branche auf der Stelle - Trends und Zukunft des Online Fundraisings
 
TRBTRCC
TRBTRCCTRBTRCC
TRBTRCC
 
PPP of Fairy tales
PPP of Fairy talesPPP of Fairy tales
PPP of Fairy tales
 
Tecnica de la pregunta
Tecnica de la preguntaTecnica de la pregunta
Tecnica de la pregunta
 
nxt remote control
nxt remote controlnxt remote control
nxt remote control
 
Resume e.bakradze
Resume e.bakradzeResume e.bakradze
Resume e.bakradze
 
Plan nacional 2015
Plan nacional 2015Plan nacional 2015
Plan nacional 2015
 
PIS as a Solution
PIS as a SolutionPIS as a Solution
PIS as a Solution
 

Similar a DCVCS using GIT

KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
Weaveworks
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentation
Ahmed Kamel
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Weaveworks
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
Simplilearn
 
Web-development-git
Web-development-gitWeb-development-git
Web-development-git
Bridh Athanatos
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weaveworks
 
gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
saraichiba2
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
sparkfabrik
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"
Fwdays
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the Cloud
Axway
 
Full stack development best practice and toolset
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolset
Reid Lai
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
Brice Fernandes
 
Blugento cloud foundry - components - principles
Blugento cloud foundry - components - principlesBlugento cloud foundry - components - principles
Blugento cloud foundry - components - principles
Thomas Fleck
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Gibran Badrulzaman
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous Integration
IRJET Journal
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
Brice Fernandes
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Balaji Resume
Balaji ResumeBalaji Resume
Balaji Resume
Balaji Ommudali
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
Vinothini KadambavanaSundaram
 
How to keep modules up to date
How to keep modules up to dateHow to keep modules up to date
How to keep modules up to date
Thomas Fleck
 

Similar a DCVCS using GIT (20)

KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentation
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
 
Web-development-git
Web-development-gitWeb-development-git
Web-development-git
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the Cloud
 
Full stack development best practice and toolset
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolset
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
 
Blugento cloud foundry - components - principles
Blugento cloud foundry - components - principlesBlugento cloud foundry - components - principles
Blugento cloud foundry - components - principles
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous Integration
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
Balaji Resume
Balaji ResumeBalaji Resume
Balaji Resume
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
How to keep modules up to date
How to keep modules up to dateHow to keep modules up to date
How to keep modules up to date
 

Último

Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
devvsandy
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 

Último (20)

Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 

DCVCS using GIT

  • 1. w w w .ijarcsa.org GIT WORKFLOW, FROM DEVELOPMENT TO DEPLOYMENT REDEFINED! PRAVAT KUMAR SUTAR Senior Solution Integrator, Ericsson India Global Services Pvt. Ltd. ABSTRACT Distributed version control or Decentralized version control, allows many software developers to work on a given project without requiring them to share a common network. The software revisions are stored in a distributed revision control system (DRCS), also known as a distributed version control system (DVCS). One such open source DVCS, Git, provides a lightweight yet robust framework for tracking and controlling changes to a project's files, in particular to source code, documentation, and web pages. For individual researchers, Git provides a powerful way to track and compare versions, retrace errors, explore new approaches in a structured manner, while maintaining a full audit trail. For larger collaborative efforts, Git and Git hosting services make it possible for everyone to work asynchronously and merge their contributions at any time, all the while maintaining a complete authorship trail. In this paper, I provide an overview of Git work flow that can be followed across organizations and I have highlighted both development and deployment including the code review through GERRIT and the deployment through Jenkins/Hudson and how it can leverage development/deployment process of Agile Methodology more reproducible and transparent, foster new collaborations, and support novel uses. Keywords: Distributed Version Control Systems (DVCs), Agile Methodology, GIT, GERRIT, Hudson/Jenkins, repository, SPRINT, Clone, Checkout, Switch, Rebase, Branch, Tag, Development Server, Acceptance Server, User Acceptance Server and Production Server, Apache Tomcat. PURPOSE CollabNetTeamforge’sGit integration is powered by Gerrit, an open source Git server which enforces access control on Git repositories and supports powerful review features and integration points for continuous integration tools like Jenkins. Few points are necessary to make out here a. Source code is maintained in Teamforge’s remote repository b. The code changes are not pushed directly to remote repository instead it is pushed to Gerrit for review. c. Jenkins is used for continuous integration, gerrit-trigger for reviewing the code in Gerritforge, for building the maven projects and deploying the projects web archive in the application servers. d. The User Stories, Epics, Defects and Tasks are maintained in Teamforge’s Tracker artifacts. The basic purposesare a. How efficiently we can manage the development and deployment cycle with this GIT version control system. www.ijarcsa.org 27 admin@ijarcsa.org INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER SCIENCE AND APPLICATIONS ISSN 2321-872X ONLINE ISSN 2321-8932 PRINT IMPACT FACTOR : 0.782 VOLUME 3, ISSUE 3, MARCH 2015.
  • 2. w w w .ijarcsa.org b. How efficiently we can revert the defect code from the codebase c. How efficiently we can maintain the release tags before the release to different instances. High Level Work flow architecture Diagram www.ijarcsa.org 28 admin@ijarcsa.org INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER SCIENCE AND APPLICATIONS ISSN 2321-872X ONLINE ISSN 2321-8932 PRINT IMPACT FACTOR : 0.782 VOLUME 3, ISSUE 3, MARCH 2015.
  • 3. w w w .ijarcsa.org DESCRIPTION Step 1: ASPRINT-<N>Branch (Ex. SPRINT-1) will be created at the starting of each sprint in remote eforge GIT repository. Step 2: The developer will clone the remote repository to the local system for first time. From the 2nd time onwards, the developer has to fetch from remote and checkout or switch to SPRINT-<N> branch. Step 3: The developer will create a separate feature branch in the local based on the ticket, s/he has accepted or assigned to him/her. The name of the branch will be sprint-ticket-<ticket-no>. Here sprint number is not mentioned in the feature branch because a ticket may not be completed in a single sprint. Below are the steps Fetch SPRINT-<N> from remote Rebase remote SPRINT-<N> branch with local SPRINT- <N>Create new feature branch from SPRINT-<N> Example: If a developer works in defects/task i.e. “artf1234” of SPRINT-1, then below steps need to be followed: 1. git fetch origin 2. git checkout SPRINT-1 3. git rebase origin/SPRINT-1 SPRINT-1 4. git checkout -b sprint-ticket-artf1234 Step 4: Once the code changes are done, the developer will do unit testing to validate everything looks fine based on the requirement in the ticket. At this stage, the developer will test the code in local system. The developer will commit the changes to the feature branch and push it for review to GERRIT SPRINT-<N> branch. Note: Kindly note that the modified code won’t go to the GIT remote repository directly rather it will go to GERRIT for code review. Step 5: The reviewer(s) will review the code changes in GERRIT and can provide the suggestions/recommendations, abandon or merge the changes. In case it is abandoned, the watch list will get notification on this and the developer who worked on the ticket need to rework based on the suggestions and recommendations and this process will be continued. In case the reviewer is approving the changes, the code will be merged to SPRINT-<N> branch ofthe remote repository. Step 6: If the merge is successful, no action is required. The latest code will move to the remote repository but if a conflict occurs even after the review is success, GERRIT will not be able to merge and abandon the commit. A notification will be sent to the watch list. The developer need to fetch, rebase (rebase feature branch with remote SPRINT-<N>) to resolve the conflicts and push the updated code to GERRIT again. Again the reviewer, review the changes and merge the code to GIT remote repository. Step 7: The deployment process starts from here. Once the code changes are merged with the remote repository, a tag for DEV release will be created with name DEV-SPRINT-<N>-<DATE>-<TIME>. www.ijarcsa.org 29 admin@ijarcsa.org INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER SCIENCE AND APPLICATIONS ISSN 2321-872X ONLINE ISSN 2321-8932 PRINT IMPACT FACTOR : 0.782 VOLUME 3, ISSUE 3, MARCH 2015.
  • 4. w w w .ijarcsa.org Step 8: The DEV-SPRINT-<N>-<DATE>-<TIME> tag will be deployed to DEV application server by Jenkins. Step 9: Testing will be performed in DEV.This deployment to DEV and ACC is a continuous process that can be done partially or completely. If testing fails in DEV, the team will be notified and corrective action will be taken in SPRINT-<N> branch. Step 10: If testing is successful in DEV, the deployment can be done in ACC. Step 11: Testing will be performed in ACC. If testing fails in ACC, the team will be notified and corrective action will be taken in SPRINT-<N> branch. Step 12: If testing is success in ACC, a tag for PROD deployment will be created from the SPRINT- <N> branch as it will be the stable one. The syntax of the tag name for PROD will bePRD-SPRINT- <N>-<DATE>-<TIME>. Step 13: The deployment will be done in User Acceptance Testing (UAT) Server with PRD- SPRINT-<N>-<DATE>-<TIME>tag. Step 14: Testing will be performed in UAT. If testing is successful, deployment plan will be made for Production release. If testing fails, the corrective action will be taken in SPRINT-<N> branch and again the whole deployment process will be continued as is. Step 15: Deployment will be done in Production once testing in UAT is successful. Step 16: Testing will be performed in production. If testing fails at some point, the code will be reverted back to the previous one and the SPRINT-<N> will be marked as fail. Step 17: If testing is successful, the code will be merged in a master branch. Note: Here master is the stable branch which will always be updated after a successful production release. CONCLUSION Since GIT is a standard tool that is widely used and backed by a large developer community, there are numerous resources for learning and seeking helpofficial tutorial athttp://git-scm.com. GIT can be readily used without any knowledge of command-line tools due to the available of many fully featured GIT graphic user interfaces http://git-scm.com/downloads/guiswebsite. However, leveraging its full potential, especially when working on complex projects where one might encounter unwieldy merge conflicts, comes at a significant learning cost. There are also comparable alternatives to GIT (e.g. Mercurial) which offer fewer granularities but are more user-friendly but as a matter of fact, the workflow is important on how you are defining the development, code review and deployment process.More the workflow streamlined; more will be the productivity gain. REFERENCES 1. Pragmatic Guide to Git by Travis Swicegood 2. Version Control with Git, 2nd Editionby Jon Loeliger, Matthew McCullough 3. Introduction to Git-flow: A Git Workflow and Development Model by Chris Weed www.ijarcsa.org 30 admin@ijarcsa.org INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER SCIENCE AND APPLICATIONS ISSN 2321-872X ONLINE ISSN 2321-8932 PRINT IMPACT FACTOR : 0.782 VOLUME 3, ISSUE 3, MARCH 2015.