why-cicd

Do you want to deploy your Shiny web application like a pro? Do you want to improve project collaboration and feel confident going to production?

Let us tell you few good reasons why you should embrace CI/CD for your DevOps!


DataScience

CI/CD, Continuous Integration and Continuous Deployment go hand in hand and are typically visualized as a pipeline, which consists of a process, enforcing automation. It’s the modern way of doing DevOps.

1. Consistency

The pipeline is reliable. That comes with a process standardization, which increases transparency and visibility, and finally improves the collaboration within the team. In practice, developers integrate their code in a shared repository, where it gets automatically verified.

2. Version Control and branching

GitFlow is a popular and successful branching model that enables collaborative, controlled development and releases, assuring safety and quality of the released product. According to the GitFlow approach, the central repository holds two main branches with an infinite lifetime:

  • master: reflects a production-ready state.
  • develop: reflects a state with the latest delivered developments for the next release.

In addition, the central repository holds specific purpose branches: feature, release, hot-fix.

The developers develop and test new code locally on a specific branch. When ready, they push the commits to the central repository, where unit & integration tests are performed. No errors detected? then there is green light to merge into the develop branch and potentially you are ready for a production release (merge to master).

3. Environment and dependencies

Development and testing should be done on production-like environments. Facilitate collaboration, be confident and avoid bad surprises in production.

4. Automation

Builds and testing are done in an automated way. The Open-source hosted continuous integration service Travis CI, for example, automates package-level checks triggered upon any push event and pull requests on the GitHub repository. Automation frees up time for the developers to focus on concrete product development.

5. Test

Continuous testing is integrated and usually consists of unit, regression and performance tests.

6. Quality

Consistency, automation and testing improve drastically the quality of the delivery, by limiting errors and catching them at early stages.

7. Velocity

Streamlined pipelines speed-up delivery, making it easier to deploy more frequently. It’s a big advantage, favoring innovation and increasing your chances to compete in the versatile market.

8. Agile framework

GitFlow fits well with Agile frameworks. During a development cycle, a set of issues is worked on according to prioritization. At the end of each iteration, it is possible to perform a release and push a development increment onto production. Each feature gets inspected and receives feedback before each release, keeping the final product always up to date with the end-user needs.

You are welcome to check our techguides on CI/CD topic, to get technical details.


Download infographic

Share on: