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