1

I might be missing something but I do not get why in the commonly described worklow the Build follows the Code phases. I mean, isn't it the other way around? We code, we integrate the changes, build it, test it..

The picture is for example on the site below:

http://www.bmc.com/blogs/continuous-delivery-continuous-deployment-continuous-integration-whats-difference/

  • You program something. Start your build system that runs your unit tests and creates your dlls. Deploy it on a test environment and test it. And finally deploy it to a customer environment. – Carra Mar 6 '18 at 9:08
  • But how can "integrate" be after the build? – John V Mar 6 '18 at 9:10
  • What do you think "integrate" and "build" means? – Laiv Mar 7 '18 at 7:39
  • @Laiv That depends, integrate might mean integration my commited changes in the branch. Which is subsequently built. – John V Mar 7 '18 at 9:19
  • You are looking at "integration" from the developer (from the ground) point of view. Not from the DevOps point of view (from the top). Integrations happen in different levels and phases of the SDLC. The one mentioned here refers to integrations among other systems. Interoperability. Nothing to do with code base or repositories. – Laiv Mar 7 '18 at 9:31
9

I write some code, then I build it (compile it) then I run the tests. This happens on my local machine. That's the "code & build" phase in that diagram.

Then I check my code in to a central repository, triggering a remote build and remote testing. I have now performed a "doesn't just work on my machine" test. I've "integrated" my code into a central repository, thus it's the "integration" phase.

Ultimately though, a lot of this is just semantics. A great many IT processes still refer to the entire "code, compile, test, repeat" cycle as "build". The diagram you link to doesn't show testing on the local machine, nor does it show "build" on the build server.

So take such diagrams with a pinch of salt and don't lose sleep over them. If you feel you are "missing something" when looking at such a diagram, just remember that it'll likely boil down to you using a slightly different semantic model to describe such things to what the author has used.

2

This depends on what kind of system one has in mind, and what "integrate" means in that system. When talking about continous deployment and delivery, the 99% scenario are web application systems. Depending on used languages and architecture, there may be compilable components which have to be build first before they can get integrated into the web application. The integration step then contains putting them in the right place on the web server, as well as an integration test.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.