SlideShare a Scribd company logo
1 of 30
©2017 IKERLAN. All rights reserved©2017 IKERLAN. All rights reserved
Ikerlan – Continuous Integration &
Continuous Delivery
Ángel Conde– [DevOps & Data Engineer]
2017/3/24
©2017 IKERLAN. All rights reserved
Outline
1. Introduction to CI/CD
2. Version control with GitLab
3. Jenkins
4. Code quality with Sonarqube
5. Examples
Maven
Pipeline (Java)
Pipeline (C++/C)
End2End
©2017 IKERLAN. All rights reserved
The Continuous wheel
©2017 IKERLAN. All rights reserved
Continuous Integration
Adopted first on Extreme Programming.
Remove the problem of finding later issues in the build
lifecycle.
Enforces disciple of frequent automated testing.
Immediate feedback on system-wide impact of local
changes.
Metrics reports focus developers on improve the code.
©2017 IKERLAN. All rights reserved
Continuous Delivery
Ensure that the software can be reliable released any
time.
Build, test and release software faster and frequently.
Accelerated time to market.
Building the right product (user feedback).
Productivity and efficiency.
©2017 IKERLAN. All rights reserved
End to End Delivery
©2017 IKERLAN. All rights reserved
Outline
1. Introduction to CI/CD
2. Version control with GitLab
3. Continuous integration with Jenkins
4. Code quality with Sonarqube
5. Examples
Maven
Pipeline (Java)
Pipeline (C++/C)
End2End
©2017 IKERLAN. All rights reserved
Git – Branch flow
A branch for each different feature.
Use tags for identification.
Merge / Rebase concepts.
©2017 IKERLAN. All rights reserved
Git – Basic Example
git clone git@github.com:foo/bar.git
cd bar
touch something
git add something
git commit -a -m "foo"
git push
User A:
User B:
git pull
echo “blah blah” | tee --append something
git commit –a –m “added something”
git push
©2017 IKERLAN. All rights reserved
Git made social (GitHub competitor).
©2017 IKERLAN. All rights reserved
Issues: a great way to keep track of tasks, enhancements,
and bugs for your projects.
©2017 IKERLAN. All rights reserved
Boards: Kanban board with issues
©2017 IKERLAN. All rights reserved
Milestones: organize issues and merge requests into a
cohesive group.
©2017 IKERLAN. All rights reserved
Outline
1. Introduction to CI/CD
2. Version control with GitLab
3. Continuous integration with Jenkins
4. Code quality with Sonarqube
5. Examples
Maven
Pipeline (Java)
Pipeline (C++/C)
End2End
©2017 IKERLAN. All rights reserved
Jenkins – CI Server
Free & OSS CI tool
Automate your tests on each Push.
Hundreds of plugins.
Provides Continuous Delivery support.
Multiple languages support.
Distributed model  Master / Slaves.
©2017 IKERLAN. All rights reserved
Jenkins – CI Server
Version Control Support: git, svn, tfs, mercurial, etc.
Languages: Java, Scala, c/c++, c#, python, etc.
Build tools: ant, maven, ivy, msbuild, sbt, etc.
©2017 IKERLAN. All rights reserved
Jenkins – Example
©2017 IKERLAN. All rights reserved
Jenkins – GitLab Integration
©2017 IKERLAN. All rights reserved
Outline
1. Introduction to CI/CD
2. Version control with GitLab
3. Continuous integration with Jenkins
4. Code quality with Sonarqube
5. Examples
Maven
Pipeline (Java)
Pipeline (C++/C)
End2End
©2017 IKERLAN. All rights reserved
Ugly Code
©2017 IKERLAN. All rights reserved
Code Quality
“It´s and indicator about how quickly developers can add
business value to a software system”
©2017 IKERLAN. All rights reserved
Why
Source code =
Developers maintain “legacy” systems.
A system is never “finished”.
You can´t improve if you don´t measure.
Broken window theory.
©2017 IKERLAN. All rights reserved
When/What
When
• From Start.
• Continuously.
What
• Metrics: test coverage, code complexity, duplications.
• Evolution: trends
©2017 IKERLAN. All rights reserved
Tech. Debt
“If the debt grows large enough, eventually the company
will spend more n servicing its debt than it invest in
increasing the value of its other assets”
©2017 IKERLAN. All rights reserved
Free and OSS “Code Quality Platform”.
Gives trends of lagging and leading indicators.
Provides moment-in-time quality snapshots.
Tracks Developers “debt”.
©2017 IKERLAN. All rights reserved
Example
©2017 IKERLAN. All rights reserved
Outline
1. Introduction to CI/CD
2. Version control with GitLab
3. Continuous integration with Jenkins
4. Code quality with Sonarqube
5. Examples
Maven
Pipeline (Java)
Pipeline (C++/C)
End2End
©2017 IKERLAN. All rights reserved
References
GitLab Flow:
https://docs.gitlab.com/ce/workflow/gitlab_flow.html
https://about.gitlab.com/2016/07/27/the-11-rules-of-gitlab-flow/
GitLab Issues Link:
https://about.gitlab.com/2016/03/08/gitlab-tutorial-its-all-
connected/
GitLab Review Process:
https://about.gitlab.com/2017/03/17/demo-mastering-code-
review-with-gitlab/
Jenkins Pipeline tutorial:
https://github.com/jenkinsci/pipeline-
plugin/blob/master/TUTORIAL.md
©2017 IKERLAN. All rights reserved
References (II)
Contents of this presentation:
https://ikerlan.githost.io/courses/continous-integration-lab
Sonar Manual:
https://sonarqubehispano.org/display/DOC/Manual+de+usuario+d
e+SonarQube
Tutorial:
https://www.adictosaltrabajo.com/tutoriales/utilizando-sonar/
©2017 IKERLAN. All rights reserved
IKERLAN Polo Garaia
C/ Goiru , 9
20500 Arrasate-Mondragón
Tel.: 943 71 02 12
Fax: 943 79 69 44
IKERLAN Unidad de energía
Parque Tecnológico de Álava,
C/ Juan de la Cierva, 1
01510 Miñano
Tel.: 945 29 70 32
Fax: 943 79 69 44
www.ikerlan.es
ORONA IDeO - Innovation city
Pol. Industrial Galarreta,
Parcela 10.5, Edificio A3
20120 Hernani
Tel.: 945 29 70 32
Fax: 943 79 69 44
IKERLAN
Pº. J. Mª. Arizmendiarrieta, 2
20500 Arrasate-Mondragón
Tel.: 943 71 24 00
Fax: 943 79 69 44
Questions?
Email: aconde@ikerlan.es
Thanks for your attention:

