Continuous Integration

Continuous Integration (CI) is a software development practice where team members integrate their work frequently (at least daily), usually with one of version-control systems. Each integration is verified by an automated build, including test, to detect and fix errors as quickly as possible.

CI imposes some task planning discipline on programming terms in order to maximize working efficiency. For example, a new integration build should never be in a broken state or left unintegrated at the end of the day. It means that you should definitely have a documented development process with all the aspects related to deployment workflow and continuous integration in particular.

Benefits of Continuous Integration
  • Clean, reliable and robust code
  • Iterative approach for development process
  • Reduced number of code errors
  • Increased speed of deployments
  • More effective feedback between developers and customers

IT Svit established a well-tried and time-tested Continuous Integration approach that delivers tangible outcomes and has already been highly appreciated by our customers. At this moment, the main tools and services we are using in our work are the following:

  • OpenStack
  • ProxMox
  • AWS
  • Cloud platforms
  • Docker (incl. Docker Swarm)
  • Ansible
  • Puppet
  • Chef
  • Kubernetes
  • Jenkins
  • JMeter

Moreover, IT Svit created its own custom CI/CD solution (the Provisioning system) aimed at launching new development instances in just a few clicks, thus simplifying and speeding up the whole process. The Provisioning System can be used either separately as the main tool or in conjunction with other tools to create a fully-featured and fault tolerant continuous integration environment.