Showing posts with label Continuous Integration. Show all posts
Showing posts with label Continuous Integration. Show all posts

What is Jenkins?

What is Jenkins?

Jenkins is an cross-platform, continuous integration and continuous delivery application.

Used to :
  • build and test your software projects continuously
  • continuously deliver your software 
Advantages : 
  • free source that can handle any kind of build or continuous integration
  • can integrate Jenkins with a number of testing and deployment technologies
  • cross-platform
Features:
  • Easy installation
  • Easy configuration
  • Rich plugin ecosystem
  • Extensibility
  • Distributed builds 
 

Continuous Integration

Continuous Integration (CI) is a development practice that requires 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 problems early.

Teams practicing continuous integration seek two objectives:
  • minimize the duration and effort required by each integration episode
  • be able to deliver a product version suitable for release at any moment
Advantages:
  • By integrating regularly, you can detect errors quickly, and locate them more easily.
  • Because you’re integrating so frequently, there is significantly less back-tracking to discover where things went wrong, so you can spend more time building features.
  • A continuous integration approach ensures that the project is always ready to use.
 The continuous integration process involves multiple parts working together to accomplish the desired goals. The following are some of the primary parts of a continuous integration system.

  • Source Control
  • Build Server
  • Automated Tests
  • Notifications
  • Build Publishing 


Tools for CI:
  • Jenkins
  • Buildbot
  • Travis CI
  • Strider
  • Integrity

What is DevOps?

DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.

Devops Engineer use a technology stack and tooling which help them operate and evolve applications quickly and reliably. These tools also help engineers independently accomplish tasks that normally would have required help from other teams, and this further increases a team’s velocity.

 Benefits of Devops:
  • Speed
  • Rapid Delivery
  • Reliability
  • Scale 
  • Improved Collaboration
  • Security
Best Devops Practices:
  • Continuous Integration
  • Continuous Delivery
  • Micro-services
  • Infrastructure as code
  • Configuration as management
  • Policy as code
  • Monitoring and Logging
  • Communication and collaboration
 Devops Tools:
  • Jenkins
  • Chef/Puppet
  • AWS
  • Python programming
  • Linux shell programming