CI/CD — How to level up your development flow

Image for post
Image for post
Photo by Kamal Joshi on Unsplash

“Releasing software is too often an art; it should be an engineering discipline.”

David Farley

You may have ended up here because you are already using CI/CD, but just in case let’s clarify a few key concepts.

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.

Continuous Delivery (CD) is the natural extension of CI, an approach in which teams ensure that every change to the system is releasable, and are able release any version with the push of a button.

Continuous Deployment removes the manual interaction in CD allowing shipping features faster.

Image for post
Image for post
by Josh

At Beamly we develop and manage multiple sites for well-known brands such as Max Factor, Rimmel London and Covergirl. Ensuring quality and stability in our products is a top priority, and CI/CD allows us to do so.

Let’s take a look at the tools that we use.

GoCD is an open-source Continuous Integration and Continuous Delivery system.

In fits our need really well and has great features — one of my favourites is the Value Stream Map (VSM) that helps you visualize your CI/CD workflow.

VSM allows you to see all the steps in the CI/CD process, from making a change in the code up until it’s deployed to production. This allows you to understand at a glance all the pieces that take part in the flow.

Image for post
Image for post
by GoDC

Terraform allows defining infrastructure as code, making it pretty easy to maintain and replicate configurations. You can manage resources of differents providers like AWS, Azure, Kubernetes, MySQL… and always having the code under version control. One of the best things about terraform is the ability to preview the changes that you are about to make using the terrafom plan command.

Something to watch out for:

With terraform, you’re able to create as many abstraction layers as you want, which can help you build infrastructure in no time. However sometimes it’s better to copy some of the code instead to replicate infrastructure. That way you can avoid ending up with a big black box of magic.

Beamly

Image for post
Image for post
by Beamly

In Beamly we use Terraform and GoCd together to manage our CI/CD workflow.

This is thanks to our platform team which has developed a gocd provider for terraform.

On top of that they have created some tools that allow the developers to replicate delivery flows (environments, pipelines, AWS resources …) for our applications with just a few lines of code.

The combination of these tools allows us to manage our infrastructure with fewer pain points for developers making our daily work easier and happier.

Conclusion

Hopefully this post will give you some overview on how we do things at Beamly and how you can improve your development workflow.

If you enjoyed reading this, we’d love to hear from you. And by the way, we’re growing our Product & Engineering team! If you’re passionate about creating cutting-edge consumer experiences and building scalable solutions, come join us by visiting https://www.beamly.com/#section-join-us.

Beamly

Powering brand results through data-driven consumer…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store