QuickStart: Basho Riak KV Enterprise

Start your introduction to Cloudsoft AMP by walking through a successful deployment of a non-trivial Basho Riak KV Enterprise platform in a multi-data center configuration. That's a quick start!

You need a Mac or Linux environment (to run Cloudsoft AMP) and AWS credentials (to spin up a Riak KV Enterprise fabric). However even if you don't have these, you can still follow the course but will skip some practical steps.

An introduction to AMP

Introduction

  • The purpose of this module is to provide a very brief introduction to Cloudsoft AMP and to lead you through a successful deployment of a non-trivial Basho Riak KV Enterprise platform in a multi-data center configuration.
  • This will allow you to see how Cloudsoft AMP can model, deploy and manage complex enterprise fabrics to support services that need to be globally available, scalable and resilient.

What is AMP?

AMP Pro is a 100% Open Source application management platform

that provides cloud agility and governance

without losing control

What if you could…

What are Blueprints?

A central concept in AMP is that of a blueprint

 

Blueprints are descriptors or patterns which describe how Cloudsoft AMP should deploy applications

What are Entities?

An entity is AMP’s representation of a software package or service which it can control or interact with

 

A blueprint is comprised of one or more entities

What does AMP do – and how?

Autonomic Management

live model of runtime application topology

sensors (metrics) on each entity

effectors (operations) on each entity

policies (management logic) on each entity

Logical architecture

This very simple overview illustrates how your applications are 'blueprinted', deployed, monitored and managed in any location by Cloudsoft AMP.

Tell me more about blueprints

  • A blueprint defines an application, using a YAML syntax
  • A basic blueprint comprises a simple application
    • e.g. a web-application server running a WAR file plus a data store
  • Lets you deploy it to infrastructure
  • Connects all the different components of an application
    • e.g. so the web application knows where the database is

What are Sensors?

Sensors are properties which show the state of an entity - providing a real-time picture of an entity within an application

 

What are Effectors?

Effectors expose the operations you can perform (manually or programmatically) on your application and it’s components

What are the basic concepts of AMP?

  • Effector
    Expose the operations you can perform (manually or programmatically) on your application and it’s components
  • Sensor
    Properties which show the state of an entity - providing a real-time picture of an entity within an application
  • Blueprint
    Descriptors which describe how Cloudsoft AMP should deploy applications
  • Entity
    AMP’s representation of a software package or service which it can control or interact with

An introduction to YAML

Why do you need to know YAML?

  • YAML is a key component of AMP
  • It is the language used to create blueprints
  • It can be used as the glue to connect existing blueprints whether written in YAML or Java

What is YAML?

  • YAML: YAML Ain't Markup Language
  • YAML is a human friendly data serialization standard for all programming languages
  • Its familiar indented outline and lean appearance make it especially suited for tasks where humans are likely to view or edit data structures, such as configuration files.

 

Why YAML?

  • The design goals for YAML are:
    • is easily readable by humans
    • data is portable between programming languages
    • YAML matches the native data structures of agile languages
    • has a consistent model to support generic tools
    • is expressive and extensible
    • is easy to implement and use

 

 

Common YAML mistakes

Only spaces, no tabs

  • The indentations in a YAML configuration are done by using the space key and not the Tab key
  • Any indentation made by using the Tab key will result in errors

Indentations

  • Indentations are extremely important in YAML configuration
  • You must indent your properties and lists with 1 or more spaces

 

YAML Recommended

  • The recommended way to write a blueprint is as a YAML file
  • This is true both for building an application out of existing blueprints, and for building new integrations
  • The use of Java is reserved for those use-cases where the provisioning or configuration logic is very complicated

YAML Editor

  • YAML files can be edited in any editor (even Notepad)
  • The editor you use is personal preference
  • It is recommended you use a YAML-aware editor
    • Colour-coding
    • Auto-complete (limited)
    • Can collapse/expand sections
  • Some options:

 

How do you create a blueprint?

  • AMP Blueprints can only be written in YAML
  • AMP Blueprints can only be written in Java
  • AMP Blueprints can be written in YAML or Java
  • AMP Blueprints can be written in JAML

Launch AMP and deploy the application

What are you going to do?

You will run Cloudsoft AMP locally on your computer

Cloudsoft AMP knows how to deploy and manage a Riak KV Fabric (via an existing Java blueprint)

You will run a YAML-blueprint that uses the existing blueprint to create an instance of the fabric in 3 geographies

The YAML-blueprint will also create a simple chat web application (in 1 location) that uses the fabric to store chat messages

Ways of interacting with AMP

  • Cloudsoft AMP can be used to model, deploy and actively manage your applications via a combination of 3 interfaces - these are the web console, the REST API and the Command-Line Interface (CLI)
  • In this training module, you use the AMP web console and REST API
  • Contact training@cloudsoftcorp.com if you wish to use the CLI so that we can provide you with a download link and usage instructions

 

Overview of ways to use AMP

Configure and deploy

You will need to have access to a Linux or Mac environment to run AMP

You will also need to have a Java Runtime Environment installed (v1.7 or later).

  1. You can download a quick-launch version of Cloudsoft AMP from Github (~57MB compressed)
  2. Unzip the file
  3. Launch a Command Prompt / Terminal (in the directory you unzipped the download to) and run AMP:

Cloudsoft AMP is now running and available

If you experience any issues running AMP on your computer (or with any other activities in this training module), please email training@cloudsoftcorp.com for assistance

Login to AMP

  • View Cloudsoft AMP in your browser:

URL

http://localhost:8081/

  • You are presented with the AMP “Create Application” wizard

You will not use the wizard (as this training module will present and explain the complete YAML blueprint) – click “YAML Composer”

 

Download the blueprint

Before you add the YAML-blueprint to Cloudsoft AMP, you need to download and customize it

Let's download it first using this download link or copy it from below.

Copy/paste the content into your YAML editor.

Are you ready to customize the blueprint?

  • Do you have a Riak KV Enterprise private download URL? (Not essential if one is present in the blueprint)
  • Do you have your AWS Access Key ID (identity)?
  • Do you have your AWS Secret Access Key (credential)?

Can you find the 5 sections you need to customize?

Hint: look for <>

Add the blueprint to AMP

Once you have edited the blueprint, copy it to your clipboard and return to Cloudsoft AMP in your web browser. Do this by pasting the blueprint into the Blueprint Composer

Note: The screenshot purposely omits the AWS credentials

Run the blueprint

Cloudsoft AMP will now provision VMs in the following 3 AWS locations

California

N Virginia

Frankfurt

us-west-1

us-east-1

eu-central-1

Once provisioned, the Riak KV Enterprise fabric (and simple chat application) will be installed and configured

Clouds

How does Cloudsoft AMP provision VMs?

For most cloud provisioning tasks, AMP uses Apache jclouds

jclouds is an open source

multi-platform toolkit for the Java platform

Monitor progress