mirror of
https://github.com/clearlinux/clear-linux-documentation.git
synced 2026-05-01 20:43:48 +00:00
359 lines
21 KiB
HTML
359 lines
21 KiB
HTML
|
||
<!DOCTYPE html>
|
||
|
||
<html lang="en" data-content_root="../../">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<title>Deploy at Scale — Documentation for Clear Linux* project</title>
|
||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
|
||
<link rel="stylesheet" type="text/css" href="../../_static/bizstyle.css?v=5283bb3d" />
|
||
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css?v=76b2166b" />
|
||
|
||
<script src="../../_static/documentation_options.js?v=5929fcd5"></script>
|
||
<script src="../../_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<script src="../../_static/clipboard.min.js?v=a7894cd8"></script>
|
||
<script src="../../_static/copybutton.js?v=a56c686a"></script>
|
||
<script src="../../_static/bizstyle.js"></script>
|
||
<link rel="canonical" href="https://clearlinux.github.io/clear-linux-documentation/guides/maintenance/deploy-at-scale.html" />
|
||
<link rel="icon" href="../../_static/favicon.ico"/>
|
||
<link rel="author" title="About these documents" href="../../about.html" />
|
||
<link rel="index" title="Index" href="../../genindex.html" />
|
||
<link rel="search" title="Search" href="../../search.html" />
|
||
<link rel="next" title="Developer Workstation" href="developer-workstation.html" />
|
||
<link rel="prev" title="CPU Power and Performance" href="cpu-performance.html" />
|
||
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
||
<!--[if lt IE 9]>
|
||
<script src="_static/css3-mediaqueries.js"></script>
|
||
<![endif]-->
|
||
</head><body>
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../../genindex.html" title="General Index"
|
||
accesskey="I">index</a></li>
|
||
<li class="right" >
|
||
<a href="developer-workstation.html" title="Developer Workstation"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="cpu-performance.html" title="CPU Power and Performance"
|
||
accesskey="P">previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../../index.html">Documentation for Clear Linux* project</a> »</li>
|
||
<li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Guides</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">Deploy at Scale</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section id="deploy-at-scale">
|
||
<span id="id1"></span><h1>Deploy at Scale<a class="headerlink" href="#deploy-at-scale" title="Link to this heading">¶</a></h1>
|
||
<p>This guide describes deployment considerations and strategies when deploying
|
||
Clear Linux* OS at scale in your environment.</p>
|
||
<nav class="contents local" id="contents">
|
||
<ul class="simple">
|
||
<li><p><a class="reference internal" href="#overview" id="id3">Overview</a></p></li>
|
||
<li><p><a class="reference internal" href="#pick-a-usage-and-update-strategy" id="id4">Pick a usage and update strategy</a></p></li>
|
||
<li><p><a class="reference internal" href="#pick-an-image-distribution-strategy" id="id5">Pick an image distribution strategy</a></p></li>
|
||
<li><p><a class="reference internal" href="#considerations-with-stateless-systems" id="id6">Considerations with stateless systems</a></p></li>
|
||
</ul>
|
||
</nav>
|
||
<section id="overview">
|
||
<h2><a class="toc-backref" href="#id3" role="doc-backlink">Overview</a><a class="headerlink" href="#overview" title="Link to this heading">¶</a></h2>
|
||
<p>In this guide the term <em>endpoint</em> refers to a system targeted for Clear Linux OS
|
||
installation, whether that is a datacenter system or unit deployed in field.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>This guide is not a replacement or blueprint for designing your own IT
|
||
operating environment.</p>
|
||
<p>Implementation details for a scale deployment are beyond the scope of this
|
||
guide.</p>
|
||
<p>Your Clear Linux OS deployment should complement your existing environment and
|
||
available tools. It is assumed core IT dependencies of your environment,
|
||
such as your network, are healthy and scaled to suit the deployment.</p>
|
||
</div>
|
||
</section>
|
||
<section id="pick-a-usage-and-update-strategy">
|
||
<h2><a class="toc-backref" href="#id4" role="doc-backlink">Pick a usage and update strategy</a><a class="headerlink" href="#pick-a-usage-and-update-strategy" title="Link to this heading">¶</a></h2>
|
||
<p>Different business scenarios call for different deployment methodologies.
|
||
Clear Linux OS offers the flexibility to continue consuming the upstream Clear Linux OS
|
||
distribution or the option to fork away from the Clear Linux OS distribution and
|
||
act as your own <abbr title="Operating System Vendor">OSV</abbr>.</p>
|
||
<p>Below is an overview of some considerations.</p>
|
||
<section id="create-your-own-linux-distribution-mix">
|
||
<h3>Create your own Linux distribution (mix)<a class="headerlink" href="#create-your-own-linux-distribution-mix" title="Link to this heading">¶</a></h3>
|
||
<p>This approach forks away from the Clear Linux OS upstream and has you act as your own
|
||
<abbr title="Operating System Vendor">OSV</abbr> by leveraging the <a class="reference internal" href="../clear/mixer.html#mixer"><span class="std std-ref">mixer</span></a> process to
|
||
create customized images based on Clear Linux OS. This is a level of responsibility
|
||
that requires having more infrastructure and processes to adopt. In return,
|
||
this approach <em>offers you a high degree of control and customization</em>. Consider:</p>
|
||
<ul>
|
||
<li><p>Development systems that generate bundles and updates should have
|
||
sufficient performance for the task and be separate from the swupd update
|
||
webservers that serve update content to production machines.</p></li>
|
||
<li><p>swupd update webservers that serve update content to production machines
|
||
should be appropriately scaled. Specific implementation details for a scalable,
|
||
resilient web server are beyond the scope of this document.</p>
|
||
<p>(See <a class="reference internal" href="../clear/mixer.html#mixer"><span class="std std-ref">mixer</span></a> for more information about update servers.)</p>
|
||
</li>
|
||
</ul>
|
||
</section>
|
||
<section id="adopt-an-agile-methodology">
|
||
<h3>Adopt an agile methodology<a class="headerlink" href="#adopt-an-agile-methodology" title="Link to this heading">¶</a></h3>
|
||
<p>The cloud, and other scaled deployments, are all about flexibility and speed.
|
||
It only makes sense that any Clear Linux OS deployment strategy should follow suit.</p>
|
||
<p>Manually rebuilding your own bundles or mix for every release is not
|
||
sustainable at a large scale. A Clear Linux OS deployment pipeline should be agile
|
||
enough to validate and produce new versions with speed. Whether or not those
|
||
updates actually make their way to your production can be separate
|
||
business decision. However this <em>ability to frequently roll new versions</em> of
|
||
software to your endpoints is an important prerequisite.</p>
|
||
<p>You own the validation and lifecycle of the OS and should treat it like any
|
||
other software development lifecycle. Below are some pointers:</p>
|
||
<ul class="simple">
|
||
<li><p>Thoroughly understand the custom software packages that you will need to
|
||
integrate with Clear Linux OS and maintain along with their dependencies.</p></li>
|
||
<li><p>Setup a path to production for building Clear Linux OS based images. At minimum this
|
||
should include:</p>
|
||
<ul>
|
||
<li><p>A development clr-on-clr environment to test building packages and
|
||
bundles for Clear Linux OS systems.</p></li>
|
||
<li><p>A pre-production environment to deploy Clear Linux OS versions to before
|
||
production</p></li>
|
||
</ul>
|
||
</li>
|
||
<li><p>Employ a continuous integration and continuous deployment (CI/CD)
|
||
philosophy in order to:</p>
|
||
<ul>
|
||
<li><p>Automatically pull custom packages as they are updated from their
|
||
upstream projects or vendors.</p></li>
|
||
<li><p>Generate Clear Linux OS bundles and potentially bootable images with your
|
||
customizations, if any.</p></li>
|
||
<li><p>Measure against metrics and indicators which are relevant to your
|
||
business (e.g. performance, power, etc) from release to release.</p></li>
|
||
<li><p>Integrate with your organization’s governance processes, such as change
|
||
control.</p></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</section>
|
||
<section id="versioning-infrastructure">
|
||
<h3>Versioning infrastructure<a class="headerlink" href="#versioning-infrastructure" title="Link to this heading">¶</a></h3>
|
||
<p>Clear Linux OS version numbers are very important as they apply to the whole
|
||
infrastructure stack from OS components to libraries and applications.</p>
|
||
<p>Good record keeping is important, so you should keep a detailed registry and
|
||
history of previously deployed versions and their contents.</p>
|
||
<p>With a glance at the Clear Linux OS version numbers deployed, you should be able to
|
||
tell if your Clear systems are patched against a particular security
|
||
vulnerability or incorporate a critical new feature.</p>
|
||
</section>
|
||
</section>
|
||
<section id="pick-an-image-distribution-strategy">
|
||
<h2><a class="toc-backref" href="#id5" role="doc-backlink">Pick an image distribution strategy</a><a class="headerlink" href="#pick-an-image-distribution-strategy" title="Link to this heading">¶</a></h2>
|
||
<p>Once you have decided on a usage and update strategy, you should understand
|
||
<em>how</em> Clear Linux OS will be deployed to your endpoints. In a large scale deployment,
|
||
interactive installers should be avoided in favor of automated installations
|
||
or prebuilt images.</p>
|
||
<p>There are many well-known ways to install an operating system at scale. Each
|
||
have their own benefits, and one may lend itself easier in your environment
|
||
depending on the resources available to you.</p>
|
||
<p>See the available <a class="reference internal" href="../../reference/image-types.html#image-types"><span class="std std-ref">Clear Linux* OS image types</span></a>.</p>
|
||
<p>Below are some common ways to install Clear Linux OS to systems at scale:</p>
|
||
<section id="bare-metal">
|
||
<h3>Bare metal<a class="headerlink" href="#bare-metal" title="Link to this heading">¶</a></h3>
|
||
<p>Preboot Execution Environments (PXE) or other out-of-band booting options are
|
||
one way to distribute Clear Linux OS to physical bare metal systems on a LAN.</p>
|
||
<p>This option works well if your customizations are fairly small in size
|
||
and infrastructure can be stateless.</p>
|
||
<p>The Clear Linux OS <a class="reference external" href="https://clearlinux.org/downloads/">Downloads</a> page offers a live image that can be deployed as
|
||
a PXE boot server if one doesn’t already exist in your environment. Also see
|
||
documentation on how to <a class="reference internal" href="../../get-started/bare-metal-install-server.html#bare-metal-install-server"><span class="std std-ref">Install Clear Linux* OS from the live server</span></a>.</p>
|
||
</section>
|
||
<section id="cloud-instances-or-virtual-machines">
|
||
<h3>Cloud instances or virtual machines<a class="headerlink" href="#cloud-instances-or-virtual-machines" title="Link to this heading">¶</a></h3>
|
||
<p>Image templates in the form of cloneable disks are an effective way to
|
||
distribute Clear Linux OS for virtual machine environments, whether on-premises or
|
||
hosted by a Cloud Solution Provider (CSP).</p>
|
||
<p>When used in concert with cloud VM migration features, this can be a good option
|
||
for allowing your applications a degree of high availability and workload
|
||
mobility; VMs can be restarted on a cluster of hypervisor host or moved between
|
||
datacenters transparently.</p>
|
||
<p>The Clear Linux OS <a class="reference external" href="https://clearlinux.org/downloads/">Downloads</a> page offers example prebuilt VM images and is readily
|
||
available on popular CSPs. Also see documentation on how to
|
||
<a class="reference internal" href="../../get-started/index.html#virtual-machine-install"><span class="std std-ref">Install in a virtual machine</span></a>.</p>
|
||
</section>
|
||
<section id="containers">
|
||
<h3>Containers<a class="headerlink" href="#containers" title="Link to this heading">¶</a></h3>
|
||
<p>Containerization platforms allow images to be pulled from a repository and
|
||
deployed repeatedly as isolated containers.</p>
|
||
<p>Containers with a Clear Linux OS image can be a good option to blueprint and ship
|
||
your application, including all its dependencies, as an artifact while
|
||
allowing you or your customers to dynamically orchestrate and scale
|
||
applications.</p>
|
||
<p>Clear Linux OS is capable of running a Docker host, has a container image which can
|
||
be pulled from DockerHub, or can be built as a customized container.
|
||
For more information visit the <a class="reference external" href="https://clearlinux.org/downloads/containers">Containers</a> page.</p>
|
||
</section>
|
||
</section>
|
||
<section id="considerations-with-stateless-systems">
|
||
<h2><a class="toc-backref" href="#id6" role="doc-backlink">Considerations with stateless systems</a><a class="headerlink" href="#considerations-with-stateless-systems" title="Link to this heading">¶</a></h2>
|
||
<p>An important Clear Linux OS concept is statelessness and partitioning of system data
|
||
from user data. This concept can change the way you think about an at scale
|
||
deployment.</p>
|
||
<section id="backup-strategy">
|
||
<h3>Backup strategy<a class="headerlink" href="#backup-strategy" title="Link to this heading">¶</a></h3>
|
||
<p>A Clear Linux OS system and its infrastructure should be considered a commodity and
|
||
be easily reproducible. Avoid focusing on backing up the operating system
|
||
itself or default values.</p>
|
||
<p>Instead, focus on backing up what’s important and unique - the application
|
||
and data. In other words, only focus on backing up critical areas like
|
||
<code class="file docutils literal notranslate"><span class="pre">/home</span></code>, <code class="file docutils literal notranslate"><span class="pre">/etc</span></code>, and <code class="file docutils literal notranslate"><span class="pre">/var</span></code>.</p>
|
||
</section>
|
||
<section id="meaningful-logging-telemetry">
|
||
<h3>Meaningful logging & telemetry<a class="headerlink" href="#meaningful-logging-telemetry" title="Link to this heading">¶</a></h3>
|
||
<p>Offload logging and telemetry from endpoints to external servers, so it is
|
||
persistent and can be accessed on another server when an issue occurs.</p>
|
||
<ul>
|
||
<li><p>Remote syslogging in Clear Linux OS is available through the
|
||
<a class="reference external" href="https://www.freedesktop.org/software/systemd/man/systemd-journal-remote.service.html">systemd-journal-remote.service</a></p></li>
|
||
<li><p>Clear Linux OS offers a <a class="reference internal" href="../clear/telemetrics.html#telem-guide"><span class="std std-ref">Telemetrics</span></a>, which can be a powerful tool
|
||
for a large deployment to quickly crowdsource issues of interest. Take
|
||
advantage of this feature with careful consideration of the target audience
|
||
and the kind of data that would be valuable, and expose events
|
||
appropriately.</p>
|
||
<p>Like any web server, the telemetry server should be appropriately scaled and
|
||
resilient. Specific implementation details for a scalable, resilient web
|
||
server are beyond the scope of this document.</p>
|
||
</li>
|
||
</ul>
|
||
</section>
|
||
<section id="orchestration-and-configuration-management">
|
||
<h3>Orchestration and configuration management<a class="headerlink" href="#orchestration-and-configuration-management" title="Link to this heading">¶</a></h3>
|
||
<p>In cloud environments, where systems can be ephemeral, being able to
|
||
configure and maintain generic instances is valuable.</p>
|
||
<p>Clear Linux OS offers an efficient cloud-init style solution, <a class="reference external" href="https://github.com/clearlinux/micro-config-drive">micro-config-drive</a>,
|
||
through the <em>os-cloudguest</em> bundles which allow you to configure many Day 1
|
||
tasks such as setting hostname, creating users, or placing
|
||
SSH keys in an automated way at boot. For more information on
|
||
automating configuration during deployment of Clear Linux OS endpoints see the
|
||
<a class="reference internal" href="../../get-started/ipxe-install.html#ipxe-install"><span class="std std-ref">Install Clear Linux OS Over the Network with iPXE</span></a> guide.</p>
|
||
<p>A configuration management tool is useful for maintaining consistent system
|
||
and application-level configuration. Ansible* is offered through the
|
||
<em>sysadmin-hostmgmt</em> bundle as a configuration management and automation
|
||
tool.</p>
|
||
</section>
|
||
<section id="cloud-native-applications">
|
||
<h3>Cloud-native applications<a class="headerlink" href="#cloud-native-applications" title="Link to this heading">¶</a></h3>
|
||
<p>An Infrastructure OS can design for good behavior, but it is ultimately up
|
||
to applications to make agile design choices. Applications deployed
|
||
on Clear Linux OS should aim to be host-aware but not depend on any specific host to
|
||
run. References should be relative and dynamic when possible.</p>
|
||
<p>The application architecture should incorporate an appropriate tolerance for
|
||
infrastructure outages. Don’t just keep stateless design as a noted feature.
|
||
Continuously test its use; Automate its use by redeploying Clear Linux OS and
|
||
application on new hosts. This naturally minimizes configuration drift,
|
||
challenges your monitoring systems, and business continuity plans.</p>
|
||
</section>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
<div class="clearer"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
||
<div class="sphinxsidebarwrapper">
|
||
<p class="logo"><a href="../../index.html">
|
||
<img class="logo" src="../../_static/clearlinux.png" alt="Logo of Clear Linux* Project Docs"/>
|
||
</a></p>
|
||
<div>
|
||
<h3><a href="../../index.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#">Deploy at Scale</a><ul>
|
||
<li><a class="reference internal" href="#overview">Overview</a></li>
|
||
<li><a class="reference internal" href="#pick-a-usage-and-update-strategy">Pick a usage and update strategy</a><ul>
|
||
<li><a class="reference internal" href="#create-your-own-linux-distribution-mix">Create your own Linux distribution (mix)</a></li>
|
||
<li><a class="reference internal" href="#adopt-an-agile-methodology">Adopt an agile methodology</a></li>
|
||
<li><a class="reference internal" href="#versioning-infrastructure">Versioning infrastructure</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#pick-an-image-distribution-strategy">Pick an image distribution strategy</a><ul>
|
||
<li><a class="reference internal" href="#bare-metal">Bare metal</a></li>
|
||
<li><a class="reference internal" href="#cloud-instances-or-virtual-machines">Cloud instances or virtual machines</a></li>
|
||
<li><a class="reference internal" href="#containers">Containers</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#considerations-with-stateless-systems">Considerations with stateless systems</a><ul>
|
||
<li><a class="reference internal" href="#backup-strategy">Backup strategy</a></li>
|
||
<li><a class="reference internal" href="#meaningful-logging-telemetry">Meaningful logging & telemetry</a></li>
|
||
<li><a class="reference internal" href="#orchestration-and-configuration-management">Orchestration and configuration management</a></li>
|
||
<li><a class="reference internal" href="#cloud-native-applications">Cloud-native applications</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
<div>
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="cpu-performance.html"
|
||
title="previous chapter">CPU Power and Performance</a></p>
|
||
</div>
|
||
<div>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="developer-workstation.html"
|
||
title="next chapter">Developer Workstation</a></p>
|
||
</div>
|
||
<div role="note" aria-label="source link">
|
||
<h3>This Page</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../../_sources/guides/maintenance/deploy-at-scale.rst.txt"
|
||
rel="nofollow">Show Source</a></li>
|
||
</ul>
|
||
</div>
|
||
<search id="searchbox" style="display: none" role="search">
|
||
<h3 id="searchlabel">Quick search</h3>
|
||
<div class="searchformwrapper">
|
||
<form class="search" action="../../search.html" method="get">
|
||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||
<input type="submit" value="Go" />
|
||
</form>
|
||
</div>
|
||
</search>
|
||
<script>document.getElementById('searchbox').style.display = "block"</script>
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../../genindex.html" title="General Index"
|
||
>index</a></li>
|
||
<li class="right" >
|
||
<a href="developer-workstation.html" title="Developer Workstation"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="cpu-performance.html" title="CPU Power and Performance"
|
||
>previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../../index.html">Documentation for Clear Linux* project</a> »</li>
|
||
<li class="nav-item nav-item-1"><a href="../index.html" >Guides</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">Deploy at Scale</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="footer" role="contentinfo">
|
||
© Copyright 2022 Intel Corporation. All Rights Reserved..
|
||
Last updated on Nov 04, 2024.
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.1.3.
|
||
</div>
|
||
</body>
|
||
</html> |