Author: sandervanderburg
Date: Tue Sep 7 16:04:30 2010
New Revision: 23678
URL: https://svn.nixos.org/websvn/nix/?rev=23678&sc=1
Log:
Added an overview section to the manual and some tweaks
Added:
disnix/disnix/trunk/doc/manual/model.dia (contents, props changed)
disnix/disnix/trunk/doc/manual/model.png (contents, props changed)
disnix/disnix/trunk/doc/manual/overview.xml
Modified:
disnix/disnix/trunk/doc/manual/Makefile.am
disnix/disnix/trunk/doc/manual/introduction.xml
disnix/disnix/trunk/doc/manual/manual.xml
Modified: disnix/disnix/trunk/doc/manual/Makefile.am
==============================================================================
--- disnix/disnix/trunk/doc/manual/Makefile.am Tue Sep 7 15:12:41 2010
(r23677)
+++ disnix/disnix/trunk/doc/manual/Makefile.am Tue Sep 7 16:04:30 2010
(r23678)
@@ -13,7 +13,9 @@
-P doc.collab.show=0 \
-P latex.output.revhistory=0
-MANUAL_SRCS = manual.xml introduction.xml installation.xml
+FIGURES = model.png
+
+MANUAL_SRCS = manual.xml introduction.xml overview.xml installation.xml
version.txt:
echo -n $(VERSION) > version.txt
@@ -40,9 +42,10 @@
install-data-local: manual.html
$(INSTALL) -d $(DESTDIR)$(docdir)/manual
$(INSTALL_DATA) manual.html $(DESTDIR)$(docdir)/manual
+ $(INSTALL_DATA) $(FIGURES) $(DESTDIR)$(docdir)/manual
KEEP = manual.html manual.is-valid version.txt
-EXTRA_DIST = $(MANUAL_SRCS) $(KEEP)
+EXTRA_DIST = $(MANUAL_SRCS) $(FIGURES) $(KEEP)
DISTCLEANFILES = $(KEEP)
Modified: disnix/disnix/trunk/doc/manual/introduction.xml
==============================================================================
--- disnix/disnix/trunk/doc/manual/introduction.xml Tue Sep 7 15:12:41
2010 (r23677)
+++ disnix/disnix/trunk/doc/manual/introduction.xml Tue Sep 7 16:04:30
2010 (r23678)
@@ -5,12 +5,7 @@
<title>Introduction</title>
<para>
-Disnix is a distributed deployment extension for Nix,
-a purely functional package manager.
-</para>
-
-<para>
-Nix has various advantages
+Nix is a purely function packager, which has various advantages
over conventional package managers, such as the option to install
multiple versions or variants of components safely next to each
other, a declarative language to specify how to build a component,
@@ -18,6 +13,8 @@
</para>
<para>
+Disnix is a distributed deployment extension for the
+Nix package manager.
Disnix reuses the Nix package manager for local deployment and
extends the deployment concepts to distributed systems.
</para>
@@ -34,12 +31,13 @@
systems.
</para>
<para>
-Disnix requires three models each capturing a specific concern
-in deploying a distributed system. The services model is used
+Disnix requires three models, each capturing a specific concern
+in deploying a distributed system. The <emphasis>services</emphasis> model is
used
for specifying the components of a distributed system and
-its inter-dependencies. The infrastructure model is used for
+its inter-dependencies.
+The <emphasis>infrastructure model</emphasis> is used for
specifying the network of machines and their relevant properties.
-The distribution model is used to map services to machines
+The <emphasis>distribution</emphasis> model is used to map services to machines
in the network.
</para>
</simplesect>
@@ -121,6 +119,7 @@
a distributed system into a heterogeneous network (i.e. a network consisting
of various types of machines, running different operating systems). Disnix
reuses
Nix to automatically build a component for the given target platform.
+Optionally, it can also perform builds on target machines in the network.
</para>
</simplesect>
@@ -137,7 +136,7 @@
a plugin architecture which can be used to integrate
custom developed components used for the activation and deactivation of
services,
and a custom plugin that provides access to deployment operations through
-a specific interfaces.
+specific interfaces.
</para>
<para>
Modified: disnix/disnix/trunk/doc/manual/manual.xml
==============================================================================
--- disnix/disnix/trunk/doc/manual/manual.xml Tue Sep 7 15:12:41 2010
(r23677)
+++ disnix/disnix/trunk/doc/manual/manual.xml Tue Sep 7 16:04:30 2010
(r23678)
@@ -29,5 +29,6 @@
</info>
<xi:include href="introduction.xml" />
+ <xi:include href="overview.xml" />
<xi:include href="installation.xml" />
</book>
Added: disnix/disnix/trunk/doc/manual/model.dia
==============================================================================
Binary file. No diff available.
Added: disnix/disnix/trunk/doc/manual/model.png
==============================================================================
Binary file. No diff available.
Added: disnix/disnix/trunk/doc/manual/overview.xml
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ disnix/disnix/trunk/doc/manual/overview.xml Tue Sep 7 16:04:30 2010
(r23678)
@@ -0,0 +1,66 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:id="chap-overview">
+
+<title>Overview</title>
+
+<mediaobject>
+<imageobject>
+<imagedata fileref="model.png" format="PNG"/>
+</imageobject>
+</mediaobject>
+
+<para>
+The figure above shows the concept of Disnix in a nutshell.
+In the center of the figure the <command>disnix-env</command>
+command line tool is shown, which performs the complete deployment
+process of a distributed system.
+The tool requires three models as input parameters, which are shown
+on the left part of the figure.
+The <emphasis>services</emphasis> model describes of which distributable
+components the system consists, their inter-dependencies and their types.
+The service model has a reference to the file
<command>all-packages.nix</command>,
+which captures all the intra-dependencies of every service and all the local
dependencies,
+such as libraries, configuration files and compilers.
+The <emphasis>infrastructure</emphasis> model describes all the machines
+in the network and their relevant properties and capabilities.
+The <emphasis>distribution</emphasis> model maps services defined
+in the services model.
+On the right part of the figure, the network is shown in which the system
+has to be deployed. Every machine in the network requires the
+<emphasis>DisnixService</emphasis> component installed, so that
+remote deployment steps can be performed from the coordinator machine.
+</para>
+
+<para>
+The machine on which <command>disnix-env</command> is executed is called
+the <emphasis>coordinator</emphasis> machine. The machines in the network
+are called <emphasis>targets</emphasis>.
+</para>
+
+<para>
+By writing instances of the specifications shown above and by running the
following command:
+</para>
+
+<para>
+<command>disnix-env -s services.nix -i infrastructure.nix -d
distribution.nix</command>
+</para>
+
+<para>
+All the services that are defined in the distribution model are built from
source code,
+then transferred to the machines in the network and finally activated in the
right order.
+By adapting one of the models and by running <command>disnix-env</command>
again,
+an upgrade is performed. In this case only services that are changed are built
from
+source code, only components that have to be upgraded are transferred to target
+machines and only changed services are deactivated and activated (also in the
right
+order), making this phase efficient and reliable.
+</para>
+
+<para>
+Since the coordinator machine may be of a different type as one of the
machines in the
+network, it may not be able to compile a service on the coordinator for the
given target platform.
+In those cases, Disnix can also compile a service on a target machine in the
network,
+which is achieved by specifying the <command>--build-on-targets</command>
option.
+</para>
+
+</chapter>
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits