github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/cmd/juju/helptopics/glossary.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package helptopics
     5  
     6  const Glossary = `
     7  Bootstrap
     8    To boostrap an environment means initializing it so that Services may be
     9    deployed on it.
    10  
    11  Charm
    12    A Charm provides the definition of the service, including its metadata,
    13    dependencies to other services, packages necessary, as well as the logic for
    14    management of the application. It is the layer that integrates an external
    15    application component like Postgres or WordPress into Juju. A Juju Service may
    16    generally be seen as the composition of its Juju Charm and the upstream
    17    application (traditionally made available through its package).
    18  
    19  Charm URL
    20    A Charm URL is a resource locator for a charm, with the following format and
    21    restrictions:
    22  
    23      <schema>:[~<user>/]<collection>/<name>[-<revision>]
    24  
    25    schema must be either "cs", for a charm from the Juju charm store, or "local",
    26    for a charm from a local repository.
    27  
    28    user is only valid in charm store URLs, and allows you to source charms from
    29    individual users (rather than from the main charm store); it must be a valid
    30    Launchpad user name.
    31  
    32    collection denotes a charm's purpose and status, and is derived from the
    33    Ubuntu series targeted by its contained charms: examples include "precise",
    34    "quantal", "oneiric-universe".
    35  
    36    name is just the name of the charm; it must start and end with lowercase
    37    (ascii) letters, and can otherwise contain any combination of lowercase
    38    letters, digits, and "-"s.
    39  
    40    revision, if specified, points to a specific revision of the charm pointed to
    41    by the rest of the URL. It must be a non-negative integer.
    42  
    43  Endpoint
    44    The combination of a service name and a relation name.
    45  
    46  Environment
    47    An Environment is a configured location where Services can be deployed onto.
    48    An Environment typically has a name, which can usually be omitted when there's
    49    a single Environment configured, or when a default is explicitly defined.
    50    Depending on the type of Environment, it may have to be bootstrapped before
    51    interactions with it may take place (e.g. EC2). The local environment
    52    configuration is defined in the ~/.juju/environments.yaml file.
    53  
    54  Machine Agent
    55    Software which runs inside each machine that is part of an Environment, and is
    56    able to handle the needs of deploying and managing Service Units in this
    57    machine.
    58  
    59  Placement Directive
    60    A provider-specific string that directs the provisioner on how to allocate a
    61    machine instance.
    62  
    63  Provisioning Agent
    64    Software responsible for automatically allocating and terminating machines in
    65    an Environment, as necessary for the requested configuration.
    66  
    67  Relation
    68    Relations are the way in which Juju enables Services to communicate to each
    69    other, and the way in which the topology of Services is assembled. The Charm
    70    defines which Relations a given Service may establish, and what kind of
    71    interface these Relations require.
    72  
    73    In many cases, the establishment of a Relation will result into an actual TCP
    74    connection being created between the Service Units, but that's not necessarily
    75    the case. Relations may also be established to inform Services of
    76    configuration parameters, to request monitoring information, or any other
    77    details which the Charm author has chosen to make available.
    78  
    79  Repository
    80    A location where multiple charms are stored. Repositories may be as simple as
    81    a directory structure on a local disk, or as complex as a rich smart server
    82    supporting remote searching and so on.
    83  
    84  Service
    85    Juju operates in terms of services. A service is any application (or set of
    86    applications) that is integrated into the framework as an individual component
    87    which should generally be joined with other components to perform a more
    88    complex goal.
    89  
    90    As an example, WordPress could be deployed as a service and, to perform its
    91    tasks properly, might communicate with a database service and a load balancer
    92    service.
    93  
    94  Service Configuration
    95    There are many different settings in a Juju deployment, but the term Service
    96    Configuration refers to the settings which a user can define to customize the
    97    behavior of a Service.
    98  
    99    The behavior of a Service when its Service Configuration changes is entirely
   100    defined by its Charm.
   101  
   102  Service Unit
   103    A running instance of a given Juju Service. Simple Services may be deployed
   104    with a single Service Unit, but it is possible for an individual Service to
   105    have multiple Service Units running in independent machines. All Service Units
   106    for a given Service will share the same Charm, the same relations, and the
   107    same user-provided configuration.
   108  
   109    For instance, one may deploy a single MongoDB Service, and specify that it
   110    should run 3 Units, so that the replica set is resilient to failures.
   111    Internally, even though the replica set shares the same user-provided
   112    configuration, each Unit may be performing different roles within the replica
   113    set, as defined by the Charm.
   114  
   115  Service Unit Agent
   116    Software which manages all the lifecycle of a single Service Unit.
   117  
   118  `