Beruflich Dokumente
Kultur Dokumente
TurboLAMP Deployed
...
a TurboLAMP Stack Cookbook
Version 1.0
May 6, 2015
Antonio Rosales (Canonical)
Ashley Lai (Canonical)
Charles Butler (Canonical)
Matt Bruzek (Canonical)
Randall Ross (Canonical)
… and others
This cookbook is based on the original white paper:
“TurboLAMP: The LAMP Stack for Today’s Demanding Application
Workload Requirements”
Original Whitepaper Authors:
Amy Anderson, Mickey Hoter Zend
Roger Levy MariaDB
Troy Peterson, Tim Robinson, Bruce Semple IBM
Antonio Rosales, Ubuntu (Canonical)
Matthew Sheard Mellanox
1. EXECUTIVE OVERVIEW
1 .1 THE NEED FOR A TURBO STACK THE LONGER STORY
Today’s application market is experiencing an explosion around applications that deliver
information from troves of data to a myriad of end users devices. Businesses are retrieving
data from their “traditional” systems of record— e.g. ERP, SCM, HRM that have long run the
business—and delivering it through “systems of engagement.” The information is
personalized, localized, and curated for the information consumer.
2
The de facto standard for building these systems of engagement is the “LAMP” stack:
● L
inux (as the core of an operating system, i.e. the kernel),
● Apache web server,
● MariaDB (or MySQL) open source relational database, and
● P
HP as the development language.
Historically, the target hardware platform for LAMP stack solutions has been mostly
Intelbased. For years, Intel had a lowend server price advantage, upon which the LAMP
stack had its open source beginnings. Over time, the POWER processor family has steadily
and dramatically improved its price to performance ratio. Now, entrylevel systems with
POWER8 processors are affordable for any business. At the same time, LAMP solutions have
grown to support many business critical systems of engagement, where more powerful,
scalable, and reliable hardware systems are required.
An excellent example of a system of engagement is ecommerce. Thousands of small and
medium businesses have built web and mobile commerce applications using Magento, which
is built on LAMP. While Magento provides the functionality and price point that works for many
businesses, it often suffers from performance problems. If a simple rehosting could make
Magento run faster, millions of customers would enjoy a better online experience, and the
thousands of businesses supporting them could drive more revenue, customer satisfaction,
and profit.
The goal of this cookbook is to help you demonstrate that by simply rehosting a PHP
application (Magento) on POWER8 running an optimized LAMP stack, the ecommerce site
automatically
will run faster, . In this paper, we’ll describe and provide a recipe for a Proof of
Concept that demonstrates this performance boost.
Ubuntu (Canonical) has teamed with OpenPOWER Foundation members Mellanox and IBM
and open source middleware leaders MariaDB and Zend and to produce Turbo LAMP, a high
performance LAMP stack to meet the growing performance demands of today’s business
needs. IBM’s Linux only scaleout servers provide exceptional performance at competitive
pricing, resulting in faster response times and higher throughput at a lower total cost than x86
servers.
Linux administration skills can be leveraged. Mellanox 40 Gb/s networking infrastructure
ensures Turbo LAMP can stand up to the most demanding data transfer requirements.
Furthermore, leveraging PCIpassthrough, a new PowerKVM technology, enables throughput
of over 37 Gb/s between VMs. A robust middleware provides additional benefits to Turbo
LAMP. MariaDB has been optimized to the POWER8 architecture to manage 10s of TB of
3
data and process transactions at over twice the rate vs x86. Zend Server, the market leading
PHP server, rounds out the stack enabling PHP applications to run on this high performance,
reliable and secure infrastructure. To further the value of Turbo LAMP, Ubuntu MaaS is used
to automate setting up the VMs and Ubuntu Juju to orchestrate deployment of the middleware
and application components. This not only enables you to get Turbo LAMP up and running
quickly, it ensures your implementation is configured for performance.
1.2 THE STACK
● IBM provided Power Systems with POWER8, and PowerKVM virtualization
● Mellanox provided high speed data transfer capabilities,
● Ubuntu (created and supported by Canonical): provided a highly curated,
cloudcentric opensource operating system (with Linux kernel and little endianness).
● MariaDB provided the database.
● Zend provided the PHP application engine.
This high performance stack enables PHP applications such as Magento and WordPress to
supercharged
be plugged in to create a web application platform.
4
Figure 1: Turbo LAMP Solution Components
2. SOLUTION COMPONENT DESCRIPTIONS
This solution provides two major benefits:
1. Improves timetovalue by automating the deployment steps.
2. Provides much higher performance over an x86 based LAMP stack.
This section describes the components of the Turbo LAMP solution that make this possible.
2.1 POWER8
With the rise of cloud computing and mobile technologies the desire would be to have a
LAMP stack that can be optimized for dynamic scale out as well as scale up virtualized
infrastructures that can take advantage of the capabilities of the latest POWER8 architecture
from IBM and its OpenPOWER partners.
5
Building upon the collaboration gained with POWER8 and the OpenPOWER Foundation, IBM
is uniquely positioned to deliver a more robust and high performing stack by working with key
component providers while still allowing interchangeability of the components.
The POWER8 design has many performance advantages over x86 for a LAMP solution. The
cores run at a higher speed than x86 processors and have 8 threads per core, 4 times the
threads than x86 processors. These POWER8 cores have 16 execution pipelines, larger
internal bandwidth and larger caches to efficiently handle massive data volumes. Additionally,
the open interfaces of the POWER8 processor include up to 96 GBps of integrated Peripheral
Component Interconnect Express (PCIe) Gen3.
IBM has introduced a line of Linux only scaleout servers with POWER8 processors such as
the Power Systems S822L, optimized for Linux, delivering superior priceperformance over
x86 servers. These servers are priced competitively with commodity x86 servers yet provide
higher performance, better reliability and superior security than x86 servers. IBM Power
Systems are well known for their reliability, due to the servers Reliability, Availability and,
Serviceability (RAS) features. These are some of the features available on IBM POWER8
servers family:
● Redundant bits in the cache area
● Innovative ECC memory algorithm
● Redundant and hotswap cooling
● Redundant and hot swap power supplies
● Selfdiagnoses and selfcorrect errors during run time
● Automatic reconfiguration to mitigate potential problems from suspected hardware
● Selfheal or automatically substitute good components for failing components
Power System’s integrated security architecture results in reduced number of intrusions and
lower security related costs compared to x86. For more information about the IBM Power
systems RAS and security features, see IBM Power System S812L and S822L Technical
Overview and Introduction, REDP5098
(http://www.redbooks.ibm.com/abstracts/redp5098.html?Open).
2.2 POWER KVM
PowerKVM provides an open virtualization option for Power servers. PowerKVM uses the
same standard interfaces as KVM on x86. This allows using the same tools to manage
PowerKVM that KVM administrators are accustomed to, including OpenStack tools.
Turbo LAMP is leveraging PCI I/O
Passthrough, which IBM has
6
included as a technology preview in PowerKVM 2.1. This technology provides a PowerKVM
guest direct and exclusive access to an I/O device. This isolation results in no sharing of CPU,
memory or network interface. For Turbo LAMP we are using PCI I/O Passthrough to connect
the VMs directly to the Mellanox adapters, maximizing the throughput and reducing the
latency between LAMP components. This makes Turbo LAMP ideal for applications
consuming high network bandwidth.
2 .3 UBUNTU 14.04.
Ubuntu Server 14.04 is the latest Long Term Stable (LTS) release supported by Canonical for
five years. Ubuntu is a complete operating system with builtin support for POWER8 Little
Endian. It is the leading platform for scaleout computing. Whether you want to deploy an
OpenStack cloud, a Hadoop cluster, or a Turbo Lamp Stack, Ubuntu Server delivers the best
value scaleout performance.
With complete toolchain and package support for POWER8 Little Endian, Ubuntu Server
14.04 LTS provides the software foundation for the Turbo Lamp Stack. Ubuntu Server 14.04
LTS runs as a Power KVM guest hosting MariaDB, Zend Server, and the latest Mellanox
drivers all tuned for POWER8 Little Endian.
2. 4 MELLANOX SWITCHES & ADAPTERS
2.4.1 Adapters
IBM POWER8 PCIe3 LP 2Port 40GbE NIC RoCE QSFP+ Adapter FC EC3A/EC3B
The Mellanox ConnectX3 family of adapters provide the fastest bandwidth and lowest latency
interconnect solutions. Built around the fastest interconnect technology of 10/ 40 Gb Ethernet.
The Mellanox ConnectX3 family of adapters enables network fabrics to provide the fastest
data transfer and most effective utilization of compute and storage. This provides the most
optimal environment for business application stacks with intercomponent communications
requirements.
2.4.2 Switches
MSX1036B2SFS
The Mellanox Ethernet Switch Family delivers the highest performance and port density with a
complete solution enabling converged data centers to operate at any scale while reducing
operational costs and infrastructure complexity. This family includes a broad portfolio of
7
TopofRack (TOR) switches that range from 12 to 64 ports and support 10/40/56Gb/s per
port. These switches allow IT managers to build costeffective and scalable switch fabrics for
small to large clusters up to 10'softhousands of nodes. Mellanox eases the scaling of the
enterprise fabrics by providing the lowest latency and highest bandwidth. This allows IT
managers to deal with serving the company's business needs, while solving typical
networking issues such as congestion and addressing inefficiencies generated by adding
unnecessary rules and limitations when the network resources are insufficient.
2.4.3 Cabling
Mellanox cables are a costeffective solution for connecting high bandwidth fabrics, extending
the benefits of Mellanox's highperformance InfiniBand and 10/40/56GbE adapters throughout
the network.
In addition to meeting or exceeding IBTA and IEEE standards, Mellanox Certified cables are
tested on Mellanox equipment to ensure optimal signal integrity and the best endtoend
performance. Every cable and transceiver is cluster tested to BER 15 which translates to
1,000X fewer transmission errors than many competing products. Fewer transmission errors
mean fewer "retries" and higher system performance.
2.5 ZEND SERVER
2.5.1 PHP and Web Server
Zend Server provides a complete, reliable and secure PHP stack, bundling over 80 of the
most popular PHP extensions and libraries. Whether on Apache, nginx or IIS Zend Server
provides you with a consistent PHP environment across all major operating systems, for both
development and production.
Zend Server allows you to easily manage your PHP configuration settings to fit the needs of
your applications whether on a single server or a large cluster.
2.5.2 Deployment
Streamline and automate the process of deploying applications using Zend Server
Deployment.
Eliminate key sources of deployment failures, and ensure consistency across development,
staging and production, by using application packages containing your code, deployment
8
scripts, dependencies, metadata and installation parameters. Code libraries can be
abstracted out from apps and managed centrally, simplifying dependencies and updates.
2 . 5 . 3 Development
ZRay
Using Zend Server ZRay is akin to wearing XRay goggles, effortlessly giving you deep
insight into how their code is running as you are developing it – all without having to change
any of your habits or workflow. With ZRay, you can immediately understand the impact of
their code changes, enabling you to both improve quality and solve issues long before your
code reaches production. In addition to the obvious benefits of this ‘Left Shifting’ – better
performance, fewer production issues and faster recovery times – using ZRay is also
downright fun!
2.5.4 Performance and Troubleshooting
Installed on Zend Server, your apps are guaranteed to run faster than before. You can
squeeze even more performance out of them using the following features:
Running jobs using Zend Job Queue allows executing timeconsuming jobs asynchronously,
removing application bottlenecks and improving end user experience.
Using Zend Page Cache speeds up recurring access to PHP pages, by caching the entire
output of specific URLs. Can't cache the entire page? Use the Zend Data Cache API to avoid
computing the same data again and again.
When something goes wrong with your apps, you need to know about it. Whether it's a slow
page or a runtime error Zend Server’s monitoring helps you find out precisely what
happened and when as well as giving you all the information you need to fix it. When
something does go wrong, Code Tracing provides you with the equivalent of a blackbox
containing the full functionbyfunction flow of the problematic PHP request.
2.5.5 Clustering
Need to scale up your website? A modern, robust and scalable architecture allows you to
easily scale up your production environment and scaleout environments. Based on a
decentralized management system that is comprised of identical components, Zend Server
ensures high availability and full support of cloud environments. With Zend Session
9
Clustering, session data is shared between multiple servers in your cluster, ensuring session
continuity in case of system failure, and high availability of your system.
2.5.6 Compliance and Integration
Zend Server helps you meet the governance and compliance standards of your organization.
Use the Audit Trail to track changes made to your system configuration, whether made via the
UI, API or directly on the file system.
The user management system allows you to control access to Zend Server, and enables
developers to safely access production metrics and diagnostics, with readonly permissions.
Use the builtin user management, or authenticate against an existing corporate LDAP server.
Zend Server is fully APIenabled, meaning you can automate all of its various management
actions, and integrate with external systems including your Continuous Delivery cycle.
2.6 MariaDB
THE DATABASE HEART OF TURBO LAMP
A highperformance, open source database has been a core component of the LAMP stack
since it originated with MySQL back in the 1990s. MySQL was a pioneer in delivering a
developerfriendly, easily deployed relational database wellsuited to the demands of the web.
Today’s webscale applications are the descendants of those first Internet sites. These
applications need a highly reliable database that can handle multiterabyte data volumes and
millions of users, while guaranteeing transactional integrity and continuous availability. So it is
only fitting that the Turbo LAMP stack features MariaDB, the direct descendent of MySQL, as
its core data management solution.
MariaDB is applicationcompatible with MySQL, so your existing applications just work. With a
vendorindependent community at the heart of its development and many of the original
inventors of MySQL steering its course, MariaDB is a more advanced implementation of the
world’s most widely adopted RDBMS technology. It isn’t surprising then, that many of the
most famous webscale companies and web sites make extensive use of MariaDB in their
infrastructure. Now with Turbo LAMP and POWER8 technology, this mature database is
ready to deliver costeffective data management to a new class of missioncritical business
applications.
2.6.1 OSS Relational Technology Refined
10
MariaDB is an ACIDcompliant, transactional database that implements the proven relational
data model embodied by the standard SQL query language. Its tablestructured storage
consisting of rows corresponding to business records, and columns representing the fields of
those records is ideally suited to managing business data. Furthermore, MariaDB’s
transactional semantics guarantee the consistency of your vital data.
Consider the requirements of a highperformance enterprise eCommerce solution such as the
Magento platform. Magento is built on industry standard open source infrastructure, and
MariaDB fits right in.
Magento supports high transaction volumes and large numbers of simultaneous visitors. It
needs a highperformance, scalable database backend like MariaDB to serve content,
manage customer accounts and shopping carts, and process purchasing transactions.
MariaDB’s compatibility with MySQL, and its transactional data model insure that financially
sensitive applications such as Magento process customer orders correctly and consistently.
2.6.2 MariaDB and POWER8
Complementary Architectures
MariaDB has been further optimized to fully leverage POWER8. The database brings a
number of important capabilities to the Turbo LAMP platform, including:
● The ability to handle databases with 10s of terabytes of data efficiently, using an
improved version of the standard InnoDB storage engine familiar to MySQL DBAs, as
well as specialized engines such as TokuDB with sophisticated compression and
indexing, and Spider with tablebased sharding for managing very large tables
efficiently.
● Tuned multithreading including an improved thread pool management system
exclusive to MariaDB 10. Multithreading advances take advantage of the large
number of processor cores and concurrent thread capabilities of the POWER8
architecture.
● Memory management features designed to optimize database performance using
efficient buffer pool and cache implementations. Servers such as Power Systems with
POWER8 processors which can be configured with large amounts of DRAM enjoy
dramatically faster performance by minimizing access to slow secondary storage.
● Exclusive parallel slave architecture which delivers nearly 10x better cluster replication
performance than MySQL. MariaDB 10’s advanced replication algorithms will likely
deliver an even bigger boost when coupled with the speed and throughput of Mellanox
networking in the Turbo LAMP architecture.
11
2.6.3 IBM and MariaDB:
Partners In Turbo LAMP Performance Tuning
Porting MariaDB 10 to the POWER8 architecture has been a collaborative effort between the
database experts at MariaDB, and IBM’s system architects. The engineering teams have
jointly tuned the database to optimize performance.
MariaDB 10 as a foundation for the Turbo LAMP platform is ideally suited to deploy mission
critical applications at webscale. IBM and MariaDB have worked together to harden and
optimize the database, making Turbo LAMP even more ready to handle these advanced use
cases.
2.7.0 Creating Ubuntu KVMs
In order for PowerKVM to be useful you must first create Ubuntu virtual machines. This is
done using Kimchi, a web based KVM management interface. Kimchi is traditionally available
on port 8001 of the PowerKVM installation.
2.7.1 Import Ubuntu image
On a fresh install, an Ubuntu image will need to be imported to be used when creating new
virtual machines.
2.7 JUJU SERVICE MODELING
Juju is an open source, universal modeller for software running on machines. It can be used
to deploy any workload to any substrate using any configuration management tool. Juju
makes it easy to configure, manage, maintain, deploy and scale solutions to any public,
private, or hybrid cloud from a powerful GUI or alternatively from a commandline. Juju
describes how services should be deployed and interacted with in what are 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 a specific
environment. A great way convey what a charm is in laymans terms: “Executable Whitepaper”
With this paradigm shift, 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
12
configuration parameters the user may want to set such as to install Magento or Wordpress in
the ZendServer 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. You
are also free to create workload representations and share them as a Bundle which includes
all the charms that make up a workload, and the respective configuration.
Choose Your Deployment
Juju provides the opportunity to deploy a solution (consisting of workloads) on a single
machine or multiple machines, bare metal or in the cloud, private openstack or on your laptop.
Deploying a solution initially on a single machine provides a good opportunity to try out the
TurboLAMP stack in a simple implementation to assess and “kick the tires” before introducing
additional cloud resources. Then, when you are confident you understand the configuration
and how the components of the stack work together, you can deploy the solution on multiple
machines (or KVM’s) and create an elastic cloud that you can scale out to meet customer
demand.
The two methods discussed here are “Installation on a Single Machine,” and “Installation on
Multiple Machines.” The single machine method makes use of the Juju Local Provider to
deploy the solution into Linux Containers (lxc) on a single machine or KVM. The Multiple
machine method is meant for scaleout cases that are targeted for deployment looking to
place workloads on specific machines/KVMs and to scaleout as needed.
2.7.1 Installation on a Single Machine
In this example, we will install the solution on a single Power8 machine utilizing Juju’s local
provider service.
Create Your Juju CommandandControl System
The LXC local provider enables you to run Juju on a single Power8 system. This way you can
simply inspect, test, and evaluate the TurboLAMP stack without all the complexities of getting
many machines networked and configured.
Please ensure that you are running a the recent longterm support (LTS) version of Ubuntu,
which at time of writing is
Ubuntu14.04
.
Start by adding the stable release PPA:
sudo aptaddrepository ppa:juju/stable
sudo aptget update
13
Then install juju and the local provider with the following command(s):
sudo aptget install jujulocal juju jujuquickstart
NOTE: Installations on other (nonUbuntu) systems are outside the scope of this document. If you are not
running Ubuntu please consult your operating system distribution's documentation for instructions on
installing the LXC userspace tools and the MongoDB server. Juju requires a MongoDB server built with SSL
support.
Configuration
You should start by generating a generic configuration file for Juju and then switching to the
local provider by using the command:
juju generateconfig
juju switch local
This will generate a file,
environments.yaml
(if it doesn't already exist), which will live in your
directory (and will create the directory if it doesn't already exist).
~/.juju/
Note:
If you have an existing configuration, you can use j
uju generate-config --show to
output the new config file, then copy and paste relevant areas in a text editor etc.
The generic configuration sections generated for the local provider will look something like
this, though Juju will generate this automatically you usually don't need to edit it:
# https://juju.ubuntu.com/docs/configlocal.html
local:
type: local
# rootdir holds the directory that is used for the storage files and
# database. The default location is $JUJU_HOME/<envname>.
# $JUJU_HOME defaults to ~/.juju. Override if needed.
# rootdir: ~/.juju/local
# storageport holds the port where the local provider starts the
# HTTP file server. Override the value if you have multiple local
# providers, or if the default port is used by another program.
# storageport: 8040
# networkbridge holds the name of the LXC network bridge to use.
# Override if the default LXC network bridge is different.
# networkbridge: lxcbr0
# The default series to deploy the stateserver and charms on.
# Make sure to uncomment the following option and set the value to
# precise or trusty as desired
# defaultseries: trusty
Running Juju with this configuration the storage files and the database will be located in the
directory specified by the environment variable
$JUJU_HOME , which defaults to
~/.juju/
. By
14
uncommenting and setting rootdir
this location can be changed as well as the ports of the
storage and the shared storage. This may be useful in the case of multiple parallel running
local providers or conflicts with other programs on your system.
Bootstrapping and Destroying
The usage of LXC Linux Containers requires root privileges for some steps. Juju will prompt
for your password if needed. Juju cannot be run under sudo because it needs to manage
permission as the real user.
Note:
If you are running a firewall such as u
fw
, it may interfere with the correct
operation of Juju using LXC containers and might need to be halted.
If you have used the local provider in the past when it required sudo, you may need to manually clean up
some files that are still owned by root. If your local environment is named "local" then there may be a
local.jenv owned by root in the JUJU_HOME directory (~/.juju). After the local environment is destroyed,
you can remove the file like this:
sudo rm ~/.juju/environments/local.jenv
Fast LXC creation
The local provider can use lxcclone to create the containers used as machines. This feature
is controlled by the
lxcclone
option in environments.yaml. The default is "true" for Ubuntu
14.04 and later, and "false" for earlier Ubuntu releases. So, if you are using a release that
predates 14.04 then ensure that you include the “lxcclone: true” entry that is indicated below.
Enable lxcclone in environments.yaml like this:
local:
type: local
lxcclone: true
The local provider is btrfsaware. If your LXC directory is on a btrfs filesystem, the clones use
snapshots and are much faster to create and take up much less space. There is also support
for using aufs as a backingstore for the LXC clones, but there are some situations where aufs
doesn’t entirely behave as intuitively as one might expect, so this must be turned on explicitly
in .
environments.yaml
local:
type: local
lxccloneaufs: true
When using clone, the first machine to be created will create a "template" machine that is
used as the basis for the clones. This will be called , so for a trusty
juju-<series>-template
(Ubuntu 14.04) image, the name is ju
ju-trusty-template.
Do not modify or start this image while
a local provider environment is running because you cannot clone a running lxc machine.
15
These templates are generated at the time the fist charm deployment is requested (not
bootstrapping).
Congratulations! Juju is now installed and configured to use your local machine. Please
proceed to the section entitled
Deploying the TurboLAMP Stack Bundle
2.7.2 Installation on Multiple Machines
In this example we will deploy the solution on more than one power machine (or KVMs). We
will enlist more machines to grow an elastic private cloud.
MaaS can be setup on a VM on the same network with the PowerKVM or on a different
network. The MaaS VM needs be created with Ubuntu as an OS with MaaS installed on this
node. The VM can be created using libvirt such as virtinstall command or the Kimchi GUI
that came with PowerKVM. The Kimchi project can found at
https://github.com/kimchiproject/kimchi , the Kimchi GUI can be accessed through port 8000
http://pKVM.ip.address:8000 . The virtinstall command man page can be found at
.
http://linux.die.net/man/1/virtinstall
This section provides instructions on how to install MAAS and then configure and deploy the
TurboLAMP stack against the MAAS infrastructure. But first, a little bit of context about MAAS
is needed.
MAAS Explained
Metal as a Service (MAAS) is an open source 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 scaleout dynamically. MAAS
allows system administrators 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 Kernelbased
Virtual Machine (KVM).
In the Turbo LAMP Stack Solution MAAS was provisioned onto a “commandandcontrol” VM.
Five other separate VMs were provisioned, and enlisted in MAAS as resources to deploy
services onto by their MAC addresses.
16
Each VM was specifically configured to have resources needed for the corresponding
workload. Specifically, the VMs that MariaDB and Zend would be deployed to had a Mellanox
NIC attached to them, and the appropriate memory and CPU resources were also provisioned
to meet the needs of the workloads.
When MariaDB, ZendServer, and Mellanox 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
● Setup the MAAS region controller and cluster controller on the KVM HOST
(Note that every subsequent KVM that is created on that machine will be under MAAS
supervision which will allow us to communicate with the bare metal, i.e. to orchestrate VM's
on the bare metal. This will require a minimum of two (2) network interface cards, one to
support the private network for MAAS and one for your regular vlan traffic.)
Installing MAAS1
(NOTE: We’re installing MAAS version 1.7 in this cookbook. Instructions are based on those documented here.
http://maas.ubuntu.com/docs/install.html
)
1
© MAAS Documentation Copyright 20122014, MAAS Developers. Ubuntu and Canonical are registered trademarks of
Canonical Ltd
.
17
There are two main ways to install MAAS
1. From Ubuntu’s package archive on an existing Ubuntu install.
2. As a fresh install from Ubuntu Server install media.
Installing MAAS from the archive
Installing MAAS from packages is straightforward. A collection of packages are required to
make a working MAAS install, but for convenience, they have been gathered into a virtual
package called ‘maas’ which will install the necessary components for a ‘seed cloud’, that is a
single server that will directly control a group of nodes. The main packages are:
● maas seed cloud setup, which includes both the region controller and the cluster
controller below.
● maasregioncontroller includes the web UI, API and database.
● maasclustercontroller controls a group (“cluster”) of nodes including DHCP
management.
● maasdhcp/maasdns required when managing dhcp/dns.
Install the Packages
At the command line, type:
$ sudo addaptrepository ppa:maasmaintainers/stable
$ sudo aptget update
$ sudo aptget install maas libvirtbin curtin
You will see a list of packages and a confirmation message to proceed. The exact list will
depend on what you already have installed on your server, but expect to add about 200MB of
files. The configuration for the MAAS controller will automatically run and display this config
screen:
18
Here you will need to enter the hostname for where the region controller can be contacted. In
many scenarios, you may be running the region controller (i.e. the web and API interface)
from a different network address, for example where a server has several network interfaces.
Once the configuration scripts have run you should see this message telling you that the
system is ready to use:
The web server is started last, so you have to accept this message before the service is run
and you can access the Web interface. Then there are just a few more setup steps. Please
refer to
PostInstall Tasks
below.
19
Installing MAAS from Ubuntu Server boot media
If you are installing MAAS as part of a fresh install it is easiest to choose the “Multiple Server
install with MAAS” option from the installer and have pretty much everything set up for you.
Boot from the Ubuntu Server media and you will be greeted with the usual language selection
screen:
On the next screen, you will see there is an entry in the menu called “Multiple server install
with MAAS”. Use the cursor keys to select this and then press Enter.
20
The installer then runs through the usual language and keyboard options. Make your
selections using Tab/Cursor keys/Enter to proceed through the install. The installer will then
load various drivers, which may take a moment or two.
The next screen asks for the hostname for this server. Choose something appropriate for your
network.
Finally we get to the MAAS part! Here there are just two options. We want to “Create a new
MAAS on this server” so go ahead and choose that one.
21
The install will now continue as usual. Next you will be prompted to enter a username. This
will be the admin user for the actual server that MAAS will be running on (not the same as the
MAAS admin user!)
As usual you will have the chance to encrypt your home directory. Continue to make
selections based on whatever settings suit your usage.
22
After making selections and partitioning storage, the system software will start to be installed.
This part should only take a few minutes.
Various packages will now be configured, including the package manager and update
manager. It is important to set these up appropriately so you will receive timely updates of the
MAAS server software, as well as other essential services that may run on this server.
23
The configuration for MAAS will ask you to configure the host address of the server. This
should be the IP address you will use to connect to the server (you may have additional
interfaces e.g. to run node subnets)
The next screen will confirm the web address that will be used to the web interface.
24
After configuring any other packages the installer will finally come to an end. At this point you
should eject the boot media.
After restarting, you should be able to login to the new server with the information you
supplied during the install. The MAAS software will run automatically.
25
NOTE: The maasdhcp and maasdns packages should be installed by default, but on older
releases of MAAS they won’t be. If you want to have MAAS run DHCP and DNS services, you
should install these packages. Check whether they are installed with:
$ dpkg l maasdhcp maasdns
If they are missing, then:
$ sudo aptget install maasdhcp maasdns
And then proceed to the postinstall setup below.
PostInstall tasks
Your MAAS is now installed, but there are a few more tasks remaining. Use a web browser to
connect to the region controller. You should see that MAAS is running, but there will likely
also be some errors:
26
The on screen messages (above) indicate that there are no boot images present, and that
you cannot login because there is no admin user.
Create a superuser account
Once MAAS is installed, you will need to create an administrator account as follows:
$ sudo maasregionadmin createadmin username=root
email=MYEMAIL@EXAMPLE.COM
Substitute your own email address for MYEMAIL@EXAMPLE.COM. You may also use a
different username for your administrator account, but “root” is a common convention and
easy to remember. The command will prompt for a password to assign to the new account.
You can run this command again for any further administrator accounts you may wish to
create, but you need at least one.
Log in on the server
On the region controller’s main web page, you should now see a login screen. Log in using
Username
the Password
and that you have just created.
27
Import the boot images
By default, MAAS will check for and download new Ubuntu images once a week. To avoid
having to wait that long for you first update, you may want to download them manually the first
time, once you have set up your MAAS region and cluster controllers. (If you add another
cluster controller later remember to do it again, so that the new cluster controller also has the
images.)
Import images can be done from the web user interface. Go to the MAAS main page and
click on the “boot images” link in orange on the top of this page.
<File: rsbootImageImport.jpg>
28
On this screen select Ubuntu release and
ppc64el
for the architecture. Then, click on the
“Import images” button.
<File: rsbootImageImport1.jpg>
A message and the spinning icon will appear to let you know that the import has started.
<File: <rsbootImageImport3.jpg>
29
It may take longer for the exact boot images you need to be downloaded. Give the import time
to run until the script has had time to download several hundred megabytes from the archive
server. When the icon stops spinning click on “Apply changes” button (this step may not be
needed but just want to be sure).
<File: rsbootImageImport4.jpg>
Basic configuration
Once MAAS is installed, we can do some basic configuration. The first step is to log into the
commandline interface (CLI):
$ APIKEY=`sudo maasregionadmin apikey username root`
$ maas login admin http://localhost/MAAS $APIKEY
Once logged in, we need to generate a ssh key and add it to MAAS:
$ sshkeygen t rsa
$ key=`cat ~/.ssh/id_rsa.pub `
$ maas admin sshkeys new
“
key=$key
”
Once the we have a new SSH key, we can start configuring other options, such as the MAAS
name:
$ maas admin maas setconfig name=maas_name value=CloudOne
30
PowerKVM Enlistment
Prerequisites
First you need to create the PowerKVM nodes that you will be enlisting into MAAS. This
needs to be done with virsh, as MAAS will connect to virsh to retrieve the virtual machines.
Using virsh is out of the scope of this document.
Credentials
Make sure you can log in as root to the PowerKVM machine by copying your ssh key
generated earlier to both the MAAS user and the root user on PowerKVM
sshcopyid root@<hostIP>
This will copy the identity file created during the previous step. Next we need to expand the
MAAS user which MAAS uses during VM enlistment. First define a home for the MAAS user:
sudo mkdir /home/maas
sudo chsh s /bin/bash maas
sudo cp R .ssh /home/maas/
sudo chown R maas:maas /home/maas
Verify this all works by running virsh from maas to the root host
sudo u maas bash c "virsh c qemu+ssh://root@10.245.64.14/system list all"
If the virsh command completes successfully then MAAS is ready to communicate with
PowerKVM nodes
Enlistment
Before the enlistment, make sure the MAAS server is able to list the PowerKVM nodes from
the host. On the maas server type:
$ virsh c qemu+ssh://root@<hostIP>/system list all
31
rsvirshList1.jpg
On the MAAS GUI, there may be some nodes that were added during creation. Not all of
them have all the necessarily power parameters. These nodes can be deleted and the
enlistment will add them back to the MAAS GUI with all the power parameters. The nodes
can be deleted by selecting the nodes and click on “Delete selected nodes” from the pull
down menu above.
rsmaasDeleteNodes.jpg
32
rsmass0node.jpg
Now it is time to enlist PowerKVM nodes into MAAS.
Enlistment for MAAS on the same network
This feature is supported in MAAS 1.7.1. The prefix_filter option specifies the nodes that
managed by the MAAS server.
$ uuid=$(maas admin nodegroups list | grep uuid | cut d'"' f4)
$ maas admin nodegroup probeandenlisthardware $uuid model=powerkvm
power_address=qemu+ssh://root@hostname/system power_pass=password
prefix_filter=node
For example, the system has VM nodes called nodegroup101 and nodegroup201. After
running the command with prefix_filter=nodegroup2, it would enlist nodegroup201 but
would not touch nodegroup101.
33
From the MAAS GUI, the hostname can be modified by selecting the node and hit the “Edit
node” button.
34
The hostname can be replaced in the “Host name” field. Note that on this page, the “Power
ID” field contains the node name of the PowerKVM node.
35
Configure DHCP
It is highly recommended to let MAAS to control DHCP:
1. Follow the instructions atCluster Configuration
to use the web UI to set up your cluster
controller.
2. Use the command line interface maas by first logging in to the API
and then
following
this procedure
If you are manually configuring a DHCP server, you should take a look at
Manual DHCP
configuration
Configure switches on the network
Some switches use SpanningTree Protocol (STP) to negotiate a loopfree path through a
root bridge. While scanning, it can make each port wait up to 50 seconds before data is
allowed to be sent on the port. This delay in turn can cause problems with some
applications/protocols such as PXE, DHCP and DNS, of which MAAS makes extensive use.
To alleviate this problem, you should enable
Portfast
for Cisco switches or its equivalent on
other vendor equipment, which enables the ports to come up almost immediately.
Once everything is set up and running, you are ready to start enlisting nodes
.
Create Your Juju CommandandControl System
In this section you will install Juju on the MAAS machine to create a “command and control
system.”
FIrst, obtain your credentials from MAAS and enter them into the
environments.yaml
configuration file. located in the directory.
~/.juju
# https://juju.ubuntu.com/docs/configmaas.html
maas:
type: maas
maasserver: 'http://10.0.10.2/MAAS/'
maasoauth:
'FcR5QjLPVRLV7Rv2y9:dQJUEpGnr9bZfH4bC9:GVdZkFaQKVYRWcDwfFvKGzfA7fTAUH5E'
36
Next, ensure that your network environment allows access to TCP port 80 for downloading. If
so, you can skip the indented section that follows.
This solution is optimized for deployment on POWER8 Little Endian with Mellanox
ConnectX3 NIC (IBM POWER8 PCIe3 LP 2Port 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 Juju
supported cloud or where Ubuntu SSH access is available.
For Restricted (Blocked) Network Environments
If you are in a restricted network environment (i.e one that does not allow downloading
via TCP port 80) then you will need to download the TurboLAMP stack Charms
manually from another system. This can be accomplished as follows:
charm get cs:trusty/mariadb
charm get cs:trusty/zendserver
charm get cs:trusty/mellanox
rsync avr mariadb ubuntu@machinename:/home/ubuntu/charms/trusty/mariadb
rsync avr zendserver
ubuntu@machinename:/home/ubuntu/charms/trusty/zendserver
rsync avr mellanox ubuntu@machinename:/home/ubuntu/charms/trusty/mellanox
Next, you will deploy your charms the easy way (by using Juju’s graphical user interface) and
by using a Charm bundle that deploys all Charms simultaneously. This will all be done using
Juju’s “drag and drop” simplicity.
37
2.7.3 Deploying the TurboLAMP Stack Bundle
A Bundle is collection of Charms that can be deployed in one entity to create a complete
solution.
After setting up your hardware environment, bootstrap and deploy the jujugui:
juju switch maas
juju quickstart
(Note: By using Quickstart you are automatically invoking the following commands which are
presented here purely for reference)
juju bootstrap
juju deploy cs:trusty/jujugui
juju expose jujugui
juju status
Look for the publicaddress for jujugui which will be listed in the status output
juju status
Enter the address above in your web browser.
38
In the subsequent deploy Juju GUI search for "turbolamp" . Choose to deploy the bundle to
the Juju GUI canvas.
From the Juju GUI, locate the bundle entitled TurboLAMP. Once located, drag the bundle
onto Juju’s canvas.
The Bundle may also be deployed by using the command line as follows:
juju quickstart bundle:turbolamp/turbolamp
In the TurboLAMP Bundle, the experts at MariaDB, Zend, and Mellanox have distilled their
development, operational, best practices, and performance knowledge to deliver an optimal
deploy on POWER8 Little Endian (ppc64el). The design goal was to to create an “executable
white paper” so users don’t have to replicate the expertise at MariaDB, Zend, or Mellanox and
can repeat the TurboLAMP solution in their local environment.
The TurboLAMP Bundle available at the following location:
https://jujucharms.com/turbolamp
Figure 2: TurboLAMP Deployed
To graphically represent the deployment topology the Juju GUI was also deployed as
depicted in Figure 2 (above). 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.
39
Once the bundle is successfully deployed, you will see that all the Charms have a green
status. The next step will be to configure each charm with the exact configuration parameters
needed to make that Charm fully functional and operational. The figure below shows where to
enter settings for Charms, in this case for the haproxy Charm. Each Charm will have a similar
configuration area in the Juju GUI.
Mellanox Charm
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
VMs that MariaDB and Zend are deployed on needed newer Mellanox drivers, and
40
optimizations specific to POWER. Thus, having mellanox as a subordinate Charm fits this
need perfectly to install drivers and set performance tuning parameters.
mellanox
The Charm is available at:
https://jujucharms.com/mellanox/trusty
. The mellanox
Charm can be configured in the Juju GUI as depicted below.
MariaDB Charm
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 TurboLAMP stack solution. The Charm has capabilities to connect to
the Zend Server charm for PHP application serving as well as the Mellanox charm for high
speed interconnects. The charm deploys an evaluation version of MariaDB which can be
upgraded to the enterprise version via cham configuration settings, see details below on how
to accomplish this.
41
The Charm is available at:
mariadb https://jujucharms.com/mariadb/trusty
Note that you will have to accept the EULA in the Charm via the config option.
The mariadb Charm has a 60 day trial, after which, a licence key is required.
.
You can buy license keys for MariaDB and then them set directly from the mariadb Charm
Steps to upgrade from the “Community” version to the “Enterprise Evaluation” version of
MariaDB:
1. Obtain a username/password from the main MariaDB Portal located at
http://mariadb.com.
(Upon registration, you will be provided with another repository to retrieve your
“Enterprise Evaluation” version.)
2. Enable this upgrade in the charm by entering this command:
juju set mariadb enterpriseeula=true source="deb
https://username:password@code.mariadb.com/mariadbenterprise/10.0/repo/ubuntu
trusty main"
3. Finally, agree to all terms contained in the `ENTERPRISELICENSE.md` file in the
Charm directory
Zend Charm
The Zend Charm (called zendserver )installs the Enterprise 30 day trial version of Zend
Server which is a framework to deploy and monitor PHP applications. Once the zendserver
charm is installed the Zend Server provides the options allowing the user to install Magento
and/or Wordpress PHP applications. The zendserver Charm also implements methods to
connect to HAProxy load balancer to produce a Zend Server Cluster for scaling, methods to
connect to MariaDB for a data warehouse, and connections to Mellanox for high speed
interconnects.. Zend Server can be upgraded to the enterprise version once the user
purchases the license from Zend, additional instructions on upgrading to the enterprise
version below.
The Charm is available at:
zendserver https://jujucharms.com/zendserver/trusty
Get the public address of the zendserver Charm by typing:
juju status zendserver
The Zend server interface is available at
http://zendserveraddress:10081/ZendServer
. Go to
the web interface to create the administrator and developer passwords.
42
Note that you will have to accept the EULA in the Charm via the config option.
The zendserver Charm has a 30day trial, after which, a licence key is required. You can buy and
set license keys for Zend from the Zend GUI. Refer to the Using Zend’s GUI section shown below
.
Apache
The Zend Server that is deployed by the Charm
zendserver automatically
installs Apache,
so no specific Apache Charm or Apache manual installation is required.
Using Zend’s GUI
Now that your bundle is deployed, you can access the Zend GUI from Juju’s GUI.
43
Next Steps
Now that your solution is deployed, you can refer to the specific running instructions for Zend
and MariaDB.
3. PHYSICAL DEPLOYMENT CONSIDERATIONS
IBM worked closely with Ubuntu (Canonical), MariaDB, Mellanox and Zend to build, test and
tune Turbo LAMP at an IBM Innovation Center. Figure 3 shows the deployment of Turbo
LAMP at the Innovation Center. The system on the left side of the figure, S822L #1, has the
Turbo LAMP stack deployed with 2 business applications, Magento and WordPress. This
deployment, including configuration and tuning parameters, can be easily reproduced using
Ubuntu MAAS and Juju with Juju Charms customized for Turbo LAMP deployment. The
system hosting MAAS and Juju, S822L #2, is depicted on the right side of Figure 3.
44
Figure 3: Sample Turbo LAMP Deployment
3.1 IBM INNOVATION LAB SETUP
The IBM Innovation Center provides a secure collaboration space for building out the Turbo
LAMP ecosystem. The solution is deployed in the Innovation Center data center using
industrystandard enterprise rack equipment. IBM S822L servers with PowerKVM are
configured in a cluster with ethernet data networks for systems management and application
data. Systems management cabling is built over 1Gbps Ethernet to all components in the
topology. The systems management network allows a separation of the control interfaces
available through Kimchi, MASS/Juju and ssh access to hypervisor and VMs in the Turbo
LAMP stack. The Innovation Center infrastructure provides local NTP and DNS services to all
components over the systems management network.
The application data for TurboLAMP is carried across a dedicated 40Gbps Ethernet
infrastructure implemented using the Mellanox MSX1036B2SFS switch, Mellanox QSFP+
cables and the Mellanox ConnectX3 40Gbps PCIe adapters for POWER8. The IBM S822L
system is populated with 4 ConnectX3 adapters in PCIe Gen3 16bit slots. For the optimal
performance on the application data network, each adapter is dedicated to a specific VM on
the PowerKVM hypervisor using PCIPassthrough.
45
In addition to using PCIPassthrough, each VM configuration is tuned to provide the best
performance in the NonUniform Memory Architecture (NUMA) architecture of the IBM S822L.
To implement this tuning, the NUMA node proximate to the PCIe bus slot is determined.
Then, the CPU and memory resources for the VM are mapped through the VM domain file
attributes to resources on the same NUMA node. For the IBM S822L (two socket
configuration) there are 4 NUMA nodes, allowing 4 optimally tuned VMs to host the
components for the TurboLAMP stack.
4. NEXT STEPS / CONTACT INFORMATION
4.1 ORDERING TURBO LAMP
This section provides information on ordering Turbo LAMP components.
Power S822L
To order Power System S822L servers, contact your IBM representative or IBM Business
Partner or refer to the Contact IBM section of the product page:
http://www03.ibm.com/systems/power/hardware/s812ls822l/
PowerKVM
PowerKVM is available as a subscription for 1 or 3 years, and typically ordered with the
Power scaleout server. When bundled with the hardware order, it comes preloaded and
ready to use. As well, PowerKVM can be added after the initial order. For complete ordering
information, see the RFA document on PowerKVM.
Ubuntu / Juju / MAAS
Ubuntu (the server OS), Juju (the service orchestration solution) and MAAS (the hardware
deployment tool) are all free and open source. However, even the most talented devops
personnel and systems administrators will benefit from the depth of Ubuntu’s sponsoring
organization: Canonical. To obtain installation and upandrunning support and services for
Ubuntu go to:
http://www.canonical.com/services
46
For an Ubuntu Advantage professional support package go to:
http://www.ubuntu.com/management/ubuntuadvantage
Mellanox
For information on ordering Mellanox Turbo LAMP components go to
http://bit.ly/tlampmellanoxorder
MariaDB
For information on MariaDB Subscriptions go to
https://mariadb.com/products/subscriptionplans
Zend
For information on Zend services go to
http://www.zend.com/en/supportcenter/support
5.2 NEXT STEPS
Testing to compare the performance of Turbo LAMP against a base LAMP stack on x86 is
planned (i.e benchmarking). Also, Turbo LAMP will continue to be refined to add additional
capabilities and incremental performance enhancements. The Turbo LAMP stack will also be
validated against additional PHP applications benefiting from a high performance solution. To
view performance results, keep up to date on the latest content or learn how we can work with
you to validate your workload on Turbo LAMP, visit the
Turbo LAMP Community
Check out:
https://www.ibm.com/developerworks/community/groups/community/turbolamp
This community also has additional material to help understand the benefits of Turbo LAMP
such as a demo (http://bit.ly/tlampdemo) and presentation deck (http://bit.ly/tlampent2014).
47
3. CONTACTS
Inquiries on Turbo LAMP can be sent to tlamp@us.ibm.com or feel free to post questions to a
Turbo LAMP Forum (http://bit.ly/tlampforum).
6. FURTHER READING / REFERENCE INFORMATION
6.1 TURBO LAMP
Turbo LAMP Community
https://www.ibm.com/developerworks/community/groups/community/turbolamp
Turbo LAMP Wiki
http://bit.ly/tlampwiki
Turbo LAMP Demo
http://bit.ly/tlampdemo
Turbo LAMP Presentation Delivered at IBM Enterprise 2014 Conference
http://bit.ly/tlampent2014
Latest copy of this White Paper
http:// bit.ly/tlampwhitepaper
6.2 POWER8 / POWER KVM
IBM Power System S812L and S822L Product Page
http://www03.ibm.com/systems/power/hardware/s812ls822l/
IBM Power System S812L and S822L Technical Overview and Introduction, REDP5098
http://www.redbooks.ibm.com/abstracts/redp5098.html?Open
IBM POWER8 processor and memory buffer products: Leadership performance and open
innovation for big data and cloud
48
http://www01.ibm.com/common/ssi/cgibin/ssialias?htmlfid=POB03049USEN&appname=skm
www#loaded
IBM PowerKVM Configuration and Use, Redbook SG248231
http://www.redbooks.ibm.com/redpieces/abstracts/sg248231.html?Open
IBM PowerKVM Redbook Solution Guide
http://www.redbooks.ibm.com/abstracts/tips1205.html?Open
Optimizing a PowerKVM guest using PCI passthrough
http://bit.ly/PowerKVMoptimizepcipassthrough
6.3 MELLANOX
Adapter ConnectX
http://www.mellanox.com/page/products_dyn?product_family=127&mtag=connectx_3_en
http://www.mellanox.com/oem/ibm/products_40gbe.php
Select Power section for OS and Server support.
Switch SX1036
http://www.mellanox.com/page/products_dyn?product_family=115&mtag=sx1036
Cables – LinkX
http://www.mellanox.com/page/interconnect_overview
http://www.mellanox.com/page/cables?mtag=cable_overview
CloudX
http://www.mellanox.com/cloudx/
6.4 ZEND
Zend Server home page:
http://www.zend.com/en/products/server
Zend Server ZRay:
http://www.zend.com/en/products/server/zraytop7features
49
What customers think about Zend Server:
http://www.zend.com/en/resources/casestudies
Zend Server User Guide:
http://files.zend.com/help/ZendServer/zendserver.htm
Zend Continuous Delivery:
http://www.zend.com/en/solutions/continuousdelivery
Zend Cloud Solutions
http://www.zend.com/en/solutions/cloudsolutions
6.5 MARIA DB
For more Information On MariaDB please visit
https://mariadb.com
6.6 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/installubuntuserver
50
Ubuntu Server Guide:
https://wiki.ubuntu.com/DocumentationTeam/SystemDocumentation/UbuntuServerGuide
https://help.ubuntu.com/14.04/serverguide/
6.7 UBUNTU 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
6.8 UBUNTU 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
51
Download Charms Including Source Code in this Demo:
https://code.launchpad.net/~ibmdemo/
https://code.launchpad.net/~ibmdemo/charms/trusty/zendserver/trunk
Upstream:
https://github.com/afroyd/ZendServerjuju
https://code.launchpad.net/~ibmdemo/charms/trusty/mellanox/trunk
https://code.launchpad.net/~ibmdemo/charms/trusty/maria/trunk
Upstream:
https://launchpad.net/~dbart/charms/trusty/mariadb/trunk
https://code.launchpad.net/~ibmdemo/charms/trusty/haproxy/trunk
https://code.launchpad.net/~jujuguicharmers/charms/precise/jujugui/trunk
52