<p><img alt="" src="/user/pages/01.home/new-linux-image-naming-and-registration-policies/OTC.png" /></p>
<h2>Introduction</h2>
<p>Currently, for each Linux image, there are two series of images, one
with a datestamp (e,g, <code>_20180106_0</code>) and one with a <code>_latest</code> name
which gets renamed to <code>_prevN</code> and hidden upon a new <code>_latest</code> image
registration. We have followed a roughly monthly update schedule
(aligning with the Windows world) for the datestamp images and the
<code>_latest</code> images while pushing out additional <code>_latest</code> images in
between occasionally based on major improvements, bug fixes or security
issues.</p>
<p>The rationale was to both offer images that can be used long-term (for
customers that may not yet have adopted continuous deployment models) as
well as a possibility for customers to have current images (which don't
need a lot of online updates to be secure).</p>
<p>The disadvantage of the current approach is that a lot of old images are
stored on the platform and (more importantly) cause the image list to
become larger and larger, confusing customers and causing a
<code>glance image-list</code> to require more than 10s of time (and at some point
even fail for clients that don't properly handle REST pagination).</p>
<p>We found a lot more customers using the <code>_latest</code> images and thus
propose to completely drop the images with a date stamp. We have created
a possibility to hide older images from the <code>_prevN</code> series in a way
that they can be continued to be used IF referenced by image UUID.</p>
<h3>Actions</h3>
<p>To achieve the goal of cleaning up our public image catalog, we will
hide or remove old images.</p>
<p>In detail:</p>
<ul>
<li>We only delete ancient images (from 2016) which are not in use any
more or don't work well any longer.</li>
<li>We hide the images that still carry minor versions which we stopped
using. (e.g. Standard_CentOS_7.3_latest will be hidden, please
use Standard_CentOS_7_latest instead)</li>
<li>We will keep two versions of each image visible, the latest and the
previous one.</li>
<li>All other old images will be hidden, not deleted, meaning that the
images can still be used <strong>if</strong> the user has taken a note of the
image UUID (or requests that information from our support
organisation). Note that neither renaming from <code>_lastest</code> to <code>_prev</code>
nor the final rename to <code>_DATE</code> and the connected hiding will change
the image UUID.</li>
</ul>
<p>So the images each go through the cycle:</p>
<pre><code>+-------+ +-------+ +-------+
|Image1 | |Image1 | |Image1 |
|visible| |visible| |hidden | (no more
|_latest| -> | _prev | -> |_DATE1 | -> changes)
| UUID1 | | UUID1 | | UUID1 |
+-------+ +-------+ +-------+
+-------+ +-------+ +-------+
|Image2 | |Image2 | |Image2 |
|visible| |visible| |hidden | (no more
|_latest| -> | _prev | -> |_DATE2 | -> changes)
| UUID2 | | UUID2 | | UUID2 |
+-------+ +-------+ +-------+
+-------+ +-------+ +-------+
|Image3 | |Image3 | |Image3 |
|visible| |visible| |hidden |
|_latest| -> | _prev | -> |_DATE3 |
| UUID3 | | UUID3 | | UUID3 |
+-------+ +-------+ +-------+
...</code></pre>
<p>The cycling happens at least once a month, so <code>_latest</code> will be at max 1
month old, <code>_prev</code> max 2 months, where as the <code>_DATE</code> images (only
referencable by UUID) declare their birth date in their name.</p>
<h3>Benefits</h3>
<ul>
<li>The amount of (new) images that are registered and stored on the
platform is cut by a factor of two.</li>
<li>The images showing up in the image catalog is reduced by an order of
magnitude, avoiding confusion and speeding up the catalog
operations.</li>
<li>The Linux images are handled more similarly to the Windows images.</li>
<li>Communication is easy: Images by name <code>_latest</code> are always latest
and Images by UUID are stable and aging (similar to content-based
addresing as used by git).</li>
</ul>
<h3>Customer recommendations</h3>
<p>After implementation of the new policies, users have the same choices as
before: Using latest or fixed images. The choice can be done by</p>
<ul>
<li>Always using our latest images by <strong>referencing it by the name</strong>
<code>_latest</code>.</li>
<li>Using the the previous images by <strong>referencing it by the name</strong>
<code>_prev</code>.</li>
<li>Staying on the same image by <strong>referencing it by UUID</strong>.</li>
</ul>
<p>We expect most cloud users to have mechanisms in place where they can
handle change -- they are typically best served by always using our
<code>_latest</code> images. However, we acknowledge that there are valid cases
where users can not deal with OS maintenance updates well and thus we
offer the ability to reference images (current ones as well as old ones)
by UUID. While we hide the old images after some time, they remain
available by UUID for a long time.</p>
<h3>Timeline</h3>
<p>We will introduce this new policy with the image next publish at 15th of
March 2018. This will also affect the BareMetal images, which currently
have only datestamps and will then only have a public <code>_latest</code> and
<code>_prev</code> and hidden datestamp images.</p>
<p>We will then clean up and hide the older images in the second half of
March.</p>