0% found this document useful (0 votes)
45 views12 pages

(Doc) Group 4 - CICD

The document discusses continuous integration (CI), continuous delivery (CD), and CI/CD tools. It defines CI as regularly integrating code changes from different developers and detecting issues early. It defines CD as automating the delivery of code changes to testing environments. CI/CD tools automate building, testing, and deploying code to accelerate software delivery, enhance reliability, and foster collaboration between development and operations teams.

Uploaded by

Earl John Pulido
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views12 pages

(Doc) Group 4 - CICD

The document discusses continuous integration (CI), continuous delivery (CD), and CI/CD tools. It defines CI as regularly integrating code changes from different developers and detecting issues early. It defines CD as automating the delivery of code changes to testing environments. CI/CD tools automate building, testing, and deploying code to accelerate software delivery, enhance reliability, and foster collaboration between development and operations teams.

Uploaded by

Earl John Pulido
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Republic of the Philippines

PAMANTASAN NG LUNGSOD NG MAYNILA


(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department

ABSTRACT
Continuous Integration (CI) and Continuous Delivery
(CD) tools are instrumental in modern software
development, automating key processes from code
integration to deployment. Jenkins, GitLab CI/CD,
Travis CI, and similar tools facilitate the automation of
tasks like building, testing, and deploying code
changes, enabling a seamless and efficient
development pipeline. By promoting early detection of
integration issues and automating repetitive tasks,
CI/CD tools not only accelerate software delivery but
also enhance reliability, fostering a collaborative and
agile development environment. These tools align with
DevOps principles, bridging the gap between
development and operations, ultimately resulting in
faster time-to-market and improved software quality.

GROUP 4
Cabigao, Piolo Justin C.
Castro, Martin Vince M.
Pulido, Earl John N.
Nono, Ricardo
Sebastian, Isaiah Kristian Z.
Continuous Integration Viscayno, Syrus V.
& Continuous Delivery PROFESSOR:
Mrs. PERFERINDA P. CAUBANG
Tools
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department

What’s a Continuous Integration & Continuous Delivery (CI/CD)?

- CI/CD is an automated approach in app development that aims to deliver apps to users
frequently. It involves continuous integration, continuous delivery, and continuous
deployment to solve the challenges of smoothly adding new code without causing issues
for development and operations teams.
- CI/CD brings continuous automation and monitoring across the entire app development
process, encompassing integration, testing, delivery, and deployment. This collection of
practices is known as a "CI/CD pipeline," and it involves collaboration between
development and operations teams in an agile manner, often following either a DevOps
or site reliability engineering (SRE) approach.

What’s a Continuous Integration?

- Continuous Integration (CI) is a software development practice that automates and


regularly combines code changes made by different developers into a shared code
repository. Its main purpose is to identify and resolve integration problems, bugs, and
conflicts at an early stage of the development process.
- In a CI workflow, when a developer modifies the codebase, it initiates an automated
build process. This process compiles the code, executes automated tests, and examines
for potential problems. If any issues are identified, the development team receives
prompt notifications, enabling them to address these issues promptly, and preventing
them from escalating into larger and more expensive problems.
- CI encourages teamwork, lowers the chances of integration issues, and maintains a
stable and functional software state throughout development. It serves as a fundamental
element in the wider CI/CD (Continuous Integration/Continuous Delivery) pipeline, which
encompasses not just integration but also automated deployment to production
environments once code changes successfully pass all tests and evaluations.\

What’s a Continuous Delivery?

- Continuous Delivery (CD) mark a substantial change in the way that software is created,
tested, and deployed. The fundamental goal of CD is to fully automate and streamline
the software delivery process so that code updates may be confidently deployed into
production at any time.
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department

Key Aspects of Continuous Delivery

- Automation is one of the guiding concepts of continuous delivery. Every step of the
development workflow, including code integration, building, testing, and deployment, is
automated. By doing so, the process is sped up, consistency is improved, and human
error is decreased. Code changes are routinely committed by developers, and each
commit starts an automated build process that produces a deployable artifact.
- Another essential component of CD is automated testing. Automated testing ensures
that code changes are extensively examined for accuracy, performance, and security.
This includes unit tests, integration tests, and acceptance tests. As a result, software
quality improves since problems are found earlier in the development process and fixed.

WHAT’S THE DIFFERENCE?

Continuous Integration (CI):

• Focus: CI primarily focuses on integrating code changes from multiple developers into a
shared repository frequently and automatically.

• Purpose: Its main purpose is to detect integration issues, bugs, and conflicts early in the
development process, ensuring that new code integrates smoothly with the existing
codebase.

• Frequency: CI typically involves automated builds and tests triggered whenever code
changes are pushed to the repository.

• Result: CI ensures that code is always in a working state within the shared repository,
reducing the risk of integration problems.

Continuous Delivery (CD):

• Focus: CD extends the CI process by automating the delivery of code changes to a


staging or pre-production environment.
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department

• Purpose: Its primary goal is to make sure that the code is always in a deployable state
and can be released to production at any time. It's about ensuring that the software is
production ready.

• Frequency: CD can include automated deployment to staging environments, where code


changes undergo further testing and validation.

• Result: CD ensures that code changes are automatically deployed to staging


environments, allowing for thorough testing and validation before manual approval for
production release.

BENEFITS OF USING CONTINUOUS INTEGRATION & CONTINUOUS DELIVERY TOOLS

Benefits of Continuous Integration


• Smaller code updates: These updates are more likely to integrate with the existing code
base and less likely to disrupt the user’s experience.
• Faster release dates: Developers can release products sooner when they know they can
continuously update applications.
• Better security: When you discover a vulnerability in one of your digital products, you can
generate new code and integrate it into your source programming to prevent anyone from
taking advantage of the flaw.
• Responsive results: You will likely get feedback from users throughout a product's life
cycle. Continuous integration makes it easier for you to address feedback quickly to create
a better experience.
• Lower costs: Automated code generation and debugging means that you need fewer
developers on your team.
Benefits of Continuous Delivery
• Improved Collaboration and Communication: CD encourages collaboration between
development, operations, and QA teams. It fosters communication and collaboration by
providing a shared understanding of the deployment process.
• Lower costs: Automating the deployment process reduces the need for manual
intervention, saving time and resources.
• Faster Time-to-Market: Continuous Delivery enables rapid, reliable, and automated
deployments. This speed allows organizations to introduce new features, improvements,
and bug fixes to users much faster than traditional, manual deployment methods.

Benefits of using CI/CD


Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department

- The benefits of an automated CI/CD pipeline range from practical considerations like code
quality and rapid bug fixes, to ensuring you’re building the right thing for your users and
improving your entire software development process.\

CI/CD Tools used today

➢ Jenkins: Jenkins is an open-source CI/CD server that is highly customizable and


extensible. It supports a wide range of programming languages and frameworks, and
it can be integrated with a variety of other tools and services. Jenkins is popular among
both small and large teams, and it is used by companies such as Google, Amazon,
and Netflix.

➢ GoCD: GoCD is an open-source CI/CD tool that is known for its advanced workflow
modeling capabilities and its ability to scale to meet the needs of even the largest
teams. GoCD supports a wide range of programming languages and frameworks, and
it offers a variety of features that make it easy to automate the CI/CD process, such
as parallel execution and artifact caching. GoCD is popular among startups and fast-
growing companies, and it is used by companies such as Spotify, Airbnb, and Stripe.
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department

➢ BuildBot: Buildbot is an open-source CI/CD server that is known for its flexibility and
its ability to be customized to meet the specific needs of any team. Buildbot supports
a wide range of programming languages and frameworks, and it can be integrated with
a variety of other tools and services. Buildbot is popular among both small and large
teams, and it is used by companies such as Mozilla, Red Hat, and Wikimedia.

➢ GitLab: GitLab is a DevOps platform that includes a CI/CD tool as part of its core
offering. GitLab's CI/CD tool is easy to use and integrates seamlessly with GitLab's
other features, such as code review and issue tracking. GitLab is popular among small
and medium-sized teams, and it is used by companies such as NASA, GitLab itself,
and InVision.

➢ AWS CodePipeline: AWS CodePipeline is a CI/CD service from Amazon Web


Services (AWS). AWS CodePipeline is easy to use and integrates seamlessly with
other AWS services, such as AWS CodeBuild and AWS CodeDeploy. AWS
CodePipeline is popular among companies that use AWS for their cloud computing
needs.
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department

How to implement CI/CD for a Software Project?


Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department

Challenges of using CI/CD tools?

➢ Complex Configuration: Managing configuration files, environment variables, and


ensuring consistency across different stages of the pipeline can be challenging.
➢ Tool Selection: There are many options available and selecting the ones that best fit your
project's needs, budget, and team's expertise can be challenging.
➢ Scalability: As your project grows, the CI/CD pipeline must scale accordingly. Ensuring
that the pipeline can handle increased load and complexity can be a challenge.
➢ Integration: Integration with Legacy Systems: Introducing CI/CD into an existing software
ecosystem, especially one with legacy systems, can be challenging.
➢ Cost Management: CI/CD tools and services often come with costs that can scale with
usage.
➢ Security: Ensuring the security of the CI/CD pipeline is crucial. Vulnerabilities in the
pipeline can be exploited by malicious actors.
➢ Maintaining Pipeline Consistency: Maintaining consistency in the CI/CD pipeline
configuration can be challenging. Changes made by one team member might
inadvertently affect others.

You might also like