turbo lamp #9

Supports: trusty
Add to new model

Turbo Lamp Bundle

This is a bundle to deploy the Turbo LAMP stack.
LAMP is an acronym
for a bundle of software including Linux, Apache, MySQL, and PHP.

In this case the Turbo LAMP stack is a bundle that contains software optimized
for Linux running on Power8 Little Endian (ppc64le). This bundle also happens
to work on Linux on Intel x86_64 hardware (amd64).

The Turbo LAMP stack contains the latest version of Ubuntu Linux, Zend-Server
as the Apache HTTP server and the PHP component, Mariadb replaces the MySQL,
and using Mellanox networking technology to optimize the network bandwith
between the virtual machines.

Ubuntu Server 14.04 LTS

Ubuntu Server 14.04 is the latest Long Term Stable (LTS) release supported by
Canonical for five years. Ubuntu is a OpenSource Linux distro based on Debian
with support for Power8 Little Endian. It is the leading platform for scale-out
computing.

Whether you want to deploy an OpenStack cloud, a Hadoop cluster, or a Turbo
Lamp Stack, Ubuntu Server delivers the best value scale-out performance.

With complete tool chain and package support for Power8 Little Endian Ubuntu
Server 14.04 LTS provided the software foundation for the Turbo Lamp Stack.
Ubuntu Server 14.04 LTS ran as a Power KVM guest housing MariaDB, Zend Server,
and the latest Mellanox drivers all tuned for Power8 Little Endian.

MAAS

Metal as a Service (MAAS) is an OpenSource tool that brings the
language of the cloud to physical servers. It makes it easy to setup the
hardware on which to deploy any service that needs to scale-out dynamically.
MAAS allows system administrations to treat their private bare metal hardware,
such as Power8 Little Endian servers, as an elastic cloud. MAAS enlists
physical or virtual machines through which Juju can deploy workloads onto be it
on the bare metal or through a virtualization mechanism such as Linux
Containers (LXC) or Kernel-based Virtual Machine (KVM).

In the Turbo LampStack Solution MAAS was provisioned onto a
“command-and-control” PowerKVM. Five other separate Power KVMs were provisioned,
and enlisted in MAAS as resources to deploy services onto by their MAC
addresses.

Each Power KVM was specifically configured to have resources needed for the
corresponding workload. Specifically, the Power KVMs that MariaDB and Zend
would be deployed to had a Mellanox NIC attached to it, and the appropriate
memory and CPU resources were also provisioned to meet the needs of the
workloads.

When MariaDB, Zend-Server, and Mellonox services were ready to be deployed Juju
would make requests to MAAS server via the MAAS API. MAAS would then power on
the PowerKVM install a fresh Ubuntu 14.04 LTS image onto the target Power KVM
ready the environment for Juju to deploy services

Juju Orchestration

Juju is an OpenSource service orchestration tool to configure, manage,
maintain, deploy and scale solutions to any public, private, or hybrid cloud
from a powerful GUI or the command-line. Juju describes how software should be
deployed in software called “Charms.” Charms distill the development and
operational knowledge needed to deploy a service. This includes configuration,
deployment, connections [to other services], and scaling. Charms also embed
the best practices and performance tuning for a given service operating in an
specific environment. The paradigm shift is now the environment can be tuned
for optimal performance of the service. Furthermore, the deployment of the
service can be repeated in different environments or the same environment and
shared with colleagues. The Charm can also expose configuration parameters the
user may want to set such as to install Magento or Wordpress in the Zend-Server
charm. Thus a Juju user can focus on the solution and not worry about the
operational aspects of the workload deployment as these are encapsulated in the
Charm or bundle.

In the Turbo Lamp stack solution the experts at MariaDB, Zend, and Mellanox
distilled their development, operational, best practices, and performance
knowledge into the Charm to deliver an optimal deploy on Power8 Little Endian.
The goal being to create an “executable white paper” so users don’t have to
replicate the expertise at MariaDB, Zend, or Mellanox and can repeat the Turbo
Lamp Stack solution in their local environment.

