5 CICD
BootcampBestitconsulting/Bootcamp2021-02-16
🪕 BestITConsulting Continue Integration and Delivery Pipeline
Continue Integration (CI)is a development practice that require developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect probelms early.
Continuous Delivey (CD)is a software engineering approach in which teams keep producting valable software in short cycles and ensure that the software can be reliably released at any time.
Continuous Delivery (CD) = Continuous Integration (CI) + Complex automated testing + automated deployment
🪕 The Main CD principles
- Create development process
- Every change must be integrated
- Ready to release in any time
- The automatic, static, integration tests must be included
- Catch defects as early as possible
CI System based on BestITConsulting internal services.
Jenkins - the CI assistant for building, Version Control service for storing codes, Sonar for code verification and static code analysis and Atifactory for saving the binary entities or downloading the dependencies.
Jenkins - CI/CD system
Sonar - static code inspection tool SonarQube
artifactory - service for storing binary files
Blackduck - license, vulnerability audit.
Crucible - code review system
Checkmarx - security issue
Confluence - Knowledge Base
JIRA - project management
🪕 Jenkins competitor
Atlassian Bamboo
TeamCity
Travis CI
CI Automated Build tools
Continueous Delivery tools
🪕 Docker
- in container use only *nix OS
- LXC (Linux )
COntinuous Configuration Management
Ansible
- No need to install clients, Ansible work by SSH
- Manage machines in parallel
- Describe infrastructure in a language that is both machine and human friendly
- Infrastructure as Code
- Support only *nix like OS
Chef
- Infrastructure as a Code
- Client-server
- Console / Web management interface
- Cross platform
Chief competitor is Puppet.
Puppet
Git / GitLab
Bamboo: Bamboo is a continuous integration and deployment tool that ties automated builds, tests and releases together in a single workflow.
- Teamcity
- TravisCI
- TFS (Team Foundation Server)
- GoCD
- Build Tools: Ant, Maven, Grunt
