Sunday, April 1, 2018

ALM, DevOps, CI, CD and more CD. Life is one and it is a carnival ...

Hi folk,

I am currently involved in a cloud computing service project using the DevOps solution of IBM Cloud for the management applications, which is known as ALM (Application Lifecycle Management)

Like all of us who dedicate ourselves to this wonderful and "logical" world of computing, we constantly use terms like ALM, DevOps, Continuous Integration, Continuous Delivery and Continuous Deployment.

All these terms are like a masks carnival that everything seems the same but it is not.



Do we really know its meaning?

I will try to summarize the meaning of each of the terms in this post in a "logical" and simple way.

ALM (Application Lifecycle Management)


Process of incorporating, coordinating and monitoring all the activities necessary for the creation of a software solution or application, from the birth of the need, going through its definition, development, testing, deployment and maintenance.

DevOps (Development + Operations)


It is an agile use practice that focuses on collaboration and effective communication between departments to achieve maximum collaboration and integration between software development and operations without forgetting the business and testing. The tools that use this practice of use what they do is eliminate different walls between departments, so that there are no dead times between the development and the execution environments.

CI (Continuous integration)


It is a software development discipline that usually refers mostly to the automation of integration, construction and frequent testing in our development environment. CI tries to avoid integration errors that usually occur when developers integrate new changes.

CD (Continuous Delivery)


It is a software development discipline in which it is built in such a way that the software can be released into production at any time. It is an extension of CI that does not necessarily imply that a version is released each time there is a change. There is a human intervention who must make the decision to release the change. In agile practice is the "Product Owner", or in other words, responsible for the business.

CD (Continuous Deployment)


It is a software development discipline with which every change that passes all stages of its production chain is released to its customers. There is no human intervention, and only a failed test will prevent a new change in production from being implemented. Continuous implementation goes one step beyond continuous delivery.

So?


Therefore it is understood that any ALM process can have agile practices using different DevOps context tools to ensure that the different software disciplines CI (Continuous integration), CD (Continuous Delivery) and CD (Continuous Deployment) guarantee:

  • Less errors in programming
  • Easy version construction
  • Tests are reduced
  • The complexity of the deployment is reduced
  • There is less pressure when making changes to the versions
  • It can develop more quickly
  • Customers can see the continuous progress of quality tasks

What a carnival of terms!

We put it all together and as Maluma says:

"You do not have to suffer, you do not have to cry, life is one and it's a carnival"

Happy Sunday to all!!!!