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

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
Cohesive Networks
 
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
Weaveworks
 
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
 

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

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
 

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 (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

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Recently uploaded (20)

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 

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)