<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Industrialization Archives - OVHcloud Blog</title>
	<atom:link href="https://blog.ovhcloud.com/tag/industrialization/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ovhcloud.com/tag/industrialization/</link>
	<description>Innovation for Freedom</description>
	<lastBuildDate>Mon, 03 Jul 2023 08:22:24 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.ovhcloud.com/wp-content/uploads/2019/07/cropped-cropped-nouveau-logo-ovh-rebranding-32x32.gif</url>
	<title>Industrialization Archives - OVHcloud Blog</title>
	<link>https://blog.ovhcloud.com/tag/industrialization/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Life cycle policies</title>
		<link>https://blog.ovhcloud.com/life-cycle-policies/</link>
		
		<dc:creator><![CDATA[Fabien Bagard]]></dc:creator>
		<pubDate>Tue, 07 Dec 2021 10:00:00 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Industrialization]]></category>
		<category><![CDATA[Life cycle]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=21091</guid>

					<description><![CDATA[At OVHcloud our motto is &#8220;Innovation for freedom&#8221;. OVHcloud is powered by passionate people trying to stay at the state of the art of technologies. But many things slow innovation: handling legacy is one of them. One way to tackle that is to define and follow good life cycle policies. What is a life cycle [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Flife-cycle-policies%2F&amp;action_name=Life%20cycle%20policies&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<p>At OVHcloud our motto is &#8220;Innovation for freedom&#8221;. OVHcloud is powered by passionate people trying to stay at the state of the art of technologies. But many things slow innovation: handling legacy is one of them.</p>



<p>One way to tackle that is to define and follow good life cycle policies.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" src="https://blog.ovhcloud.com/wp-content/uploads/2021/12/IMG_0705-1024x537.png" alt="Life cycle policies" class="wp-image-21445" width="512" height="269" srcset="https://blog.ovhcloud.com/wp-content/uploads/2021/12/IMG_0705-1024x537.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2021/12/IMG_0705-300x157.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2021/12/IMG_0705-768x403.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2021/12/IMG_0705.png 1200w" sizes="(max-width: 512px) 100vw, 512px" /></figure></div>



<h3 class="wp-block-heading" id="Lifecycles-Whatisalifecyclepolicy">What is a life cycle policy</h3>



<p>A life cycle policy is a set of guidelines, written documents, describing the different steps in a product&#8217;s life, including its end of life.</p>



<h3 class="wp-block-heading" id="Lifecycles-Whyyoushouldhavealifecyclepolicy">Why you should have a life cycle policy</h3>



<p>When you read the news, it is not uncommon to hear from here and there that company XYZ got hacked through an old software, outdated for ages.</p>



<p>Having a good life cycle policy guarantees you never have to deal with outdated software. It defines when you must upgrade your software and when you must stop using an old version and migrate to a new one.</p>



<p>Benefits are multiple:</p>



<ul class="wp-block-list"><li>You don&#8217;t have to rely on unmaintained software</li><li>You reduce attack perimeter, as newer versions have security patches applied</li><li>You benefit from new versions&#8217; features, allowing you to accelerate innovation</li></ul>



<p>Of course there are downsides. The biggest one is having to stick with it. A life cycle policy is a written document and as such has value only if people read it and apply its recommendations.</p>



<h3 class="wp-block-heading" id="Lifecycles-Whyyoushouldautomateit">Why you should automate it</h3>



<p>A wise man once told &#8220;A good sysadmin is a sysadmin doing nothing&#8221;. Not because he is lazy, nor because he is bad at his job and got his credentials revoked, but because he automates all painful tasks, to focus on tasks with added value.</p>



<p>It also removes one major cause of errors: the human factor. An automated job will never mistype a command line or click on the `destroy` button, instead of the `upgrade` one.</p>



<p>Last but not least, it is a good way to make sure your carefully crafted document is not redirected to `/dev/null` in the following months.</p>



<p>Bonus: you also free a lot of time to automate new things !</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" src="https://blog.ovhcloud.com/wp-content/uploads/2021/12/livecycle-1024x270.png" alt="Live cycle" class="wp-image-21437" width="768" height="203" srcset="https://blog.ovhcloud.com/wp-content/uploads/2021/12/livecycle-1024x270.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2021/12/livecycle-300x79.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2021/12/livecycle-768x202.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2021/12/livecycle.png 1105w" sizes="(max-width: 768px) 100vw, 768px" /></figure></div>



<h3 class="wp-block-heading" id="Lifecycles-Howwedidit">How we did it</h3>



<p>Our policy on cloud databases (available here: <a href="https://docs.ovh.com/gb/en/clouddb/managed-db-life-cycle-policy/" data-wpel-link="exclude">https://docs.ovh.com/gb/en/clouddb/managed-db-life-cycle-policy/</a>) forces us to warn our customers at least 30 days before a major upgrade by e-mail. This email contains the day the upgrade will take place on.<br>We also have an internal mechanism allowing our customers to upgrade by themselves, using our API.<br>Combining these two bricks were all we had to do, with minor adjustments:</p>



<ul class="wp-block-list"><li>When sending a email, we keep track of the planned date of the operation.</li><li>An automated job is triggered every day, checking what operations are due this day and launching them.</li></ul>



<p>Almost everyday, our job realises there is no major upgrade planned and goes back to sleep. But if a single operation is found, this job calls our API, triggering this upgrade. No human needed.</p>



<p>This process is very simple, yet very effective. We already had all the building blocks ready, from sending an email to API calls for major upgrades. All we had to do was to link all these operations together in a nice workflow. This allow us a very fine tuning of how many operation we want being done everyday, down to the instance.</p>



<p>Want to try the process for the first time ? Easy, trigger it on one of our test instance.<br>Is this process reliable and scalable ? Enough to upgrade a batch of 10 000 instances in 30 days with no human intervention !</p>



<h2 class="wp-block-heading">One last word on an automated life-cycle policy</h2>



<p>At Web Cloud Databases, with thousands of instances, 4 different DBMS and a total of 12 major versions, automation is the key.</p>



<p>In May 2021, for this process&#8217; firsts steps in this world, we upgraded 6K instances in a week. The only human interaction needed was to launch a script to inform all affected customers.</p>



<p>Figures of this use-case ? 6000+ instances updated, 0 website down, 1 human needed for 5 minutes.</p>
<img decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Flife-cycle-policies%2F&amp;action_name=Life%20cycle%20policies&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Continuous Delivery and Deployment Workflows with CDS</title>
		<link>https://blog.ovhcloud.com/continuous-delivery-and-deployment-workflows-with-cds/</link>
		
		<dc:creator><![CDATA[Yvonnick Esnault]]></dc:creator>
		<pubDate>Fri, 01 Mar 2019 12:38:13 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[CDS]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Industrialization]]></category>
		<guid isPermaLink="false">https://blog.ovh.com/fr/blog/?p=14718</guid>

					<description><![CDATA[The CDS Workflow is a key feature of OVH CI/CD Platform. This structuring choice to add an additional concept above CI/CD pipelines and jobs is definitely an essential feature after more than three years of intense use.

Before going further on the explanation of a CDS workflow, we will make some reminders about the concepts of pipelines and jobs. Those concepts are based on the reference book 8 Principles of Continuous Delivery.<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fcontinuous-delivery-and-deployment-workflows-with-cds%2F&amp;action_name=Continuous%20Delivery%20and%20Deployment%20Workflows%20with%20CDS&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<p>The CDS Workflow is a key feature of the OVH CI/CD Platform. This structural choice adds an additional concept above&nbsp;CI/CD&nbsp;pipelines and jobs, and after&nbsp;more than three years of intensive use, is definitely an essential feature.</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2019/02/DE383951-7D79-4320-BB30-5EAE0F8186E5-1024x354.jpeg" alt="Continuous Delivery and Deployment Workflows with CDS" class="wp-image-14861" width="768" height="266" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/DE383951-7D79-4320-BB30-5EAE0F8186E5-1024x354.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/DE383951-7D79-4320-BB30-5EAE0F8186E5-300x104.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/DE383951-7D79-4320-BB30-5EAE0F8186E5-768x266.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/DE383951-7D79-4320-BB30-5EAE0F8186E5-1200x415.jpeg 1200w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/DE383951-7D79-4320-BB30-5EAE0F8186E5.jpeg 1529w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure></div>



<p>Before delving into a full explanation of CDS workflows, let&#8217;s review some of the key concepts behind pipelines and jobs.&nbsp;Those concepts are drawn from the reference book,&nbsp;<a href="https://devopsnet.com/2011/08/04/continuous-delivery/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">8 Principles of Continuous Delivery</a></p>



<h3 class="wp-block-heading"><span class="TextRun SCXW16074631" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW16074631">The basic element: “The job”</span></span><span class="EOP SCXW16074631" data-ccp-props="{&quot;335559738&quot;:40}">&nbsp;</span></h3>



<p><span class="TextRun SCXW21425026" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW21425026">A job is composed of steps, which will be run sequentially. A&nbsp;</span></span><span class="TextRun SCXW21425026" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW21425026">j</span></span><span class="TextRun SCXW21425026" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW21425026">ob is executed in a dedicated workspace (i.e. filesystem). A new workspace is assigned for each new run of a job.</span></span></p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="/blog/wp-content/uploads/2019/02/1C6F2AC3-2321-4BC2-B449-DE3EA8FC1BCE.png" alt="CDS Job" class="wp-image-14858" width="512" height="444" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/1C6F2AC3-2321-4BC2-B449-DE3EA8FC1BCE.png 1276w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/1C6F2AC3-2321-4BC2-B449-DE3EA8FC1BCE-300x259.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/1C6F2AC3-2321-4BC2-B449-DE3EA8FC1BCE-768x664.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/1C6F2AC3-2321-4BC2-B449-DE3EA8FC1BCE-1024x885.png 1024w" sizes="auto, (max-width: 512px) 100vw, 512px" /></figure></div>



<p><span class="TextRun SCXW266219635" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW266219635">A</span></span><span class="TextRun SCXW266219635" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW266219635">&nbsp;standard build job looks like this</span></span><span class="TextRun SCXW266219635" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW266219635">:</span></span><span class="EOP SCXW266219635" data-ccp-props="{}">&nbsp;</span></p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="/blog/wp-content/uploads/2019/02/60B4A0FC-A0CA-44E2-9E06-79E94258DC6D.png" alt="CDS build job" class="wp-image-14859" width="447" height="373" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/60B4A0FC-A0CA-44E2-9E06-79E94258DC6D.png 1156w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/60B4A0FC-A0CA-44E2-9E06-79E94258DC6D-300x250.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/60B4A0FC-A0CA-44E2-9E06-79E94258DC6D-768x640.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/60B4A0FC-A0CA-44E2-9E06-79E94258DC6D-1024x853.png 1024w" sizes="auto, (max-width: 447px) 100vw, 447px" /></figure></div>



<p>You can use &#8220;built-in&#8221; actions, such as&nbsp;checkoutApplication, script,&nbsp;jUnit, artifact upload/download.</p>



<ul class="wp-block-list"><li>The&nbsp;<b><i>c</i></b><b><i>heckoutApplication</i></b>&nbsp;action clones&nbsp;your Git repository</li><li data-listid="1" data-aria-posinset="2" data-aria-level="1">The <b><i>Script</i></b>&nbsp;action executes your build command as “make build”</li><li data-listid="1" data-aria-posinset="1" data-aria-level="1">The&nbsp;<b><i>artifactUpload</i></b>&nbsp;action uploads&nbsp;previously-built binaries</li><li data-listid="1" data-aria-posinset="2" data-aria-level="1">The <b><i>jUnit</i></b>&nbsp;action parses a given Junit-formatted XML file to extract its test results</li></ul>



<h3 class="wp-block-heading"><span class="TextRun SCXW173436166" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW173436166">A pipeline: How to orchestrate your jobs with stages</span></span></h3>



<p><span class="TextRun SCXW221416392" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW221416392">W</span></span><span class="TextRun SCXW221416392" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW221416392">ith CDS, a pipeline is not a job&nbsp;</span></span><span class="TextRun SCXW221416392" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW221416392">flow</span></span><span class="TextRun SCXW221416392" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW221416392">. A&nbsp;</span></span><span class="TextRun SCXW221416392" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW221416392">pipeline</span></span><span class="TextRun SCXW221416392" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW221416392">&nbsp;is a sequence of stages, each of which contains&nbsp;</span></span><span class="TextRun SCXW221416392" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW221416392">one</span></span><span class="TextRun SCXW221416392" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW221416392">&nbsp;or more jobs</span></span><span class="TextRun SCXW221416392" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW221416392">.</span></span></p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2019/02/69F07485-71CE-49F9-9DCF-CD866B709D64-1024x847.png" alt="CDS Pipeline" class="wp-image-14857" width="512" height="424" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/69F07485-71CE-49F9-9DCF-CD866B709D64-1024x847.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/69F07485-71CE-49F9-9DCF-CD866B709D64-300x248.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/69F07485-71CE-49F9-9DCF-CD866B709D64-768x635.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/69F07485-71CE-49F9-9DCF-CD866B709D64-1200x992.png 1200w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/69F07485-71CE-49F9-9DCF-CD866B709D64.png 1364w" sizes="auto, (max-width: 512px) 100vw, 512px" /></figure></div>



<p>A &nbsp;<b>Stage&nbsp;</b> is a&nbsp;<strong>set of jobs that will be run in parallel</strong>. Stages are executed sequentially, if the previous stage is successful.<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p>



<p>Let&#8217;s take a real-life use case: the pipeline that built CDS. This pipeline has four stages:<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="885" height="520" src="/blog/wp-content/uploads/2019/02/cds_blog_art2_pipeline_cds.png" alt="" class="wp-image-14721" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_pipeline_cds.png 885w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_pipeline_cds-300x176.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_pipeline_cds-768x451.png 768w" sizes="auto, (max-width: 885px) 100vw, 885px" /></figure></div>



<ul class="wp-block-list"><li data-listid="2" data-aria-posinset="0" data-aria-level="1">The “Build Minimal” stage is launched for all Git&nbsp;branches. The main goal of this stage is to compile the&nbsp;Linux version of CDS binaries.<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li><li data-listid="2" data-aria-posinset="0" data-aria-level="1">The “Build other&nbsp;os/arch” stage is&nbsp;<i>only&nbsp;</i>launched on the master branch. This stage compiles all&nbsp;&nbsp;binaries supported by the os/arch:&nbsp;linux,&nbsp;openbsd,&nbsp;freebsd,&nbsp;darwin, windows&nbsp;– 386, amd64 and arm.&nbsp;<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li><li data-listid="2" data-aria-posinset="0" data-aria-level="1">The “Package” stage is launched for all Git&nbsp;branches. This stage prepares the docker image and Debian package.</li><li data-listid="2" data-aria-posinset="0" data-aria-level="1">Finally, the “Publish” stage is launched, whatever the&nbsp;Git&nbsp;branch.<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li></ul>



<p>Most tasks are executed in parallel, whenever possible. This results in very fast feedback, so we will quickly know if the compilation&nbsp;is&nbsp;OK or not.<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p>



<h3 class="wp-block-heading"><span class="TextRun SCXW40418950" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW40418950">CDS Workflows: How to orchestrate your pipelines</span></span></h3>



<p>The workflow concept is a key feature, and widely considered a native, manageable and feature-rich entity in CDS.&nbsp;A CDS Workflow&nbsp;allows you to chain pipelines with manual or automatic gates, using conditional branching.&nbsp;A workflow can be stored as code, designed on CDS UI, or both, depending on what best suits you.<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p>



<p>Let’s take an example. One workflow for building and deploying three micro-services:&nbsp;<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p>



<ul class="wp-block-list"><li data-listid="2" data-aria-posinset="0" data-aria-level="1">Build each micro-service<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li><li data-listid="2" data-aria-posinset="0" data-aria-level="1">Deploy them in preproduction<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li><li data-listid="2" data-aria-posinset="0" data-aria-level="1">Run integration tests on preproduction environment<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li><li data-listid="2" data-aria-posinset="0" data-aria-level="1">Deploy them in production, then re-run integration tests in production</li></ul>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="885" height="198" src="/blog/wp-content/uploads/2019/02/cds_blog_art2_workflow.png" alt="" class="wp-image-14728" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow.png 885w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow-300x67.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow-768x172.png 768w" sizes="auto, (max-width: 885px) 100vw, 885px" /></figure></div>



<p>For the building part, there is only one pipeline to manage, which is used three times in the workflow with a different application/environment context each time.&nbsp;This is called the “pipeline context”.<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p>



<p>Any conditional branching against the workflow (e.g.“automatic deployment on the staging environment, only if the current Git branch is master”) can be executed through a “run conditional” set on the pipeline.<span data-ccp-props="{}">&nbsp;</span></p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="885" height="528" src="/blog/wp-content/uploads/2019/02/cds_blog_art2_run_conditions.png" alt="" class="wp-image-14723" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_run_conditions.png 885w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_run_conditions-300x179.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_run_conditions-768x458.png 768w" sizes="auto, (max-width: 885px) 100vw, 885px" /></figure></div>



<p><span class="TextRun SCXW249992857" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW249992857">Let&#8217;s look at a &nbsp;a real use case</span></span><span class="TextRun SCXW249992857" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW249992857">.&nbsp;</span></span><span class="TextRun SCXW249992857" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW249992857">This is the workflow that builds, tests and deploys CDS in production at OVH</span></span><span class="TextRun SCXW249992857" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW249992857">&nbsp;</span></span><span class="TextRun SCXW249992857" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW249992857">(</span></span><em><span class="TextRun SCXW249992857" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW249992857">yes, CDS builds and deploys itself!</span></span></em><span class="TextRun SCXW249992857" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW249992857">):</span></span></p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="885" height="446" src="/blog/wp-content/uploads/2019/02/cds_blog_art2_workflow_cds.png" alt="" class="wp-image-14724" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_cds.png 885w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_cds-300x151.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_cds-768x387.png 768w" sizes="auto, (max-width: 885px) 100vw, 885px" /></figure></div>



<ol class="wp-block-list"><li data-listid="3" data-aria-posinset="1" data-aria-level="1">For each Git commit, the workflow is triggered<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li><li data-listid="3" data-aria-posinset="1" data-aria-level="1">The UI is&nbsp;packaged, all binaries are prepared, and the docker images are built. The “UT” job launches the unit tests. The&nbsp;job “IT” job installs CDS in an ephemeral environment and launches the&nbsp;integration tests&nbsp;on it. Part 2 is&nbsp;automatically triggered&nbsp;on all Git commits.&nbsp;<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li><li data-listid="3" data-aria-posinset="1" data-aria-level="1">Part 3 deploys&nbsp;CDS on our preproduction environment, then launches the&nbsp;integration&nbsp;tests on it.&nbsp;It is started automatically when the current branch is the master branch.<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li><li data-listid="3" data-aria-posinset="1" data-aria-level="1">Last but not least, part 4 deploys&nbsp;CDS on our production environment.<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li></ol>



<p><span class="TextRun SCXW65390992" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW65390992">I</span></span><span class="TextRun SCXW65390992" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW65390992">f there is a failure on a pipeline, it may look like this:</span></span></p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="885" height="298" src="/blog/wp-content/uploads/2019/02/cds_blog_art2_workflow_failed.png" alt="" class="wp-image-14725" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_failed.png 885w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_failed-300x101.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_failed-768x259.png 768w" sizes="auto, (max-width: 885px) 100vw, 885px" /></figure></div>



<p><span class="TextRun SCXW149395370" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW149395370">The same kind of workflow is used for&nbsp;</span></span><span class="TextRun SCXW149395370" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW149395370">building</span></span><span class="TextRun SCXW149395370" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW149395370">&nbsp;and deplo</span></span><span class="TextRun SCXW149395370" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW149395370">ying</span></span><span class="TextRun SCXW149395370" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW149395370">&nbsp;the Prescience Proje</span></span><span class="TextRun SCXW149395370" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW149395370">c</span></span><span class="TextRun SCXW149395370" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW149395370">t (</span></span><a class="Hyperlink SCXW149395370" href="https://labs.ovh.com/machine-learning-platform" target="_blank" rel="noopener noreferrer" data-wpel-link="exclude"><span class="TextRun Underlined SCXW149395370" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW149395370">https://labs.ovh.com/machine-learning-platform</span></span></a><span class="TextRun SCXW149395370" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW149395370">):</span></span></p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="885" height="616" src="/blog/wp-content/uploads/2019/02/cds_blog_art2_workflow_prescience.png" alt="" class="wp-image-14726" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_prescience.png 885w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_prescience-300x209.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_prescience-768x535.png 768w" sizes="auto, (max-width: 885px) 100vw, 885px" /></figure></div>



<p><span class="TextRun SCXW181015173" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW181015173">But of course, you&#8217;re not limited to the most complex tasks with CDS Workflows! These two examples demonstrate the fact that workflows allow to build and deploy a coherent set of micro-services</span></span><span class="TextRun SCXW181015173" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW181015173">. I</span></span><span class="TextRun SCXW181015173" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW181015173">f you have simpler needs, your workflows are, of course, simpler.</span></span></p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="300" height="204" src="/blog/wp-content/uploads/2019/02/cds_blog_art2_workflow_simple-300x204.png" alt="" class="wp-image-14727" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_simple-300x204.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_simple-768x522.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds_blog_art2_workflow_simple.png 856w" sizes="auto, (max-width: 300px) 100vw, 300px" /></figure></div>



<p>Pipeline reusability allows you to easily maintain the technical parts of the build, tests and deployments, even if you have hundreds of&nbsp;applications.<span data-ccp-props="{}">&nbsp;</span>If hundreds of applications share the same kind of workflows, you can leverage the maintainability of the workflow templates. We will talk more about this in a future post.</p>



<h3 class="wp-block-heading"><span class="TextRun SCXW112993533" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW112993533">M</span></span><span class="TextRun SCXW112993533" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW112993533">uch more than&nbsp;</span></span><span class="TextRun SCXW112993533" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW112993533">“P</span></span><span class="TextRun SCXW112993533" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW112993533">ipeline as&nbsp;</span></span><span class="TextRun SCXW112993533" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW112993533">C</span></span><span class="TextRun SCXW112993533" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW112993533">ode</span></span><span class="TextRun SCXW112993533" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW112993533">”&#8230;</span></span><span class="TextRun SCXW112993533" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW112993533">&nbsp;</span></span><span class="TextRun SCXW112993533" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW112993533">“Workflow as Code”</span></span></h3>



<p>There is no compromise with CDS. Some users prefer to draw the workflows by the&nbsp;web UI, others prefer to write&nbsp;yaml&nbsp;code. CDS lets you do both!<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p>



<p>There are two ways to store workflows: either in the CDS&nbsp;database&nbsp;or on your Git repository&nbsp;with your source code. We call this “Workflow as Code”<span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">.</span></p>



<p>This makes it possible to have a workflow on a given branch, and then develop it on another branch. CDS will instantiate the workflow&nbsp;on the fly, based on the&nbsp;yaml&nbsp;code present on the current branch.</p>



<p><span class="TextRun SCXW158005539" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW158005539">CDS is OVH open-source software, and can be found on&nbsp;</span></span><a class="Hyperlink SCXW158005539" href="https://github.com/ovh/cds" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external"><span class="TextRun Underlined SCXW158005539" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW158005539">https://github.com/ovh/cds</span></span></a>,<span class="TextRun SCXW158005539" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW158005539">&nbsp;with documentation on&nbsp;</span></span><a class="Hyperlink SCXW158005539" href="https://ovh.github.io/cds" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external"><span class="TextRun Underlined SCXW158005539" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW158005539">https://ovh.github.io/cds</span></span></a><span class="TextRun SCXW158005539" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXW158005539">.&nbsp;</span></span></p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="300" height="150" src="/blog/wp-content/uploads/2019/02/cds-header-300x150.jpg" alt="CDS" class="wp-image-14628" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds-header-300x150.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds-header-768x384.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/cds-header.jpg 800w" sizes="auto, (max-width: 300px) 100vw, 300px" /></figure></div>



<p>Previous Posts:<span data-ccp-props="{}">&nbsp;</span></p>



<ul class="wp-block-list"><li data-listid="2" data-aria-posinset="0" data-aria-level="1">CDS Introduction:&nbsp;<a href="https://www.ovh.com/fr/blog/how-does-ovh-manage-the-ci-cd-at-scale/" data-wpel-link="exclude">https://www.ovh.com/fr/blog/how-does-ovh-manage-the-ci-cd-at-scale/</a>&nbsp;<span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li><li data-listid="2" data-aria-posinset="0" data-aria-level="1">DataBuzzWord&nbsp;Podcast (French):&nbsp;<a href="https://www.ovh.com/fr/blog/understanding-ci-cd-for-big-data-and-machine-learning/" data-wpel-link="exclude">https://www.ovh.com/fr/blog/understanding-ci-cd-for-big-data-and-machine-learning/</a>&nbsp;&nbsp;<span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li></ul>



<p><span data-ccp-props="{}">&nbsp;</span></p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fcontinuous-delivery-and-deployment-workflows-with-cds%2F&amp;action_name=Continuous%20Delivery%20and%20Deployment%20Workflows%20with%20CDS&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How does OVH manage the CI/CD at scale?</title>
		<link>https://blog.ovhcloud.com/how-does-ovh-manage-the-ci-cd-at-scale/</link>
		
		<dc:creator><![CDATA[Yvonnick Esnault]]></dc:creator>
		<pubDate>Thu, 14 Feb 2019 15:22:39 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[CDS]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Industrialization]]></category>
		<guid isPermaLink="false">https://blog.ovh.com/fr/blog/?p=14461</guid>

					<description><![CDATA[From git commit to production, the delivery process is the set of steps that take place to deliver your service to your customers. Continuous Integration and Continuous Delivery – CI/CD - are practices based on the Agile Values which aim to automate this process as much as possible.



The Continuous Delivery Team @OVH has a mission: to help the OVH developers to industrialize and automate their delivery process. The CD team is here to advocate CI/CD best practices and maintain the ecosystem tools, with a maximum focus on as-a-service solutions.



The central point of this ecosystem is a tool built in-house at OVH, named CDS.
CDS is an OVH opensource software, you will find it on https://github.com/ovh/cds with documentation on https://ovh.github.io/cds.<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fhow-does-ovh-manage-the-ci-cd-at-scale%2F&amp;action_name=How%20does%20OVH%20manage%20the%20CI%2FCD%20at%20scale%3F&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><i>The delivery process is the set of steps &#8211; from git commit to production &#8211; that takes place to deliver your service to your customers. Drawing on agile values, Continuous Integration and Continuous Delivery (CI/CD ) are practices that aim to automate this process as much as possible.</i></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14529" src="/blog/wp-content/uploads/2019/02/FE68B6A7-7885-4C60-8FF4-B929005EEF96-300x56.png" alt="From git to production" width="512" height="97" /></p>
<p><i>The Continuous Delivery Team at OVH has one fundamental mission: to help the OVH developers industrialise and automate their delivery processes. The CD team is here to advocate CI/CD best practices and maintain our ecosystem tools, with the maximum focus on as-a-service solutions.</i></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-14512" src="/blog/wp-content/uploads/2019/02/CE25CF9F-9489-4B9D-B123-FE4FD613EF85-297x300.png" alt="CDS" width="297" height="300" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/CE25CF9F-9489-4B9D-B123-FE4FD613EF85-297x300.png 297w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/CE25CF9F-9489-4B9D-B123-FE4FD613EF85-768x775.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/CE25CF9F-9489-4B9D-B123-FE4FD613EF85.png 793w" sizes="auto, (max-width: 297px) 100vw, 297px" /></p>
<p><i>The centre of this ecosystem is a tool called CDS, developed in-house at OVH.</i><br />
<i>CDS is an open-source software solution that can be found at </i><a style="font-style: italic;" href="https://github.com/ovh/cds" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://github.com/ovh/cds,</a><i> with documentation at </i><a style="font-style: italic;" href="https://ovh.github.io/cds" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://ovh.github.io/cds</a><i>.</i></p>
<p>CDS is the third generation of CI/CD tools at OVH, following two previous solutions, that were based on Bash, Jenkins, Gitlab and Bamboo. It is the end-result of 12 years&#8217; experience in the field of CI/CD. Familiar with most of the standard tools of the industry, we found that none completely matched our expectations regarding the four key aspects we identified. That is what CDS tries to solve.</p>
<p>These four aspects are:</p>
<h3><strong>Elastic</strong></h3>
<p>CDS resources/workers are <strong>launched on demand</strong>, to guarantee low waiting times for users, with no over-consumption of idle resources.</p>
<h3><strong>Extensible</strong></h3>
<p>In CDS, any kind of action (Kubernetes and OpenStack deployments, pushing to Kafka, testing for CVEs…) can be captured in <strong>high-level plugins</strong>, to be used as <strong>building blocks</strong> by users. These plugins are straightforward to write and use, so it&#8217;s easy to meet the most exotic needs in an effective and stress-free way.</p>
<h3><strong>Flexible, but easy</strong></h3>
<p>CDS can run <strong>complex workflows</strong>, with all sorts of intermediary steps, including build, test, deploy 1/10/100, manual or automatic gates, rollback, conditional branches… These workflows can be <strong>stored as code</strong> in the git repository. CDS provides basic <strong>workflow templates</strong> for the Core team&#8217;s most common scenarios, in order to ease the adoption process. This way, building a functional CI/CD chain from nothing can be quick and easy.</p>
<h3><strong>Self-service</strong></h3>
<p>Finally, a key aspect is the idea of<strong> self-service</strong>. Once a CDS project is created by users, they are completely autonomous within that space, with the freedom to manage pipelines, delegate access rights etc. All users are free to customise their space as they see fit, and build on what is provided out-of-the-box. Personalising workflow templates, plugins, running build and tests on custom VM flavors or custom hardware… all this can be done without any intervention from the CDS administrators.</p>
<h3><strong>CI/CD in 2018 &#8211; Five million workers!</strong></h3>
<ul>
<li>About 5.7M workers started and deleted on demand.</li>
<li>3.7M containers</li>
<li>2M Virtual Machines</li>
</ul>
<h3>How is it possible?</h3>
<p>One of the initial CDS objectives at OVH was to build and deploy 150 applications as a container in less than seven minutes. This has been a reality since 2015. So what&#8217;s the secret? Auto-Scale on Demand!</p>
<p>With this approach, you can have hundreds of worker models that CDS will launch via hatcheries whenever necessary.</p>
<p><figure id="attachment_14542" aria-describedby="caption-attachment-14542" style="width: 512px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-14542" src="/blog/wp-content/uploads/2019/02/DA5984F5-6B7D-48B4-840E-6D7F3F590A35-300x76.png" alt="CDS Hatchery" width="512" height="130" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/DA5984F5-6B7D-48B4-840E-6D7F3F590A35-300x76.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/DA5984F5-6B7D-48B4-840E-6D7F3F590A35-768x194.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/DA5984F5-6B7D-48B4-840E-6D7F3F590A35.png 885w" sizes="auto, (max-width: 512px) 100vw, 512px" /><figcaption id="caption-attachment-14542" class="wp-caption-text">CDS Hatchery</figcaption></figure></p>
<p>&nbsp;</p>
<p>A hatchery is like an incubator: it gives birth to the CDS workers and maintains the power of life and death over them.</p>
<p><figure id="attachment_14546" aria-describedby="caption-attachment-14546" style="width: 512px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-14546" src="/blog/wp-content/uploads/2019/02/IMG_0052-300x206.png" alt="CDS Hatcheries - Worker @Scale" width="512" height="352" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/IMG_0052-300x206.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/IMG_0052-768x528.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/IMG_0052.png 885w" sizes="auto, (max-width: 512px) 100vw, 512px" /><figcaption id="caption-attachment-14546" class="wp-caption-text">CDS Hatcheries &#8211; Worker @Scale</figcaption></figure></p>
<p>&nbsp;</p>
<p>Each hatchery is dedicated to an orchestrator. Furthermore, one CDS Instance can create workers over many cloud platforms:<br />
&#8211; The <strong>Kubernetes</strong> hatchery starts workers in pods<br />
&#8211; The <strong>OpenStack</strong> hatchery starts virtual machines<br />
&#8211; The <strong>Swarm</strong> hatchery starts docker containers<br />
&#8211; The <strong>Marathon</strong> hatchery starts docker containers<br />
&#8211; The <strong>VSphere</strong> hatchery start virtual machines<br />
&#8211; The <strong>local</strong> hatchery starts process on a host</p>
<p><figure id="attachment_14548" aria-describedby="caption-attachment-14548" style="width: 512px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-14548" src="/blog/wp-content/uploads/2019/02/IMG_0053-300x87.png" alt="CDS Hatcheries" width="512" height="148" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/IMG_0053-300x87.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/IMG_0053-768x222.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/IMG_0053.png 885w" sizes="auto, (max-width: 512px) 100vw, 512px" /><figcaption id="caption-attachment-14548" class="wp-caption-text">CDS Hatcheries</figcaption></figure></p>
<h3>What&#8217;s next?</h3>
<p>This is all just a <strong>preview of CDS</strong>&#8230; we have lots more to tell you about! The CI/CD tool offers a wide range of features that we will explore in depth in our <strong>upcoming articles</strong>. We promise, before 2019 is done, you will not look at your CI/CD tool the same way again&#8230;<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fhow-does-ovh-manage-the-ci-cd-at-scale%2F&amp;action_name=How%20does%20OVH%20manage%20the%20CI%2FCD%20at%20scale%3F&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Nouveau site de Croix, une usine World Class pour la production des serveurs</title>
		<link>https://blog.ovhcloud.com/nouveau-site-de-croix-une-usine-world-class-pour-la-production-des-serveurs/</link>
		
		<dc:creator><![CDATA[OVHcloud]]></dc:creator>
		<pubDate>Mon, 03 Sep 2018 12:26:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Industrialization]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=22106</guid>

					<description><![CDATA[2018 marque une année importante pour OVH avec la naissance du tout nouveau site de Croix pour les équipes Manufacturing et Logistique. Une vitrine du savoir-faire, de l’innovation et du&#160;mindset&#160;du groupe, comme l’explique Guillaume Hochart, directeur du projet, dont l’une des missions consiste à moderniser toute la chaîne de production. Pourquoi ce projet de création [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fnouveau-site-de-croix-une-usine-world-class-pour-la-production-des-serveurs%2F&amp;action_name=Nouveau%20site%20de%20Croix%2C%20une%20usine%20World%20Class%20pour%20la%20production%20des%20serveurs&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<p><strong>2018 marque une année importante pour OVH avec la naissance du tout nouveau site de Croix pour les équipes Manufacturing et Logistique. Une vitrine du savoir-faire, de l’innovation et du&nbsp;<em>mindset</em>&nbsp;du groupe, comme l’explique Guillaume Hochart, directeur du projet, dont l’une des missions consiste à moderniser toute la chaîne de production.</strong></p>



<h4 class="wp-block-heading" id="pourquoi-ce-projet-de-creation-d-un-nouveau-site-pour-les-equipes-manufacturing-et-logistique"><strong>Pourquoi ce projet de création d’un nouveau site pour les équipes Manufacturing et Logistique&nbsp;?</strong></h4>



<p><strong>G. H.</strong>&nbsp;Étant donné l’hypercroissance d’OVH, il fallait que nous puissions disposer d’un nouveau site de production pour l’Europe, en plus de Beauharnois au Canada et du projet d’ouverture d’une chaîne de production aux États-Unis. Le seuil actuel de capacité de production à l’année va ainsi passer de 120 000 à 400 000 serveurs. Mais plus qu’une nouvelle unité, nous voulions en profiter pour en faire une usine&nbsp;<em>world class</em>&nbsp;basée sur le&nbsp;<em>lean management</em>. Il s’agit d’un principe sur lequel je m’appuie depuis de nombreuses années déjà et qui a fait ses preuves dans des secteurs aussi exigeants que celui du nucléaire. J’ai acquis une expertise en l<em>ean management</em>&nbsp;pendant mes 15 années dans le secteur industriel, de la robinetterie au gaz en passant par le nucléaire. J’en connais la valeur. Je n’étais pas spécialiste en informatique, mais je me retrouvais bien dans l’état d’esprit qu’Octave Klaba a su insuffler à OVH. Ici, tout est malin et catalyseur d’idées, très propice au&nbsp;<em>lean</em>. Cette approche permet en effet de concilier amélioration des performances de l’entreprise, notamment le niveau du « juste-à-temps », avec l’implication des employés dans l’amélioration et la conception de leurs environnements de travail. C’est ce qui a guidé ce projet de site à Croix.</p>



<h4 class="wp-block-heading" id="qu-entendez-vous-par-usine-world-class"><strong>Qu’entendez-vous par « usine&nbsp;<em>world class</em>&nbsp;» ?</strong></h4>



<p><strong>G. H.&nbsp;</strong>Le site de Roubaix était pragmatique et performant. Il a évolué au fil de la croissance de l’entreprise quasi exclusivement dans une logique d’efficacité. Nous avons besoin d’augmenter notre capacité de production, et également de bénéficier des technologies et méthodes de production les plus récentes. Par exemple, aucun soin particulier n’avait jusqu’à présent été apporté pour que la chaîne d’assemblage soit valorisable aux yeux des clients. Aujourd’hui, nous avons besoin de pouvoir leur montrer ce que nous sommes capables de faire. Le site de Croix a ainsi été prévu pour être une véritable vitrine industrielle pour nos partenaires et nos clients. L’idée est de leur donner confiance dans notre chaîne logistique et notre organisation industrielle pour qu’ils soient convaincus de choisir le bon partenaire. Le site de Croix va permettre de démontrer à chaque instant que la maîtrise des processus industriels représente un avantage compétitif&nbsp;de qualité, coût, délai et flexibilité.</p>



<h4 class="wp-block-heading" id="comment-tout-ca-va-se-concretiser"><strong>Comment tout ça va se concrétiser ?</strong></h4>



<p><strong>G. H.&nbsp;</strong>L’amélioration de la productivité et le développement de l’agilité doivent avant tout servir l’humain. Par exemple, la pose d’une résine au sol pour éviter toute vibration et donc permettre le transport des pièces par des robots, représente une opportunité pour les salariés de réduire la pénibilité, de se concentrer sur des tâches à plus forte valeur ajoutée tout en bénéficiant d’un environnement de travail amélioré. C’est ça aussi, l’entreprise 4.0&nbsp;! En fait, nous souhaitons vraiment que les équipes Manufacturing et Logistique puissent s’exprimer dans toute leur ingéniosité et créativité. Avec à la mise à disposition des données numériques, la robotique avancée et l’automatisation, les salariés vont pouvoir monter en compétence sur la proactivité, la prise de décision rapide ou les ajustements en temps réel. Le management a ainsi été rendu plus visuel pour qu’en un coup d’œil, les anomalies&nbsp;éventuelles soient apparentes et que les collaborateurs puissent réagir en conséquence, dans les plus brefs délais.</p>



<h4 class="wp-block-heading" id="et-c-est-la-aussi-ou-le-lean-management-joue-un-role-majeur"><strong>Et c’est là aussi où le&nbsp;<em>lean management</em>&nbsp;joue un rôle majeur&nbsp;?</strong></h4>



<p><strong>G. H.&nbsp;</strong>Sous l’angle du&nbsp;<em>lean management</em>, tout l’environnement a du sens. Cela passe notamment par la réduction du&nbsp;<em>lead time</em>, c’est-à-dire la mise sous contrôle des encours de production, des niveaux de stock et de la vitesse de défilement dans les opérations. Nous avons aussi travaillé sur la préparation en bord de ligne pour que les différents composants soient disponibles et prêts à être assemblés au moment opportun, comme dans le secteur automobile. Avec plus d’une centaine de combinaisons possibles de ses serveurs, OVH a vraiment besoin d’agilité et de flexibilité pour assurer la personnalisation des machines. C’est toute l’ambition du concept de&nbsp;<em>One Piece Flow</em>&nbsp;que nous avons aussi mis en place. Nous devons vraiment être performants entre l’arrivée des composants et la sortie finale du produit. Ce flux tendu permet de produire 95 % des serveurs en moins de 4 jours.</p>



<h4 class="wp-block-heading" id="comment-vont-etre-organises-les-espaces-disponibles"><strong>Comment vont être organisés les espaces disponibles&nbsp;?</strong></h4>



<p><strong>G. H.&nbsp;</strong>Les 14 000 m2 de ce nouveau site doivent permettre d’intégrer la centaine de personnes des équipes opérationnelles de Manufacturing et Logistique, ainsi que leurs unités de production. Avec la logique du&nbsp;<em>lean management</em>, nous avons souhaité optimiser l’espace disponible pour pouvoir disposer de capacités de développement futur, mais aussi accueillir certains prestataires. OVH a en effet choisi de se focaliser sur son cœur de business, l’intégration des éléments techniques et informatiques. La fabrication de certains composants, notamment les activités de laser, soudure et d’usinage des métaux, est confiée à des prestataires de confiance. Ils s’installeront dans le bâtiment pour améliorer les&nbsp;<em>lead times,</em>&nbsp;mais aussi pour gagner en flexibilité entre nos labos et nos protos.</p>



<div id="attachment_13625" class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.ovhcloud.com/wp-content/uploads/2022/02/nouveau-site-de-croix-une-usine-world-class-pour-la-production-des-serveurs-01-1024x768.jpeg" alt="" class="wp-image-22109" srcset="https://blog.ovhcloud.com/wp-content/uploads/2022/02/nouveau-site-de-croix-une-usine-world-class-pour-la-production-des-serveurs-01-1024x768.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2022/02/nouveau-site-de-croix-une-usine-world-class-pour-la-production-des-serveurs-01-300x225.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2022/02/nouveau-site-de-croix-une-usine-world-class-pour-la-production-des-serveurs-01-768x576.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2022/02/nouveau-site-de-croix-une-usine-world-class-pour-la-production-des-serveurs-01.jpeg 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption><em>L’équipe Manufactruing</em></figcaption></figure></div>



<h4 class="wp-block-heading" id="des-laboratoires-seront-aussi-presents"><strong>Des laboratoires seront aussi présents&nbsp;?</strong></h4>



<p><strong>G. H.&nbsp;</strong>L’innovation doit être permanente et le site de Croix permettra de concentrer les équipes, les espaces et les conditions pour améliorer notre vitesse d’innovation et notre processus de développement de nouveaux produits. Cinq laboratoires&nbsp;ont ainsi été prévus&nbsp;: le labo hardware, dédié à la performance des composants et du serveur assemblé, le labo soft pour la vérification de l’intégration dans le système informatique et la mise à jour logicielle sur l’intégralité du parc, le labo clim consacré au fonctionnement des serveurs dans des conditions extrêmes de températures, le mini datacenter pour tester les différentes solutions mécaniques, thermiques et structurelles et le labo industrialisation prévu pour le développement des nouveaux produits et ouvert à l’innovation participative.</p>



<h4 class="wp-block-heading" id="pourquoi-avoir-choisi-le-site-de-croix"><strong>Pourquoi avoir choisi le site de Croix&nbsp;?</strong></h4>



<p><strong>G. H.&nbsp;</strong>Le choix d’une ville située à quelques kilomètres des datacenters de Roubaix est bien sûr stratégique pour optimiser les approvisionnements. Cela permet également aux salariés de ne pas trop bousculer leurs habitudes de vie. Le site est d’ailleurs bien desservi en transports en commun. Ce bâtiment industriel de type cathédrale présente aussi des volumes intéressants avec une grande hauteur sous plafond, des murs droits et des sols lisses. La lumière a également été revue pour atteindre les 500 lux et permettre de travailler dans un environnement de qualité. Enfin, toute la capacité énergétique était déjà présente, du fait de l’activité précédente.</p>



<h4 class="wp-block-heading" id="quand-sera-t-il-operationnel"><strong>Quand sera-t-il opérationnel&nbsp;?</strong></h4>



<p><strong>G. H.&nbsp;</strong>Le site est destiné à devenir le quartier général de l’activité&nbsp;<em>Industry</em>&nbsp;d’OVH. Il sera divisé en deux parties&nbsp;: la logistique et la production. Je tiens d’ailleurs à saluer toutes les équipes qui se sont montrées tout à fait ouvertes au changement, qui ont fait preuve d’agilité et qui se sont énormément impliquées pour que tout soit prêt en temps et en heure. Je précise aussi qu’en attendant la fin du déménagement, prévu pour septembre, l’usine de Roubaix reste entièrement opérationnelle pour assurer toutes les commandes.</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fnouveau-site-de-croix-une-usine-world-class-pour-la-production-des-serveurs%2F&amp;action_name=Nouveau%20site%20de%20Croix%2C%20une%20usine%20World%20Class%20pour%20la%20production%20des%20serveurs&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
