Getting Started
We're going to go over some simple terminology and concepts commonly used in Atmosphere.
Terminology - Atmosphere
User
A User is an individual that has logged into Atmosphere.
Users have:
- Username (unique)
- Name
Group
Groups are used similar to the linux “user/group” model.
- A Group of one will exist for each User.
- A group can contain one or more Users
- Users can be in more than one Group at once
- Groups (not Users) are the “owners” of cloud resources
Provider
Provider (also known as cloud, cloud provider) is a term used by atmosphere to identify a specific installation of cloud software.
- Providers have a specific set of credentials common to all users (That uniquely identifies them)
- Ex: auth_url, version, …
- ProviderType
- Ex: OpenStack, AWS, …
- Providers are owned by a Group (usually a staff/admin)
Identity
Identities are a term used by atmosphere to identify a specific user on a Provider.
- Identities have a specific set of credentials for the user
- Example: key(username), secret(password)
- Identities are owned by a Group
Projects
Projects (in Atmosphere) represent a collection of Cloud Resources (not sizes) that allow users to logically group related instances/volumes.
- A project is required for new instance/volume created in Atmosphere.
- Projects have a name
- Projects are owned by a Group
Application
Applications (displayed to the user in troposphere as Image) are a way to abstract a “history” of related Machines (via ApplicationVersion).
Ex:
Image Name in OpenStack | Application | ApplicationVersion | ProviderMachines |
---|---|---|---|
Ubuntu 16.04 v1 (1111-222-333-4444) | 1 - Ubuntu 16.04 | 1.0 | Tucson Cloud (1111-222-333-4444) |
Ubuntu 16.04 v1 (1111-222-333-4444) | 1 - Ubuntu 16.04 | 1.0 | Austin Cloud (1111-222-333-4444) |
Ubuntu 16.04 v2 (2222-333-444-5555) | 1 - Ubuntu 16.04 | 2.0 | Tucson Cloud (2222-333-444-5555) |
ApplicationVersion
ApplicationVersion (also known as Version) is a grouping of one or more Machines.
(In Atmosphere, it is common to replicate a Machine (ex: Ubuntu 16.04) across several Providers (ex: iPlant - Austin, iPlant - Tucson, …).)
Because the image is (mostly) identical across providers, the grouping serves as a way to simplify the cloud-agnostic nature of Atmosphere.
- ApplicationVersions have One or more ProviderMachine
- ApplicationVersions have a name (1.0, 2.0-alpha, beta-do-not-use, …)
- ApplicationVersions have a change log (that helps users understand what changed between versions)
Terminology - Cloud
Cloud resource
Cloud Resources are a term used by atmosphere to identify a Volume, Instance, Size, or Machine.
Size
Sizes (also known as flavors in Openstack) are a preset configuration of CPUs, GB of memory, and Disk space that will be allocated to a Machine when creating an Instance.
Sizes have:
- CPU
- RAM (in GB)
- Disk (for the image, in GB, 0 means "create disk image that is the exact size of the Machine")
- Ephemeral (as an additional mount, in GB)
Machine
Machines (also known as Image, or ProviderMachine) are like a blueprint that will tell the Cloud how to create a new Instance.
- Machines, minimally, have an operating system
- They may also be installed and configured with additional software applications as desired.
- They are a fixed size (usually 8GB-60GB)
- Administrators and other users can create new machines from Instances via Machine Requests and/or downloading new image files.
Volume
Volumes are how users can allocate additional data storage (by policy, up to 1TB) to be used with their instances.
- Volumes have a pre-set size (1-1000gb)
- Volumes start unformatted
- Atmosphere handles mkfs on first attach + mounting.
- Can be created based on an Image and “Booted” as an instance. (Bootable volumes are not yet a part of atmosphere)
Instance
Instances (also known as nodes, or servers) is the virtual machine that will be created by end users.
- Instances have a specific size
- Instances are based on an Image or Volume.
- Atmosphere handles the networking and pre-configuration of instances prior to handing control over to the User.
Concepts in Atmosphere and Openstack
Concept: Quota and Allocation
Quotas are an admin-set limit on the number of resources a specific cloud user can create at any one time. - (Ex: Quota of 2 CPU, 8 GB ram) Allocations are a way for Atmosphere to track the amount of time a specific cloud user has used their resource. - (Ex: Allocation for 168 hours of compute in one month)
Conecpt: Machine Requests (Imaging)
When a user launches an instance and configures it to their liking, they can create a MachineRequest that will alert staff users to their desire to create a new Machine. Staff members can then accept/reject the request which will start an automated, asynchronous "imaging" process.
During the imaging process: - The 'machine' is created: - Create and Download a snapshot of the Instance - Mount and clean the image file to remove “User-specific” data - Upload new image to cloud - The 'machine' is processed: - Appropriate metadata is attached to the new image - Atmosphere properly catalogs the image into the right Application, Version, and ProviderMachine. - The 'machine' is validated: - Atmosphere will launch the instance and wait for it to go to "green-light active". - Atmosphere will then destroy the launched instance - The 'machine' is completed: - The 'machine owner' is e-mailed - The machine is ready for launch by others.
Concept: Projects
Project is an overloaded term, at any one time it could be referring to: - Atmosphere Project : A collection of Cloud Resources. - OpenStack “project” aka Tenant: A grouping of users inside OpenStack - TACC/Xsede project: A collection of TACC/Xsede users.