More Related Content
Similar to Continous Delivery and Continous Integration at IKERLAN (20)
More from Angel Conde Manjon (6)
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
- 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.
- 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
- 11. ©2017 IKERLAN. All rights reserved
Issues: a great way to keep track of tasks, enhancements,
and bugs for your projects.
- 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.
- 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
- 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”.
- 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
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Meíntn-ens
- Meíntn-ens
- Meíntn-ens
- Meíntn-ens
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)
- Deployment CI/CD Netflix Security (for the next talk)