More Related Content

What's hot

Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHPArno Schneider
 
Chris Swan at QCon 2014: Using Docker in Cloud Networks
Chris Swan at QCon 2014: Using Docker in Cloud NetworksChris Swan at QCon 2014: Using Docker in Cloud Networks
Chris Swan at QCon 2014: Using Docker in Cloud NetworksCohesive Networks
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsWeaveworks
 
Canary deployment with Traefik and K3S
Canary deployment with Traefik and K3SCanary deployment with Traefik and K3S
Canary deployment with Traefik and K3SJakub Hajek
 
Having A Talk With Jenkins
Having A Talk With JenkinsHaving A Talk With Jenkins
Having A Talk With JenkinsCliffano Subagio
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneyWeaveworks
 
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Andrew Phillips
 
Securing your code when you don't even know where it is - Liz Rice - DevOpsDa...
Securing your code when you don't even know where it is - Liz Rice - DevOpsDa...Securing your code when you don't even know where it is - Liz Rice - DevOpsDa...
Securing your code when you don't even know where it is - Liz Rice - DevOpsDa...DevOpsDays Tel Aviv
 
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...SlideTeam
 
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)William Yeh
 
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...Perforce
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOpsBrice Fernandes
 
JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers Rafael Benevides
 
A basic overview of Containers
A basic overview of ContainersA basic overview of Containers
A basic overview of ContainersDivakar Sharma
 
Learn Continuous Integration with Jenkins All in One Guide
Learn Continuous Integration with Jenkins All in One GuideLearn Continuous Integration with Jenkins All in One Guide
Learn Continuous Integration with Jenkins All in One GuideSam Dias
 
Maven, Archiva, Subversion and Team City
Maven, Archiva, Subversion and Team CityMaven, Archiva, Subversion and Team City
Maven, Archiva, Subversion and Team CityBoy Tech
 
JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...
JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...
JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...Rafael Benevides
 
