Understanding REVVOPS V8 Architecture
REVVOPS V8 architecture consists of a sharded monolithic core - REVVOPS-V8-CORE.EXE, a command line interface (CLI) - revvops.exe and data center software - REVVOPS-V8-DC.EXE. REVVOPS-V8-DC.EXE allows you to run shards on your own hardware, but it's not currently included in the REVVOPS V8 free download software distribution.

All user interaction with the Core is handled through the CLI, so you use the REVVOPS CLI (revvops.exe) to control the REVVOPS Core (REVVOPS-V8-CORE.EXE). Conceptually, you can think of the Core as a large piece of rock, composed of shards. REVVOPS V8 shards are sharply defined pieces of high performance imperatively programmed binary machine code that can realise any cloud functionality as a declarative expression of a desired state configuration system.

Shards can do things like create infrastructure to support specific architectures, automate the performance of DevSecOps security procedures, or deploy microservices based applications as well as create the infrastructure for them. Shards can be statically included within the V8 Core prior to release, or dynamically loaded at run time from the host file system and remote data sources.

About the REVVOPS V8 Software Distribution
The REVVOPS V8 free download software distribution consists of a single zip file, that only requires extracting before use, so no conventional Windows installation is needed. The same will apply for Linux and macOS editions when they become available. If you need a Linux or macOS edition now, please get in touch and we'll create a custom build for you. It's best to call us on +44(0)207 157 9683.

REVVOPS V8 Command Line Interface (CLI) Tutorial
In this example session, the REVVOPS V8 software distribution has been extracted to the root of the C drive on a Windows machine, hence the path name in the command prompt, but you would probably extract it to some other directory of your choice.

You should first initialize all the shards within the V8 Core and set up the underlying Pulumi IaC platform. You do this with the init subcommand. The output will list all the shards that are supported in this version of the V8 Core:

C:\revvops-v8.0.73-windows-x64>revvops init
...

You can now bring up any shard you want that was listed in the output of the previous init subcommand, as long as it doesn't have '-ep' or 'redline' in the name, which are enterprise versions, not enabled in the free download. You may want to think more in terms of 'cloud application', 'cloud utility', 'cloud security system', 'cloud ... whatever', as opposed to shards, which is more of an implementation detail. So here, we're bringing up REVVOPS One single instance cloud infrastructure:

C:\revvops-v8.0.73-windows-x64>revvops up --arch=revvops-one
...

Now we're taking down REVVOPS One infrastructure; meaning we're deleting or destroying all the cloud resources associated with the infrastructure that the application has created:

C:\revvops-v8.0.73-windows-x64>revvops down --arch=revvops-one
...

After you've taken down a cloud application, sometimes you may wish to delete or clean out the local storage area where information about the state of cloud resources is stored (when the application is still 'running' or active). It clears the way to run the application again from a clean sheet so to speak, though it's not needed that often. You can use the clean subcommand to do this, as shown below. In the conceptual design of the Pulumi IaC platform, these storage areas are known as 'stacks' and the V8 Core uses a separate stack for each shard. You can learn more about the Pulumi stack concept here.

C:\revvops-v8.0.73-windows-x64>revvops clean --arch=revvops-one
...

The REVVOPS V8 Core and CLI advance in unison, so they have a synchronized version number. You can obtain this information with the version subcommand:

C:\revvops-v8.0.73-windows-x64>revvops version
...


Specifying REVVOPS V8 Application Configuration Values
REVVOPS V8 application configuration values are mainly specified in YAML files, though can also be set upon command line invocation. For AWS provider configuration values (including access key credentials), other cloud provider credentials and application specific cases, OS environment variables may be used as a third method.

YAML configuration file names have the form shard-name.edit.yaml, so for the REVVOPS One shard/application you would put your configuration values in revvops-one.edit.yaml and for the REVVOPS Dynamic Balanced shard/application you would put your configuration values in revvops-dynamic-balanced.edit.yaml and so on. Do not edit the files ending with .default.yaml as these are reference defaults should you wish to go back to 'factory default settings' after your .edit.yaml file has gone through a lot of changes. Your .edit.yaml file is the one you should version. For each shard the .edit.yaml and .default.yaml files are identical in the V8 software distribution.

When issuing a  revvops up  command, configuration values can be set on the command line using the form:

-c yaml_key_name=yaml_key_value

either single or double quotes can also be used to enclose the whole token:

-c 'yaml_key_name=yaml_key_value'

Note that there should be no space characters preceding or following the  '='  character. An example of setting configuration values on the command line would be:

revvops up --arch=revvops-one -c image_provisioning=OTF-nginx

This specifies automatic provisioning of NGINX web server on your single instance, and overrides the default value specified in the YAML file of  OTF_apache_httpd  for Apache.

How to specify an AWS Region, Access Key ID and Secret Access Key
If you already have the AWS Command Line Interface (CLI) installed and configured with an AWS Region value you wish to use with a REVVOPS shard/application then you can omit that value from its application YAML configuration file. Otherwise simply edit the file and include your chosen value for the aws:region YAML key, for example in revvops-one.edit.yaml you could have:

aws:region: us-west-2

to indicate you want REVVOPS One architecture created in the US West (Oregon) AWS Region.

Similarly, if you have the AWS CLI already configured with appropriate access keys and they're associated with an AWS CLI profile name, you can make use of them in the REVVOPS shard/application YAML configuration file, by setting the value of the aws:profile YAML key with that profile name. For example in revvops-one.edit.yaml:

aws:profile: revvops_test

On Windows the AWS CLI stores access keys in the file credentials under the user profile directory, so in the above example credentials would contain an entry like:
[revvops_test]
aws_access_key_id = ********************
aws_secret_access_key = ****************************************
If you don't have the AWS CLI installed or it hasn't been configured with appropriate access keys, you can mention them explicitly in the REVVOPS shard/application YAML configuration file without using an AWS CLI profile name, by setting the YAML keys  aws:access_key_id  and aws:secret_access_key. For example in  revvops-one.edit.yaml:

aws:access_key_id: ********************
aws:secret_access_key: ****************************************