The MariaDB charm installs an optimized binary for Power8 Little Endian. Among
other features the Charm provides a method for Zend to connect to and create
databases which is most applicable to the Turbo Lamp stack solution.

The Zend Charm installs Zend Server which acts as a PHP framework to deploy and
monitor PHP applications. The Charm also provides config options allowing the
user to choose Mangento and/or Wordpress to be served out. These config options
are set to a default of true so on deploy of the Zend Server charm Magento and
Wordpress are served out by Zend Server. The Zend Charm also implements
methods to connect to HAProxy to produce a Zend Server Cluster for scaling and
methods to connect to MariaDB for a data warehouse.

The Mellanox Charm is a special type of charm called a subordinate. A
subordinate charm is colocated on the same machine as another service and
shares the same file system. The Power KVMs that MariaDB and Zend are deployed
on needed newer Mellanox drivers, and optimizations specific to Power. Thus,
having Mellanox as a subordinate charm fit this need perfectly to install
drivers and performance tuning.

To graphically represent the deployment topology the Juju GUI was also
deployed. It too is a Charm and provides a web based view of the deployed
environment. In the default view one can see the services deployed and their
connections.

In the Machine View tab users can see the machines or instances currently being
used. This is helpful to understand how a particular services is being scaled.

Deploy

This Bundle is optimized for deployment on Power8 Little Endian with Mellanox
ConnectX-3 NIC (IBM Power 8 PCIe3 LP 2-Port 40GbE NIC RoCE QSFP+ Adapter FC
EC#A/EC3B) distributing traffic between Zend Server and MariaDB. A Mellanox
card should be attached to both the Zend Server instance/machine and MariaDB
instance/machine. This particular solution was designed with MAAS in mind but
can also be deployed on any supported cloud or where Ubuntu SSH access is
available.

After setting up your hardware environment deploy the juju-gui:

juju deploy trusty/juju-gui
juju expose juju-gui
juju status

Look for the public-address for juju-gui.
Enter the address in your browser.

In the subsequent deploy Juju GUI search for "Tubo Lamp" in the Juju GUI.
Choose to deploy the bundle to the Canvas.

Further Reading links

Ubuntu Server 14.04 LTS

General Information:
http://www.ubuntu.com/server

Server Management:
http://www.ubuntu.com/server/management

Ubuntu Server in the Cloud:
http://www.ubuntu.com/cloud

Download Ubuntu Server:
http://www.ubuntu.com/download/server

Installation Guide:
http://www.ubuntu.com/download/server/install-ubuntu-server

Ubuntu Server Guide:
https://wiki.ubuntu.com/DocumentationTeam/SystemDocumentation/UbuntuServerGuide
https://help.ubuntu.com/14.04/serverguide/

MAAS

MAAS General Information:
http://www.ubuntu.com/cloud/tools/maas

MAAS Home Page:
http://maas.ubuntu.com/

MAAS User and Development Documentation:
http://maas.ubuntu.com/docs1.5/install.html

Juju

Juju General Information:
http://www.ubuntu.com/cloud/tools/juju

Juju Home Page:
https://juju.ubuntu.com/

Install Juju:
https://juju.ubuntu.com/install/

Juju User and Charm Author Documentation:
https://juju.ubuntu.com/docs/

Try the Juju GUI:
https://jujucharms.com/

Juju Core Source Code:
https://github.com/juju/juju

The charms in this bundle:

zend-server

The zend-server charm has more
information on the optimized PHP server.

mellanox

The mellanox charm contains more
details on the Mellanox adapters and how to use Mellanox software as a
subordinate to other charms.

mariadb

The mariadb charm is a full
replacement for the MySQL database.

haproxy

The haproxy charm spreads
out the http load if there are multiple units of zend-server

Bundle configuration

Embed this bundle

Add this card to your website by copying the code below. Learn more.

Preview