K8s from Zero to ~Hero~ Seasoned Beginner
K8s from Zero to ~Hero~ Seasoned BeginnerK8s from Zero to ~Hero~ Seasoned Beginner
K8s from Zero to ~Hero~ Seasoned BeginnerKristof Jozsa
 
New York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for KubernetesNew York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for KubernetesAndrew Phillips
 

What's hot (20)

Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHP
 
Chris Swan at QCon 2014: Using Docker in Cloud Networks
Chris Swan at QCon 2014: Using Docker in Cloud NetworksChris Swan at QCon 2014: Using Docker in Cloud Networks
Chris Swan at QCon 2014: Using Docker in Cloud Networks
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
 
Canary deployment with Traefik and K3S
Canary deployment with Traefik and K3SCanary deployment with Traefik and K3S
Canary deployment with Traefik and K3S
 
Having A Talk With Jenkins
Having A Talk With JenkinsHaving A Talk With Jenkins
Having A Talk With Jenkins
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
 
Securing your code when you don't even know where it is - Liz Rice - DevOpsDa...
Securing your code when you don't even know where it is - Liz Rice - DevOpsDa...Securing your code when you don't even know where it is - Liz Rice - DevOpsDa...
Securing your code when you don't even know where it is - Liz Rice - DevOpsDa...
 
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
 
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
 
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
 
JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers
 
A basic overview of Containers
A basic overview of ContainersA basic overview of Containers
A basic overview of Containers
 
Learn Continuous Integration with Jenkins All in One Guide
Learn Continuous Integration with Jenkins All in One GuideLearn Continuous Integration with Jenkins All in One Guide
Learn Continuous Integration with Jenkins All in One Guide
 
Maven, Archiva, Subversion and Team City
Maven, Archiva, Subversion and Team CityMaven, Archiva, Subversion and Team City
Maven, Archiva, Subversion and Team City
 
JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...
JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...
JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...
 
K8s from Zero to ~Hero~ Seasoned Beginner
K8s from Zero to ~Hero~ Seasoned BeginnerK8s from Zero to ~Hero~ Seasoned Beginner
K8s from Zero to ~Hero~ Seasoned Beginner
 
New York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for KubernetesNew York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for Kubernetes
 

Similar to Continous Delivery and Continous Integration at IKERLAN

Continuous Delivery With Containers
Continuous Delivery With ContainersContinuous Delivery With Containers
Continuous Delivery With ContainersAll Things Open
 
Webinar: End-to-End CI/CD with GitLab and DC/OS
Webinar: End-to-End CI/CD with GitLab and DC/OSWebinar: End-to-End CI/CD with GitLab and DC/OS
Webinar: End-to-End CI/CD with GitLab and DC/OSMesosphere Inc.
 
Cloud Native CI/CD with GitOps
Cloud Native CI/CD with GitOpsCloud Native CI/CD with GitOps
Cloud Native CI/CD with GitOpsKasper Nissen
 
Deploying more technology to shift from agility to anti-fragility
Deploying more technology to shift from agility to anti-fragilityDeploying more technology to shift from agility to anti-fragility
Deploying more technology to shift from agility to anti-fragilitySpyros Lambrinidis
 
Enterprise level cloud CI
Enterprise level cloud CIEnterprise level cloud CI
Enterprise level cloud CISQUADEX
 
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...NETWAYS
 
Exercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the EnterpriseExercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the EnterpriseBitbar
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life DevOps.com
 
Moving from Legacy Development Tools to transformative DevOps with Enterprise...
Moving from Legacy Development Tools to transformative DevOps with Enterprise...Moving from Legacy Development Tools to transformative DevOps with Enterprise...
Moving from Legacy Development Tools to transformative DevOps with Enterprise...Infostretch
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]Dynatrace
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationOleg Nenashev
 
Using Jenkins as your go-to CI/CD tool
Using Jenkins as your go-to CI/CD toolUsing Jenkins as your go-to CI/CD tool
Using Jenkins as your go-to CI/CD toolpCloudy
 
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a ProSkip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a ProCodefresh
 
Extend Agile and DevOps Practices Across Hybrid IT
Extend Agile and DevOps Practices Across Hybrid ITExtend Agile and DevOps Practices Across Hybrid IT
Extend Agile and DevOps Practices Across Hybrid ITDevOps.com
 
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...Edureka!
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013Ethan Ram
 
