Color LogoLoading...

🌍 Feed

✍🏿 Compose

Promesse

Promesse Kayenga

posted on May 20, 2021

Continuous Delivery vs Continuous Deployment vs Continuous Integration: Key Definitions

#software development
In today’s modern software development world, continuous delivery, continuous deployment and continuous integration have become widespread but their definitions are often confused and consequently they can be misused.

It’s a hot topic of discussion and many books have even been written about this particular subject. In this post, we define each process and we explain how they can all work together so business stakeholders, software developers and project managers  alike can work harmoniously in one integrated environment.

Continuous Integration

Continuous integration is the practice of constantly merging development work with a Master/Trunk/Mainline branch so that you can test changes and test that those changes work with other changes.  The idea here is to test your code as often as possible so you can catch issues early on.  In the continuous integration process, most of the work is done by an automated tests technique which requires a unit test framework.  It is best practice to have a build server designed specifically for performing these tests so your development team can continue merging requests even while tests are being performed.

Continuous Delivery

Continuous delivery is the continual delivery of code to an environment once the developer feels the code is ready to ship - this could be UAT, staging or production.  The idea behind continuous delivery is that you’re constantly delivering code to a user base, whether it be QA or directly to customers for continual review and inspection.  Although similar to continuous integration, continuous delivery differs because it can feed business logic tests where unit tests are unable to catch all business logic, particularly design issues. In this process, you may also be delivering code for code review which may be batched for release or not until after the UAT or QA is done.

The basis of continuous delivery is to have small batches of work continually fed to the next step so it can be consumed more easily and issues can be found early on.  This process is typically is easier for developers because issues come to light before the task has left their memory.

Continuous Deployment

Continuous deployment is the deployment or release of code to production as soon as it’s ready.  There is no large batching in staging nor a long UAT process before production.  Any testing is done prior to merging to the Mainline branch and is performed on production-like environments.  The production branch is always stable and ready to be deployed by an automated process.  The automated process is key because it should be able to be performed by anyone in a matter of minutes (preferably by the press of a button).  After a deploy, logs must be inspected to determine if your key metrics are affected, positively or negatively.  Some of these metrics may include revenue, user sign-up, response time or traffic and preferably these metrics are graphed for easy consumption.

The key feature of the continuous deployment process is that it requires continuous integration and continuous delivery because without, you’re guaranteed to get errors in the release.

How They Work Together

Once you’ve moved to a continuous deployment process, you’ll need to have several pieces of automation in place.  You must automate your continuous integration build server and continuous delivery to staging, as well as have the ability to automatically deploy to production.



 


In the ideal workflow, the entire process could be automated from start to finish:

Step 1:  Developer checks in code to development branch.

Step 2: Continuous integration server picks up the change, merges it with     Master/Trunk/Mainline, performs unit tests and votes on the merge to staging environment based on test results.

Step 3. If Step 2 is successful, developer deploys it to the staging environment and QA tests the environment.

Step 4. If Step 3 passed, you vote to move to production and the continuous integration server picks this up again and determines if it’s ok to merge into production.

Step 5. If Step 4 is successful, it will deploy to production environment.

This process varies slightly based on needs, requirements and approaches.

Continuous deployment relies on small changes which are constantly tested, deployed and released to production immediately upon verification.  The ownership of the code from development to release must be controlled by the developer and must be free flowing.  The automation of steps allows this process to be implemented and executed without cumbersome workflows.

Key Tools & Best Practices

We at Assembla use the continuous deployment approach and serve many customers that use this approach as well. With the ability to manage tasks and code in one place, Assembla was designed to support this methodology. To help your team run more efficiently, here are key tools we recommend using:

  • Jenkins. We love Jenkins here at Assembla. As your team adopts new services, maintaining users and permissions can become difficult to manage. The  Assembla Auth plugin for Jenkins enables OAuth authentication for Assembla users to Jenkins instance using your Assembla credentials and delegates the authorization to your project’s space permissions.
  • Automated testsuites for the technologies you are using, for example Rspec and Jasmine.
  • Version control systems like Git, Subversion or Perforce.
  • Desktop Subversion and Git Clients like Cornerstone
  • Code reviews like Github pull requests or Assembla merge requests, etc.
  • Deployment & staging setup scripts like Capistrano, Shipit, Fabric, etc.
  • Integrations with collaboration tools you’re already using like Slack so you can deploy via commands directly in your channel.

