{"id":6228,"date":"2023-07-17T08:44:10","date_gmt":"2023-07-17T13:44:10","guid":{"rendered":"https:\/\/thebitbang.company\/?p=6228"},"modified":"2023-07-17T11:52:01","modified_gmt":"2023-07-17T16:52:01","slug":"que-es-ci-cd-y-por-que-es-importante","status":"publish","type":"post","link":"https:\/\/thebitbang.company\/en\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/","title":{"rendered":"What is CI\/CD and why is important the adoption of a DevOps culture"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"6228\" class=\"elementor elementor-6228\" data-elementor-settings=\"[]\">\n\t\t\t\t\t\t<div class=\"elementor-inner\">\n\t\t\t\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a81a633 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a81a633\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-864a484\" data-id=\"864a484\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-97ca1cd elementor-widget elementor-widget-heading\" data-id=\"97ca1cd\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\n<strong class=\"al\" style=\"color: #1D165C;\">Introduction<\/strong><\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-acf7e0c elementor-widget elementor-widget-text-editor\" data-id=\"acf7e0c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p>The goal of this post is to share with you some ideas and experiences we\u2019ve been collecting through the years working with customers and partners to deliver software that meets their business requirements on time.<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e803b62 elementor-widget elementor-widget-heading\" data-id=\"e803b62\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2><strong class=\"al\" style=\"color: #1D165C;\">Overcoming Bottlenecks and Embracing DevOps for Agile Software Development<\/strong><\/h2><\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1cd1448 elementor-widget elementor-widget-text-editor\" data-id=\"1cd1448\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p><\/p><p id=\"428d\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">The application of agile principles to develop software makes possible the incremental delivery of new features to the customers. But at some point we face bottlenecks to move these new features into production environments due the following reasons:<\/p><ol class=\"\"><li id=\"d70c\" class=\"lj lk fo ll b gm lm ln lo gp lp lq lr akw lt lu lv akx lx ly lz aky mb mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Missing dependencies when code is being prepared for production<\/li><li id=\"945f\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Environment configuration issues for each stage (dev, staging\/nonprod or production)<\/li><li id=\"1ccf\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Issues merging changes into the source code repository<\/li><li id=\"1135\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Bugs not detected on time by developers or testers<\/li><\/ol><p id=\"1c30\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">When these problems come up we start to batch up the changes to be moved to each stage (production stage is the most common one) this ends up in infrequent releases and removes the opportunity to receive feedback from users quickly.<\/p><p id=\"d0bd\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">Organizations could take an approach to implement more manual processes and constant collaboration between teams, but at some point this is going to reduce productivity and generate burnout in team members due the amount of time and meetings they will have to achieve results. At the end of the day automating the build, test and deployment steps helps to get the features done efficiently and quickly.<\/p><p id=\"a74c\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">The point is that apply a DevOps culture at the beginning could be really hard but there is an important quote related to this:<\/p><p id=\"9559\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\"><em class=\"no\">\u201cDevOps takes the view that if something is painful, you should do it more often\u201d<\/em><\/p><p><\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e7f4fe4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e7f4fe4\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f1ba61d\" data-id=\"f1ba61d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-468b5ba elementor-widget elementor-widget-heading\" data-id=\"468b5ba\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h2><strong class=\"al\" style=\"color: #1D165C;\">A brief context about DevOps and CI\/CD<\/strong><\/h2>\n\n\n\n<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85ff2f2 elementor-widget elementor-widget-text-editor\" data-id=\"85ff2f2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p><\/p><p id=\"abcb\" class=\"pw-post-body-paragraph lj lk fo ll b gm nj ln lo gp nk lq lr ls nl lu lv lw nm ly lz ma nn mc md me fh bj\" data-selectable-paragraph=\"\">Let\u2019s start by defining what <a href=\"http:\/\/http\/\/::thebitbang.company\/en\/lineas-de-negocio\/optimizacion-de-plataformas-tecnologicas\/\" data-wplink-url-error=\"true\">CI\/CD<\/a> is. Continuous Integration (CI) and Continuous Deployment\/Delivery (CD) are practices that automate the steps that must be performed to release new versions of software with the following advantages:<\/p><ol class=\"\"><li id=\"e308\" class=\"lj lk fo ll b gm lm ln lo gp lp lq lr akw lt lu lv akx lx ly lz aky mb mc md me akz ala alb bj\" data-selectable-paragraph=\"\">The software delivery to the clients can be achieved faster and efficiently<\/li><li id=\"6b07\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Reduce the time to publish the applications to the production environment<\/li><li id=\"9491\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">The code quality can be improved by including automatic tests and static code analysis tools<\/li><\/ol><h1 id=\"b18a\" class=\"alh mp fo be mq ug ali go mu uj alj gr my wq alk wr ws wt all wu wv ww alm wx wy aln bj\" data-selectable-paragraph=\"\"><strong class=\"al\">But, how does this happen?<\/strong><\/h1><p id=\"ea96\" class=\"pw-post-body-paragraph lj lk fo ll b gm nj ln lo gp nk lq lr ls nl lu lv lw nm ly lz ma nn mc md me fh bj\" data-selectable-paragraph=\"\">Continuous Integration reduces the risk of integration issues and improves code quality. Developers commit their changes to the codebase regularly and check whether the codebase still works when other developers are contributing. More than a technical component, Continuous Integration is a cultural component where developers learn good practices to integrate their changes frequently.<\/p><p id=\"043f\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">Therefore, we have integrated GitFlow in our software development workflow. It has helped us to apply good practices to work collectively, keep the history of our repositories consistent and reduce significantly the risk of integration issues and bugs introduction.<\/p><p id=\"7444\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\"><strong>These are some tools you need to apply the principles of CI:<\/strong><\/p><ol class=\"\"><li id=\"67d5\" class=\"lj lk fo ll b gm lm ln lo gp lp lq lr akw lt lu lv akx lx ly lz aky mb mc md me akz ala alb bj\" data-selectable-paragraph=\"\">A source or version control system to store your codebase<\/li><li id=\"7171\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Automated build scripts<\/li><li id=\"4e52\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Automated tests<\/li><li id=\"d35f\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Infrastructure (Virtual Machines) to run your tests and builds<\/li><\/ol><p id=\"5254\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\"><strong>A CI server has the following missions:<\/strong><\/p><ol class=\"\"><li id=\"4398\" class=\"lj lk fo ll b gm lm ln lo gp lp lq lr akw lt lu lv akx lx ly lz aky mb mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Monitor your repository looking for changes published by developers<\/li><li id=\"7591\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Run automated tests, if tests don\u2019t pass the changes won\u2019t be merged into the code base<\/li><\/ol><h1 id=\"8af8\" class=\"alh mp fo be mq ug ali go mu uj alj gr my wq alk wr ws wt all wu wv ww alm wx wy aln bj\" data-selectable-paragraph=\"\">Is continuous delivery the next step?<\/h1><p id=\"d958\" class=\"pw-post-body-paragraph lj lk fo ll b gm nj ln lo gp nk lq lr ls nl lu lv lw nm ly lz ma nn mc md me fh bj\" data-selectable-paragraph=\"\">After all steps of Continuous Integration have been completed, Continuous Delivery takes place. This practice automates some of the steps required to deliver our solutions to the production environment.<\/p><p id=\"86e9\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">Continuous delivery integrates a set of processes, tools and a culture of collaboration and continuous feedback to accomplish the mission. A change of mentality of your team is important to:<\/p><ol class=\"\"><li id=\"c644\" class=\"lj lk fo ll b gm lm ln lo gp lp lq lr akw lt lu lv akx lx ly lz aky mb mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Understand that your new feature is not done when the other team takes care of it. The feature is done when it has been released in production<\/li><li id=\"220a\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Create practices to better understand what is needed to deliver new features to users through the software development lifecycle<\/li><li id=\"8566\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me akz ala alb bj\" data-selectable-paragraph=\"\">Maintaining open communication with other teams, collaboration and feedback is very important<\/li><\/ol><p id=\"0333\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">Implementing a pipeline requires the identification of pain points and bottlenecks that could affect the delivery process, and implementing practices to detect bugs early is relevant. After you have identified these items, think about which ones can be automated (it is not mandatory to automate all of them), it is\u00a0<strong class=\"ll fp\">very very\u00a0<\/strong>relevant to manage some scenarios manually. This is what we call manual gates, some of them might be questionable, whereas some could be legitimate.<\/p><h2 id=\"32b4\" class=\"mo mp fo be mq mr ms mt mu mv mw mx my ls mz na nb lw nc nd ne ma nf ng nh ni bj\" data-selectable-paragraph=\"\">But what is a legitimate or questionable scenario?<\/h2><p id=\"26d2\" class=\"pw-post-body-paragraph lj lk fo ll b gm nj ln lo gp nk lq lr ls nl lu lv lw nm ly lz ma nn mc md me fh bj\" data-selectable-paragraph=\"\"><strong>Legitimate scenario:<\/strong><\/p><ul class=\"\"><li id=\"56ef\" class=\"lj lk fo ll b gm lm ln lo gp lp lq lr akw lt lu lv akx lx ly lz aky mb mc md me alo ala alb bj\" data-selectable-paragraph=\"\">Allows the business team to make a last-minute release decision. As examples we have: They have detected that some important feature is showing failures, monitoring alerts from dev or staging environments<\/li><li id=\"5ff0\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me alo ala alb bj\" data-selectable-paragraph=\"\">The business team makes the final decision to release the product to the customers, with all the approvals required<\/li><\/ul><p id=\"30fa\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\"><strong>Questionable scenario:<\/strong><\/p><ul class=\"\"><li id=\"abac\" class=\"lj lk fo ll b gm lm ln lo gp lp lq lr akw lt lu lv akx lx ly lz aky mb mc md me alo ala alb bj\" data-selectable-paragraph=\"\">Just don\u2019t apply the all-or-none approach, this is related to subsystems building a system. This means that when a subsystem deployment fails you have to roll back the deployment of the entire system<\/li><\/ul><p id=\"b32f\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">Another important step for continuous delivery is the definition of one stage almost equal to production to validate environment configurations and execute manual testing is helpful to advance with the security audit, find vulnerabilities and detect bugs early. You are going to have a lot of space to improve.<\/p><h1 id=\"88d3\" class=\"alh mp fo be mq ug ali go mu uj alj gr my wq alk wr ws wt all wu wv ww alm wx wy aln bj\" data-selectable-paragraph=\"\">What about continuous deployment?<\/h1><p id=\"7465\" class=\"pw-post-body-paragraph lj lk fo ll b gm nj ln lo gp nk lq lr ls nl lu lv lw nm ly lz ma nn mc md me fh bj\" data-selectable-paragraph=\"\">The final practice you can apply is continuous deployment where continuous integration and continuous delivery are taken to the extreme making this process entirely automated.<\/p><p id=\"4977\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">The code pushed by developers is automatically tested, built and deployed without any manual intervention. Big companies have adopted this practice including elements to validate the releases in production with help of their users and avoid potential unavailability of services:<\/p><ul class=\"\"><li id=\"cdc2\" class=\"lj lk fo ll b gm lm ln lo gp lp lq lr akw lt lu lv akx lx ly lz aky mb mc md me alo ala alb bj\" data-selectable-paragraph=\"\">Canary deployments: limits the deployment of new code to some users. This is important to detect failures, receive feedback and obtain some metrics like usage and resources consumption<\/li><li id=\"527e\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me alo ala alb bj\" data-selectable-paragraph=\"\">Blue\/Green deployments: The new code runs in parallel with the previous version, then you compare the metrics and behavior with the baseline and take the decision of completely deploying the new version or rolling back to the previous code<\/li><\/ul><h1 id=\"37ca\" class=\"alh mp fo be mq ug ali go mu uj alj gr my wq alk wr ws wt all wu wv ww alm wx wy aln bj\" data-selectable-paragraph=\"\">What are the recommended tools for CI\/CD?<\/h1><p id=\"e348\" class=\"pw-post-body-paragraph lj lk fo ll b gm nj ln lo gp nk lq lr ls nl lu lv lw nm ly lz ma nn mc md me fh bj\" data-selectable-paragraph=\"\">We don\u2019t want to create a ranking or something like that, thru the years we\u2019ve seen projects that have implemented solutions with these tools:<\/p><ul class=\"\"><li id=\"ed1f\" class=\"lj lk fo ll b gm lm ln lo gp lp lq lr akw lt lu lv akx lx ly lz aky mb mc md me alo ala alb bj\" data-selectable-paragraph=\"\"><a class=\"af np\" href=\"https:\/\/gitlab.com\/\" target=\"_blank\" rel=\"noopener ugc nofollow\">Gitlab<\/a><\/li><li id=\"140e\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me alo ala alb bj\" data-selectable-paragraph=\"\"><a class=\"af np\" href=\"https:\/\/www.jenkins.io\/\" target=\"_blank\" rel=\"noopener ugc nofollow\">Jenkins<\/a><\/li><li id=\"46fc\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me alo ala alb bj\" data-selectable-paragraph=\"\"><a class=\"af np\" href=\"https:\/\/github.com\/features\/actions\" target=\"_blank\" rel=\"noopener ugc nofollow\">Github Actions<\/a><\/li><li id=\"a816\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me alo ala alb bj\" data-selectable-paragraph=\"\"><a class=\"af np\" href=\"https:\/\/aws.amazon.com\/codepipeline\/\" target=\"_blank\" rel=\"noopener ugc nofollow\">AWS CodePipeline<\/a><\/li><li id=\"573e\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me alo ala alb bj\" data-selectable-paragraph=\"\"><a class=\"af np\" href=\"https:\/\/www.travis-ci.com\/\" target=\"_blank\" rel=\"noopener ugc nofollow\">Travis CI<\/a><\/li><li id=\"1164\" class=\"lj lk fo ll b gm alc ln lo gp ald lq lr akw ale lu lv akx alf ly lz aky alg mc md me alo ala alb bj\" data-selectable-paragraph=\"\"><a class=\"af np\" href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener ugc nofollow\">Circle CI-<\/a><\/li><\/ul><h1 data-selectable-paragraph=\"\">\u00a0<\/h1><h1 id=\"3c8f\" class=\"alh mp fo be mq ug ali go mu uj alj gr my wq alk wr ws wt all wu wv ww alm wx wy aln bj\" data-selectable-paragraph=\"\">Conclusion<\/h1><p>It is\u00a0<strong class=\"ll fp\">not<\/strong>\u00a0All-important to know every detail or the semantics about the differences between continuous integration, continuous delivery and continuous deployment. At this point you should be able to identify the concepts, steps, practices and benefits of starting with the implementation of this culture in your projects.<\/p><h1 id=\"a0ee\" class=\"alh mp fo be mq ug ali go mu uj alj gr my wq alk wr ws wt all wu wv ww alm wx wy aln bj\" data-selectable-paragraph=\"\">Finally\u2026<\/h1><p id=\"f23c\" class=\"pw-post-body-paragraph lj lk fo ll b gm nj ln lo gp nk lq lr ls nl lu lv lw nm ly lz ma nn mc md me fh bj\" data-selectable-paragraph=\"\">This post has been written with the support and collaboration of\u00a0<a class=\"af np\" href=\"https:\/\/www.linkedin.com\/in\/fernanda-jaramillo-trullo-079153224\" target=\"_blank\" rel=\"noopener ugc nofollow\">Fernanda Jaramillo<\/a>\u00a0and\u00a0<a class=\"af np\" href=\"https:\/\/www.linkedin.com\/in\/ihann-miguel-pascuas-cer%C3%B3n\/\" target=\"_blank\" rel=\"noopener ugc nofollow\">Ihann Pascuas<\/a>, Thanks to\u00a0<a class=\"af np\" href=\"https:\/\/www.linkedin.com\/company\/somosayte\" target=\"_blank\" rel=\"noopener ugc nofollow\">Ayt\u00e9<\/a>\u00a0and\u00a0<a class=\"af np\" href=\"https:\/\/www.linkedin.com\/company\/tbbcai\/\" target=\"_blank\" rel=\"noopener ugc nofollow\">TBBC<\/a>\u00a0for providing the tools and projects to validate these ideas.<\/p><p id=\"da3e\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\">All the best, don\u2019t hesitate to contact us if you have questions.<\/p><p id=\"b39e\" class=\"pw-post-body-paragraph lj lk fo ll b gm lm ln lo gp lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me fh bj\" data-selectable-paragraph=\"\"><em class=\"no\">Esteban Cer\u00f3n<\/em><\/p><p><\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Implementing CI\/CD Principles for Swift and Efficient Software Delivery. Streamline your processes and enhance code quality. Recommended tools include GitLab, Jenkins, and GitHub Actions.<\/p>\n","protected":false},"author":1,"featured_media":6243,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[106,1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CI\/CD: Automatiza y acelera la entrega de software<\/title>\n<meta name=\"description\" content=\"C\u00f3mo aplicar los principios de CI\/CD para una entrega r\u00e1pida y eficiente de software. Automatiza tus procesos y mejora la calidad del c\u00f3digo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CI\/CD: Automatiza y acelera la entrega de software\" \/>\n<meta property=\"og:description\" content=\"C\u00f3mo aplicar los principios de CI\/CD para una entrega r\u00e1pida y eficiente de software. Automatiza tus procesos y mejora la calidad del c\u00f3digo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/\" \/>\n<meta property=\"og:site_name\" content=\"The BitBang Company\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/bitbangcompany\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-17T13:44:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-17T16:52:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thebitbang.company\/wp-content\/uploads\/2023\/07\/Standard-DevOps-CICD.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1886\" \/>\n\t<meta property=\"og:image:height\" content=\"889\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"M.Sc. Javier Suarez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"M.Sc. Javier Suarez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/\"},\"author\":{\"name\":\"M.Sc. Javier Suarez\",\"@id\":\"https:\/\/thebitbang.company\/#\/schema\/person\/ffa15157e904a3495076d74b32670f11\"},\"headline\":\"What is CI\/CD and why is important the adoption of a DevOps culture\",\"datePublished\":\"2023-07-17T13:44:10+00:00\",\"dateModified\":\"2023-07-17T16:52:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/\"},\"wordCount\":2528,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/thebitbang.company\/#organization\"},\"articleSection\":[\"Technnical\",\"All\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/\",\"url\":\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/\",\"name\":\"CI\/CD: Automatiza y acelera la entrega de software\",\"isPartOf\":{\"@id\":\"https:\/\/thebitbang.company\/#website\"},\"datePublished\":\"2023-07-17T13:44:10+00:00\",\"dateModified\":\"2023-07-17T16:52:01+00:00\",\"description\":\"C\u00f3mo aplicar los principios de CI\/CD para una entrega r\u00e1pida y eficiente de software. Automatiza tus procesos y mejora la calidad del c\u00f3digo.\",\"breadcrumb\":{\"@id\":\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/thebitbang.company\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[:es]\u00bfQu\u00e9 es CI\/CD y por qu\u00e9 es importante adoptar una cultura de DevOps?[:en]What is CI\/CD and why is important the adoption of a DevOps culture[:]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/thebitbang.company\/#website\",\"url\":\"https:\/\/thebitbang.company\/\",\"name\":\"The BitBang Company\",\"description\":\"At TBBC, we materialize the business leaders&#039; vision by building software and data development solutions\",\"publisher\":{\"@id\":\"https:\/\/thebitbang.company\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/thebitbang.company\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/thebitbang.company\/#organization\",\"name\":\"The BitBang Company SAS\",\"url\":\"https:\/\/thebitbang.company\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/thebitbang.company\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/thebitbang.company\/wp-content\/uploads\/2023\/05\/TBBC-Anagrama-3.png\",\"contentUrl\":\"https:\/\/thebitbang.company\/wp-content\/uploads\/2023\/05\/TBBC-Anagrama-3.png\",\"width\":582,\"height\":499,\"caption\":\"The BitBang Company SAS\"},\"image\":{\"@id\":\"https:\/\/thebitbang.company\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/bitbangcompany\/\",\"https:\/\/www.instagram.com\/bitbang.company\/\",\"https:\/\/www.linkedin.com\/company\/bitbangcompany\/\",\"https:\/\/www.youtube.com\/channel\/UCG5jG0E-L90prxgv5YGJIOg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/thebitbang.company\/#\/schema\/person\/ffa15157e904a3495076d74b32670f11\",\"name\":\"M.Sc. Javier Suarez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/thebitbang.company\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/34d4dbeaa9cf0b78e4b1d31f469e5405?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/34d4dbeaa9cf0b78e4b1d31f469e5405?s=96&d=mm&r=g\",\"caption\":\"M.Sc. Javier Suarez\"},\"description\":\"Denouncing pleasure and praising pain was born and I will give you a work complete all account of the system and expound.\",\"sameAs\":[\"https:\/\/thebitbang.company\"],\"url\":\"https:\/\/thebitbang.company\/en\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CI\/CD: Automatiza y acelera la entrega de software","description":"C\u00f3mo aplicar los principios de CI\/CD para una entrega r\u00e1pida y eficiente de software. Automatiza tus procesos y mejora la calidad del c\u00f3digo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/","og_locale":"en_US","og_type":"article","og_title":"CI\/CD: Automatiza y acelera la entrega de software","og_description":"C\u00f3mo aplicar los principios de CI\/CD para una entrega r\u00e1pida y eficiente de software. Automatiza tus procesos y mejora la calidad del c\u00f3digo.","og_url":"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/","og_site_name":"The BitBang Company","article_publisher":"https:\/\/www.facebook.com\/bitbangcompany\/","article_published_time":"2023-07-17T13:44:10+00:00","article_modified_time":"2023-07-17T16:52:01+00:00","og_image":[{"width":1886,"height":889,"url":"https:\/\/thebitbang.company\/wp-content\/uploads\/2023\/07\/Standard-DevOps-CICD.webp","type":"image\/webp"}],"author":"M.Sc. Javier Suarez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"M.Sc. Javier Suarez","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/#article","isPartOf":{"@id":"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/"},"author":{"name":"M.Sc. Javier Suarez","@id":"https:\/\/thebitbang.company\/#\/schema\/person\/ffa15157e904a3495076d74b32670f11"},"headline":"What is CI\/CD and why is important the adoption of a DevOps culture","datePublished":"2023-07-17T13:44:10+00:00","dateModified":"2023-07-17T16:52:01+00:00","mainEntityOfPage":{"@id":"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/"},"wordCount":2528,"commentCount":0,"publisher":{"@id":"https:\/\/thebitbang.company\/#organization"},"articleSection":["Technnical","All"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/","url":"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/","name":"CI\/CD: Automatiza y acelera la entrega de software","isPartOf":{"@id":"https:\/\/thebitbang.company\/#website"},"datePublished":"2023-07-17T13:44:10+00:00","dateModified":"2023-07-17T16:52:01+00:00","description":"C\u00f3mo aplicar los principios de CI\/CD para una entrega r\u00e1pida y eficiente de software. Automatiza tus procesos y mejora la calidad del c\u00f3digo.","breadcrumb":{"@id":"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/thebitbang.company\/2023\/07\/que-es-ci-cd-y-por-que-es-importante\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thebitbang.company\/"},{"@type":"ListItem","position":2,"name":"[:es]\u00bfQu\u00e9 es CI\/CD y por qu\u00e9 es importante adoptar una cultura de DevOps?[:en]What is CI\/CD and why is important the adoption of a DevOps culture[:]"}]},{"@type":"WebSite","@id":"https:\/\/thebitbang.company\/#website","url":"https:\/\/thebitbang.company\/","name":"The BitBang Company","description":"At TBBC, we materialize the business leaders&#039; vision by building software and data development solutions","publisher":{"@id":"https:\/\/thebitbang.company\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thebitbang.company\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/thebitbang.company\/#organization","name":"The BitBang Company SAS","url":"https:\/\/thebitbang.company\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thebitbang.company\/#\/schema\/logo\/image\/","url":"https:\/\/thebitbang.company\/wp-content\/uploads\/2023\/05\/TBBC-Anagrama-3.png","contentUrl":"https:\/\/thebitbang.company\/wp-content\/uploads\/2023\/05\/TBBC-Anagrama-3.png","width":582,"height":499,"caption":"The BitBang Company SAS"},"image":{"@id":"https:\/\/thebitbang.company\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/bitbangcompany\/","https:\/\/www.instagram.com\/bitbang.company\/","https:\/\/www.linkedin.com\/company\/bitbangcompany\/","https:\/\/www.youtube.com\/channel\/UCG5jG0E-L90prxgv5YGJIOg"]},{"@type":"Person","@id":"https:\/\/thebitbang.company\/#\/schema\/person\/ffa15157e904a3495076d74b32670f11","name":"M.Sc. Javier Suarez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thebitbang.company\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/34d4dbeaa9cf0b78e4b1d31f469e5405?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34d4dbeaa9cf0b78e4b1d31f469e5405?s=96&d=mm&r=g","caption":"M.Sc. Javier Suarez"},"description":"Denouncing pleasure and praising pain was born and I will give you a work complete all account of the system and expound.","sameAs":["https:\/\/thebitbang.company"],"url":"https:\/\/thebitbang.company\/en\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/posts\/6228"}],"collection":[{"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/comments?post=6228"}],"version-history":[{"count":16,"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/posts\/6228\/revisions"}],"predecessor-version":[{"id":6246,"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/posts\/6228\/revisions\/6246"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/media\/6243"}],"wp:attachment":[{"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/media?parent=6228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/categories?post=6228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thebitbang.company\/en\/wp-json\/wp\/v2\/tags?post=6228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}