Engineering Software and Software Lifecycle
Engineering Software and Software LifecycleEngineering Software and Software Lifecycle
Engineering Software and Software LifecycleKeith Mitchell
 

Similar to Continous Delivery and Continous Integration at IKERLAN (20)

Continuous Delivery With Containers
Continuous Delivery With ContainersContinuous Delivery With Containers
Continuous Delivery With Containers
 
Webinar: End-to-End CI/CD with GitLab and DC/OS
Webinar: End-to-End CI/CD with GitLab and DC/OSWebinar: End-to-End CI/CD with GitLab and DC/OS
Webinar: End-to-End CI/CD with GitLab and DC/OS
 
Modern Software Development
Modern Software DevelopmentModern Software Development
Modern Software Development
 
Cloud Native CI/CD with GitOps
Cloud Native CI/CD with GitOpsCloud Native CI/CD with GitOps
Cloud Native CI/CD with GitOps
 
Deploying more technology to shift from agility to anti-fragility
Deploying more technology to shift from agility to anti-fragilityDeploying more technology to shift from agility to anti-fragility
Deploying more technology to shift from agility to anti-fragility
 
Enterprise level cloud CI
Enterprise level cloud CIEnterprise level cloud CI
Enterprise level cloud CI
 
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
 
Exercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the EnterpriseExercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the Enterprise
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
 
Moving from Legacy Development Tools to transformative DevOps with Enterprise...
Moving from Legacy Development Tools to transformative DevOps with Enterprise...Moving from Legacy Development Tools to transformative DevOps with Enterprise...
Moving from Legacy Development Tools to transformative DevOps with Enterprise...
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
 
Anmol
AnmolAnmol
Anmol
 
Using Jenkins as your go-to CI/CD tool
Using Jenkins as your go-to CI/CD toolUsing Jenkins as your go-to CI/CD tool
Using Jenkins as your go-to CI/CD tool
 
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a ProSkip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
 
Extend Agile and DevOps Practices Across Hybrid IT
Extend Agile and DevOps Practices Across Hybrid ITExtend Agile and DevOps Practices Across Hybrid IT
Extend Agile and DevOps Practices Across Hybrid IT
 
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
 
Engineering Software and Software Lifecycle
Engineering Software and Software LifecycleEngineering Software and Software Lifecycle
Engineering Software and Software Lifecycle
 

More from Angel Conde Manjon

Software Realibility on the Big Data Era
Software Realibility on the Big Data EraSoftware Realibility on the Big Data Era
Software Realibility on the Big Data EraAngel Conde Manjon
 
Evolución hacia las plataformas de datos modernas, el Edge-to-cloud continuum
Evolución hacia las plataformas de datos modernas, el Edge-to-cloud continuumEvolución hacia las plataformas de datos modernas, el Edge-to-cloud continuum
Evolución hacia las plataformas de datos modernas, el Edge-to-cloud continuumAngel Conde Manjon
 
Towards an Unified API for Spark and the IIoT
Towards an Unified API for Spark and the IIoTTowards an Unified API for Spark and the IIoT
Towards an Unified API for Spark and the IIoTAngel Conde Manjon
 
Solving the Industry 4.0. challenges on the logistics domain using Apache Mesos
Solving the Industry 4.0. challenges on the logistics domain using Apache MesosSolving the Industry 4.0. challenges on the logistics domain using Apache Mesos
Solving the Industry 4.0. challenges on the logistics domain using Apache MesosAngel Conde Manjon
 

More from Angel Conde Manjon (6)

Software Realibility on the Big Data Era
Software Realibility on the Big Data EraSoftware Realibility on the Big Data Era
Software Realibility on the Big Data Era
 
Evolución hacia las plataformas de datos modernas, el Edge-to-cloud continuum
Evolución hacia las plataformas de datos modernas, el Edge-to-cloud continuumEvolución hacia las plataformas de datos modernas, el Edge-to-cloud continuum
Evolución hacia las plataformas de datos modernas, el Edge-to-cloud continuum
 
Towards an Unified API for Spark and the IIoT
Towards an Unified API for Spark and the IIoTTowards an Unified API for Spark and the IIoT
Towards an Unified API for Spark and the IIoT
 
