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 `