CICD with Jenkins
Speaker: Nam Nguyen Hoai
DevOps Engineer at FSOFT
Agenda
❏ Introduction
❏ CICD overview
❏ CICD ecosystem
❏ Jenkins
❏ Jenkins best practices
1. Introduction
Developing and releasing software can be a complicated process, especially as
applications, teams, and deployment infrastructure grow in complexity
themselves.
Questions for dev team:
● How to verify if new change is working as expected?
● How to make sure code runs well on your machine will run well on others?
● How to make latest code always available to all developers and QA
engineers as fast as possible?
2. CICD overview
● Continuous Integration is a
software development practice
where members of a team
integrate their work frequently.
● Every commits/changes made to a
shared repository must be run
through set of test cases to make
sure new changes are accepted.
● The result of that run should be
informed to responsible persons.
2. CICD overview
Continuous Delivery is the ability to
continuously deliver integrated code,
be it bug fixes or new features, to
production. Software can be deployed
at any given time.
1. Introduction
Questions for QA team:
● How to know if the code is ready to test?
● How to find bug easily and fast?
● How to make sure app in testing will be the same on production?
2. CICD overview
Continuous Deployment: Every change that
passes all stages of your production
pipeline is released to your customers.
There's no human intervention, and only a
failed test will prevent a new change to be
deployed to production.
2. CICD overview
Who should know about CI/CD?
● Dev
● QA
● SysAdmin
Who should implement CI/CD?
● Team has good development flow knowledge.
● Startup? (time to market, proof of concept, …)
● Big corp? (robust software, reliable
deployment…)
3. CICD ecosystem
3. Jenkins
Jenkins is an open source automation
server written in Java. Jenkins helps
to automate the non-human part of
the software development process,
with continuous integration and
facilitating technical aspects of
continuous delivery.
4. Jenkins best practices
● Jenkins high availability
4. Jenkins best practices
● Jenkins sizing
Each build node takes 2-3 thread, which equals about 2 MB or more of memory
In fact, 140 slave nodes, 200 pipeline -> 24GB RAM, 6 vCPU
4. Jenkins best practices
● Jenkins pipeline organization +
job and Node ownership plugin
Ping me via:
● Gmail:namptit307@gmail.com
● Website: namnh68.github.com.vn
● Skype: namptit307

CICD with Jenkins

  • 1.
    CICD with Jenkins Speaker:Nam Nguyen Hoai DevOps Engineer at FSOFT
  • 2.
    Agenda ❏ Introduction ❏ CICDoverview ❏ CICD ecosystem ❏ Jenkins ❏ Jenkins best practices
  • 3.
    1. Introduction Developing andreleasing software can be a complicated process, especially as applications, teams, and deployment infrastructure grow in complexity themselves. Questions for dev team: ● How to verify if new change is working as expected? ● How to make sure code runs well on your machine will run well on others? ● How to make latest code always available to all developers and QA engineers as fast as possible?
  • 4.
    2. CICD overview ●Continuous Integration is a software development practice where members of a team integrate their work frequently. ● Every commits/changes made to a shared repository must be run through set of test cases to make sure new changes are accepted. ● The result of that run should be informed to responsible persons.
  • 5.
    2. CICD overview ContinuousDelivery is the ability to continuously deliver integrated code, be it bug fixes or new features, to production. Software can be deployed at any given time.
  • 6.
    1. Introduction Questions forQA team: ● How to know if the code is ready to test? ● How to find bug easily and fast? ● How to make sure app in testing will be the same on production?
  • 7.
    2. CICD overview ContinuousDeployment: Every change that passes all stages of your production pipeline is released to your customers. There's no human intervention, and only a failed test will prevent a new change to be deployed to production.
  • 8.
    2. CICD overview Whoshould know about CI/CD? ● Dev ● QA ● SysAdmin Who should implement CI/CD? ● Team has good development flow knowledge. ● Startup? (time to market, proof of concept, …) ● Big corp? (robust software, reliable deployment…)
  • 9.
  • 10.
    3. Jenkins Jenkins isan open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery.
  • 11.
    4. Jenkins bestpractices ● Jenkins high availability
  • 12.
    4. Jenkins bestpractices ● Jenkins sizing Each build node takes 2-3 thread, which equals about 2 MB or more of memory In fact, 140 slave nodes, 200 pipeline -> 24GB RAM, 6 vCPU
  • 13.
    4. Jenkins bestpractices ● Jenkins pipeline organization + job and Node ownership plugin
  • 14.
    Ping me via: ●Gmail:namptit307@gmail.com ● Website: namnh68.github.com.vn ● Skype: namptit307