Solving the Industry 4.0. challenges on the logistics domain using Apache Mesos
Solving the Industry 4.0. challenges on the logistics domain using Apache MesosSolving the Industry 4.0. challenges on the logistics domain using Apache Mesos
Solving the Industry 4.0. challenges on the logistics domain using Apache Mesos
 
Modern Java Development
Modern Java DevelopmentModern Java Development
Modern Java Development
 
Ph.D. Defense
Ph.D. Defense Ph.D. Defense
Ph.D. Defense
 

Recently uploaded

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 

Recently uploaded (20)

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 

Continous Delivery and Continous Integration at IKERLAN

  • 1. ©2017 IKERLAN. All rights reserved©2017 IKERLAN. All rights reserved Ikerlan – Continuous Integration & Continuous Delivery Ángel Conde– [DevOps & Data Engineer] 2017/3/24
  • 2. ©2017 IKERLAN. All rights reserved Outline 1. Introduction to CI/CD 2. Version control with GitLab 3. Jenkins 4. Code quality with Sonarqube 5. Examples Maven Pipeline (Java) Pipeline (C++/C) End2End
  • 3. ©2017 IKERLAN. All rights reserved The Continuous wheel
  • 4. ©2017 IKERLAN. All rights reserved Continuous Integration Adopted first on Extreme Programming. Remove the problem of finding later issues in the build lifecycle. Enforces disciple of frequent automated testing. Immediate feedback on system-wide impact of local changes. Metrics reports focus developers on improve the code.
  • 5. ©2017 IKERLAN. All rights reserved Continuous Delivery Ensure that the software can be reliable released any time. Build, test and release software faster and frequently. Accelerated time to market. Building the right product (user feedback). Productivity and efficiency.
  • 6. ©2017 IKERLAN. All rights reserved End to End Delivery
  • 7. ©2017 IKERLAN. All rights reserved Outline 1. Introduction to CI/CD 2. Version control with GitLab 3. Continuous integration with Jenkins 4. Code quality with Sonarqube 5. Examples Maven Pipeline (Java) Pipeline (C++/C) End2End
  • 8. ©2017 IKERLAN. All rights reserved Git – Branch flow A branch for each different feature. Use tags for identification. Merge / Rebase concepts.
  • 9. ©2017 IKERLAN. All rights reserved Git – Basic Example git clone git@github.com:foo/bar.git cd bar touch something git add something git commit -a -m "foo" git push User A: User B: git pull echo “blah blah” | tee --append something git commit –a –m “added something” git push
  • 10. ©2017 IKERLAN. All rights reserved Git made social (GitHub competitor).
  • 11. ©2017 IKERLAN. All rights reserved Issues: a great way to keep track of tasks, enhancements, and bugs for your projects.
  • 12. ©2017 IKERLAN. All rights reserved Boards: Kanban board with issues
  • 13. ©2017 IKERLAN. All rights reserved Milestones: organize issues and merge requests into a cohesive group.
  • 14. ©2017 IKERLAN. All rights reserved Outline 1. Introduction to CI/CD 2. Version control with GitLab 3. Continuous integration with Jenkins 4. Code quality with Sonarqube 5. Examples Maven Pipeline (Java) Pipeline (C++/C) End2End
  • 15. ©2017 IKERLAN. All rights reserved Jenkins – CI Server Free & OSS CI tool Automate your tests on each Push. Hundreds of plugins. Provides Continuous Delivery support. Multiple languages support. Distributed model  Master / Slaves.
  • 16. ©2017 IKERLAN. All rights reserved Jenkins – CI Server Version Control Support: git, svn, tfs, mercurial, etc. Languages: Java, Scala, c/c++, c#, python, etc. Build tools: ant, maven, ivy, msbuild, sbt, etc.
  • 17. ©2017 IKERLAN. All rights reserved Jenkins – Example
  • 18. ©2017 IKERLAN. All rights reserved Jenkins – GitLab Integration
  • 19. ©2017 IKERLAN. All rights reserved Outline 1. Introduction to CI/CD 2. Version control with GitLab 3. Continuous integration with Jenkins 4. Code quality with Sonarqube 5. Examples Maven Pipeline (Java) Pipeline (C++/C) End2End
  • 20. ©2017 IKERLAN. All rights reserved Ugly Code
  • 21. ©2017 IKERLAN. All rights reserved Code Quality “It´s and indicator about how quickly developers can add business value to a software system”
  • 22. ©2017 IKERLAN. All rights reserved Why Source code = Developers maintain “legacy” systems. A system is never “finished”. You can´t improve if you don´t measure. Broken window theory.
  • 23. ©2017 IKERLAN. All rights reserved When/What When • From Start. • Continuously. What • Metrics: test coverage, code complexity, duplications. • Evolution: trends
  • 24. ©2017 IKERLAN. All rights reserved Tech. Debt “If the debt grows large enough, eventually the company will spend more n servicing its debt than it invest in increasing the value of its other assets”
  • 25. ©2017 IKERLAN. All rights reserved Free and OSS “Code Quality Platform”. Gives trends of lagging and leading indicators. Provides moment-in-time quality snapshots. Tracks Developers “debt”.
  • 26. ©2017 IKERLAN. All rights reserved Example
  • 27. ©2017 IKERLAN. All rights reserved Outline 1. Introduction to CI/CD 2. Version control with GitLab 3. Continuous integration with Jenkins 4. Code quality with Sonarqube 5. Examples Maven Pipeline (Java) Pipeline (C++/C) End2End
  • 28. ©2017 IKERLAN. All rights reserved References GitLab Flow: https://docs.gitlab.com/ce/workflow/gitlab_flow.html https://about.gitlab.com/2016/07/27/the-11-rules-of-gitlab-flow/ GitLab Issues Link: https://about.gitlab.com/2016/03/08/gitlab-tutorial-its-all- connected/ GitLab Review Process: https://about.gitlab.com/2017/03/17/demo-mastering-code- review-with-gitlab/ Jenkins Pipeline tutorial: https://github.com/jenkinsci/pipeline- plugin/blob/master/TUTORIAL.md
  • 29. ©2017 IKERLAN. All rights reserved References (II) Contents of this presentation: https://ikerlan.githost.io/courses/continous-integration-lab Sonar Manual: https://sonarqubehispano.org/display/DOC/Manual+de+usuario+d e+SonarQube Tutorial: https://www.adictosaltrabajo.com/tutoriales/utilizando-sonar/
  • 30. ©2017 IKERLAN. All rights reserved IKERLAN Polo Garaia C/ Goiru , 9 20500 Arrasate-Mondragón Tel.: 943 71 02 12 Fax: 943 79 69 44 IKERLAN Unidad de energía Parque Tecnológico de Álava, C/ Juan de la Cierva, 1 01510 Miñano Tel.: 945 29 70 32 Fax: 943 79 69 44 www.ikerlan.es ORONA IDeO - Innovation city Pol. Industrial Galarreta, Parcela 10.5, Edificio A3 20120 Hernani Tel.: 945 29 70 32 Fax: 943 79 69 44 IKERLAN Pº. J. Mª. Arizmendiarrieta, 2 20500 Arrasate-Mondragón Tel.: 943 71 24 00 Fax: 943 79 69 44 Questions? Email: aconde@ikerlan.es Thanks for your attention:

Editor's Notes

  1.     Deployment         CI/CD Netflix           Security (for the next talk)
  2.     Deployment         CI/CD Netflix           Security (for the next talk)
  3.     Deployment         CI/CD Netflix           Security (for the next talk)
  4.     Deployment         CI/CD Netflix           Security (for the next talk)
  5.     Deployment         CI/CD Netflix           Security (for the next talk)
  6.     Deployment         CI/CD Netflix           Security (for the next talk)
  7. Meíntn-ens
  8. Meíntn-ens
  9. Meíntn-ens
  10. Meíntn-ens
  11.     Deployment         CI/CD Netflix           Security (for the next talk)
  12.     Deployment         CI/CD Netflix           Security (for the next talk)
  13.     Deployment         CI/CD Netflix           Security (for the next talk)
  14.     Deployment         CI/CD Netflix           Security (for the next talk)
  15.     Deployment         CI/CD Netflix           Security (for the next talk)
  16.     Deployment         CI/CD Netflix           Security (for the next talk)
  17.     Deployment         CI/CD Netflix           Security (for the next talk)
  18.     Deployment         CI/CD Netflix           Security (for the next talk)
  19.     Deployment         CI/CD Netflix           Security (for the next talk)