Need Help?

Assembla has been around over 10 years helping software development teams launch projects. We have a lot of knowledge in the area of the agile methodology not only because we use it ourselves but we also speak to dozens of teams trying to streamline their workflows, removing inefficiencies that causes project delays.

If you would like to ask us questions specific to your use case, please fill out the form below and we’re happy to help you tackle your project workflow challenges.

Top comments(0)

SEND

You may like this too...

TechCabal

Kobo360, the logistics powerhouse backed by Goldman Sachs, is rolling out HaulSight—an innovative fleet management software designed to help Africa’s major manufacturers streamline operations, track vehicles, and cut costs in real-time. With rising fuel prices squeezing margins, HaulSight presents an efficient way for companies like Dangote and Unilever to maximize fleet potential. Will this be a game-changer for Africa's logistics industry?
Nov 11, 2024

Disrupt-Africa

Chumz, a Kenyan fintech that enables users to set savings goals with mobile money, has reached 200,000 users and is testing its services in Rwanda. With unique prompts encouraging behavior-based saving, Chumz empowers users with accessible financial tools. Expansion plans target 1 million users across East Africa by 2026.
Nov 6, 2024

Bird Story Agency

As more and more services move online across Africa, giant players like Safaricom, MTN and Airtel are stepping up their efforts to provide Africa with large, green-energy data centres.
Nov 4, 2024

Bird Story Agency

Africa's Gen Zs, promised opportunity, innovation and new technology but faced with the very real world of a workplace in flux, constrained labour markets, high inflation and increasing criticism of their work ethic, are finding very little to cheer about. So a growing number of African universities are stepping in, hoping to bridge the gap between academic qualifications and real-world demands.
Nov 3, 2024

TechCabal

🌍 Access Bank secures the green light to acquire Kenya's National Bank, expanding its reach across East Africa’s largest economy. With an estimated $100 million deal, Access Bank will increase its footprint to 77 branches across 28 counties. Here’s what this move means for Kenya’s banking sector! 💸
Oct 31, 2024

Disrupt-Africa

Nigerian fintech leader Moniepoint has secured $110 million in Series C funding to supercharge its digital banking platform for businesses across Africa. With a track record of innovation and impact, Moniepoint is poised to transform financial access on the continent, bringing seamless banking, payments, and credit services to millions.
Oct 29, 2024

TechCabal

Stanbic Bank Kenya has completed a major upgrade of its core banking software, aiming for enhanced security and improved user experience. Despite brief service disruptions, the bank’s transition to the latest technology signals a drive for modernized banking in a competitive market.
Oct 27, 2024

TechCabal

Kenya is set to revolutionize its financial landscape with the introduction of a new Fast Payment System (FPS). This cutting-edge platform will ensure seamless transactions between banks and fintechs, eliminating existing barriers. The FPS promises to enhance accessibility, making financial services more convenient for all Kenyans.
Oct 18, 2024

TechCrunch

🌍 From humble beginnings in Africa, InstaDeep has grown into a global AI powerhouse. In just over a year under BioNTech’s umbrella, the startup continues to drive innovation in biotech and beyond. CEO Karim Beguir reveals how InstaDeep’s cutting-edge AI is revolutionizing healthcare and industrial optimization alike.
Oct 15, 2024

TechCabal

M-KOPA, a Kenyan fintech giant known for financing solar systems and smartphones, has appointed former Nokia CEO Rajeev Suri as its new board chair. As the company gears up for rapid expansion, Suri's leadership is set to guide M-KOPA into a new era of growth and innovation. With over 5 million users across Africa, M-KOPA is reshaping digital and financial inclusion.
Oct 14, 2024
Home
Business Hub
Market Hub
You
By signing up you agree to ourTerms|About us|Market Hub|Business Hub|Deals Hub