You are on page 1of 6

brought to you by...

#157
Get More Refcardz! Visit refcardz.com

CONTENTS INCLUDE:

Database Partitioning with MySQL


n
What is Database Partitioning
n 
Database Partitioning Basics
n
Database Partitioning in MySQL
n
MySQL Database Engine Improving Performance, Availability, and Manageability
n
Partitioning Types
n
And more... By Narayana Maruvada

MYSQL – THE MOST CHOSEN DATABASE Advantages


1. Allows for more control over the records stored in the database.
MySQL, the world’s most popular open-source database 2. Specifies the partition in which a record is stored
management system, encompasses key attributes such as high
3. Default is based on a specific value
performance, manageability, scalability, availability and ease of
use. It has become the default database for building any new To determine whether the MySQL server supports partitioning features or
generation applications over any technology stack. Additionally, not, issues a SHOW VARIABLES statement at the mysql prompt, as show
its capability to run on any platform has made it a reliable option below.
to use because of its flexibility and control over the applications.
mysql> SHOW VARIABLES LIKE ‘%partition%’;
This reference card provides an overview of the MySQL database +-------------------+-------+
| Variable_name | Value |
partitioning techniques and how these techniques lead to +-------------------+-------+
| have_partitioning | YES |
operational excellence. +-------------------+-------+
1 row in set (0.00 sec)

WHAT IS DATABASE PARTITIONING? Since the variable have_partitioning has a value of YES, it indicates
MySQL server supports partitioning.
Partitioning is a database design technique with details as follows Similarly, you can also verify the partitioning support by issuing the SHOW
PLUGINS statement at the mysql prompt, as shown below.
Major Abilities of Partitioning
mysql> SHOW PLUGINS;
1. Splits large database into smaller and more manageable ones. +------------+----------+----------------+---------+---------+
2. Simplifies the overall data management and operations. | Name | Status | Type | Library | License |
+------------+----------+----------------+---------+---------+
3. Enhances the overall performance of the database.
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
4. Assists the MySQL Optimizer. | partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| FEDERATED | DISABLED | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ndbcluster | DISABLED | STORAGE ENGINE | NULL | GPL |
Database Partitioning with MySQL

+------------+----------+----------------+---------+---------+
11 rows in set (0.00 sec)

MySQL Optimizer typically contains the set of routines that decide


Hot what execution path the database server should take for executing
Tip the queries.

DATABASE PARTITIONING BASICS

The two very basic database partitioning practices are as follows.

Technique Description
Horizontal Partitions a big table based on the number of rows.
Vertical Partitions a table based on the different columns

DATABASE PARTITIONING IN MYSQL

MySQL implements the database partitioning feature through


user-defined partitioning.

DZone, Inc. | www.dzone.com


2 Database Partitioning with MySQL

If the status is being displayed as ACTIVE against the partition The following example illustrates the range-partitioning
plugin, it indicates the partitioning feature is enabled and technique. First, we create an employees table, as shown below:
available.
CREATE TABLE employees (
id INT NOT NULL,
To disable the partitioning support option, start the MySQL server
Hot with the –skip – partition option. The value of have_partitioning is now fname VARCHAR(30),
Tip DISABLED. lname VARCHAR(30),
hired DATE NOT NULL DEFAULT ‘1970-01-01’,
separated DATE NOT NULL DEFAULT ‘9999-12-31’,
job_code INT NOT NULL,
MYSQL DATABASE ENGINE – A PREREQUISITE FOR store_id INT NOT NULL

PARTITIONING );

Among the list of columns, store_id can be used to partition the


For creating partitioned tables, you can use most of the storage
entire table based on the values available with it, as shown below:
engines that are supported by the MySQL server.
CREATE TABLE employees (
id INT NOT NULL,
It is important to note that all partitions of the partitioned table should
Hot be using the same storage engine.
fname VARCHAR(30),
Tip lname VARCHAR(30),
hired DATE NOT NULL DEFAULT ‘1970-01-01’,
separated DATE NOT NULL DEFAULT ‘9999-12-31’,
To determine which storage engine the MySQL server supports, job_code INT NOT NULL,
issue the SHOW ENGINES statement at the mysql prompt at store_id INT NOT NULL
shown below. )
PARTITION BY RANGE (store_id) (
mysql> SHOW ENGINES\G PARTITION p0 VALUES LESS THAN (6),
*************************** 1. row *************************** PARTITION p1 VALUES LESS THAN (11),
Engine: MEMORY PARTITION p2 VALUES LESS THAN (16),
Support: YES PARTITION p3 VALUES LESS THAN (21)
Comment: Hash based, stored in memory, useful for temporary );
tables
Transactions: NO
XA: NO It is important to note that each partition in defined in order from
Savepoints: NO lowest to highest.
*************************** 2. row ***************************
Engine: MyISAM
For accommodating rows with some higher and/or greater values in
Support: DEFAULT
Comment: Default engine as of MySQL 3.23 with great performance
Hot the partitions, a clause named VALUE
Transactions: NO
Tip LESS THAN is used in the create table.. statement, as show below.
XA: NO
Savepoints: NO
CREATE TABLE employees (
*************************** 3. row ***************************
id INT NOT NULL,
Engine: InnoDB
fname VARCHAR(30),
Support: YES
lname VARCHAR(30),
Comment: Supports transactions, row-level locking, and foreign
hired DATE NOT NULL DEFAULT ‘1970-01-01’,
keys
separated DATE NOT NULL DEFAULT ‘9999-12-31’,
Transactions: YES
job_code INT NOT NULL,
XA: YES
store_id INT NOT NULL
)
Among all, the value against support column indicates whether
PARTITION BY RANGE (store_id) (
an engine can be used or not.
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
A value of YES, NO and DEFAULT with the storage engine indicates if
Hot an engine is available, not available or available and currently set as
PARTITION p2 VALUES LESS THAN (16),

Tip default storage, respectively.


PARTITION p3 VALUES LESS THAN
MAXVALUE
);

PARTITIONING TYPES MAXVALUE represents an integer value that is always greater


than the largest possible value that is available.
The following section outlines the various types of partitioning
techniques that are supported by MySQL. LIST Partitioning

RANGE Partitioning Features


Features 1. Very analogous to range partitioning.
1.Tables are partitioned based on the column values falling 2. Partition is selected based on columns matching a set of
within a given range. discrete values.
2. Ranges should be contiguous but not overlapping.

DZone, Inc. | www.dzone.com


3 Database Partitioning with MySQL

Features
If there is no primary key available with the table but there is a unique
3. Each partition should be explicitly defined. Hot key, then the unique key can be used as a partitioning key, as shown
4. Partitions do not need to be declared in any order.
Tip below.

The following example demonstrates how to list partition a table


based on a column value. CREATE TABLE k1 (
id INT NOT NULL,
CREATE TABLE employees ( name VARCHAR(20),
id INT NOT NULL, UNIQUE KEY (id)
fname VARCHAR(30), )
lname VARCHAR(30), PARTITION BY KEY()
hired DATE NOT NULL DEFAULT ‘1970-01-01’, PARTITIONS 2;
separated DATE NOT NULL DEFAULT ‘9999-12-31’,
job_code INT,
store_id INT RETRIEVING INFORMATION ABOUT EXISTING
) PARTITIONS
PARTITION BY LIST(store_id) (
PARTITION pNorth VALUES IN (3,5,6,9,17),
PARTITION pEast VALUES IN (1,2,10,11,19,20),
You can obtain information about existing partitions in a number
PARTITION pWest VALUES IN (4,12,13,14,18),
of ways.
PARTITION pCentral VALUES IN (7,8,15,16)
);
Sr. No Statement
1 Issue SHOW CREATE TABLE statement to view
partition clause used.
Deleting data from a partition works more efficiently than deleting the
Hot data directly from the table.
2 Issue SHOW TABLE STATUS statement to determine
Tip whether table is partitioned.
3 Query the INFORMATION SCHEMA.PARTITIONS
table for information about table partitions.
HASH Partitioning 4 Issue statement EXPLAIN PARTITIONS SELECT, as
Features shown in below syntax,
Issue statement EXPLAIN PARTITIONS SELECT, as
1. Ensures an even distribution of data among partitions.
shown in below syntax:
2. Explicitly specify into which partition a given column value is EXPLAIN PARTITIONS SELECT * FROM table_name
to be stored WHERE clause
The following example demonstrates how to hash partition a
table based on a column. MANAGING PARTITIONS
CREATE TABLE employees (
id INT NOT NULL, Partition management refers to a set of activities that deals with
fname VARCHAR(30), the actions, such as:
lname VARCHAR(30),
• Adding
hired DATE NOT NULL DEFAULT ‘1970-01-01’,
separated DATE NOT NULL DEFAULT ‘9999-12-31’, • Dropping
job_code INT,
• Redefining
store_id INT
) • Merging or Splitting
PARTITION BY HASH(store_id) You can realize all of these actions by using the ALTER TABLE
PARTITIONS 4; statement with a partition_option clause.
If you do not include the PARTITIONS clause, the number of
partitions defaults to 1. Only a single PARTITION BY, ADD PARTITION, DROP PARTITION,
Hot REORGANIZE PARTITION, or COALESCE PARTITION clause can be used in
KEY Partitioning Tip a given ALTER TABLE statement.
Features
1. Conceptually and syntactically, it is analogous to HASH Managing Range and List Partitions - a Quick Glance
partitioning.
1. Managing range and list partitions is very similar.
2. The requisite hashing function is supplied by MySQL server.
2. Adding and Dropping of partitions are handled in same way.
3. Partitioning key must consist of table’s primary key.
3. Dropping an existing partitions is very straightforward.
4. Accomplished by using ALTER TABLE statement with
CREATE TABLE k1 ( appropriate partition clause.
id INT NOT NULL PRIMARY KEY, 5. To delete all the data from a partition, use the DROP
name VARCHAR(20) PARTITION clause.
) ALTER TABLE table_name DROP PARTITION partition_name;
PARTITION BY KEY()
PARTITIONS 2;

DZone, Inc. | www.dzone.com


4 Database Partitioning with MySQL

Managing Range and List Partitions - a Quick Glance PARTITION PRUNING


6. To preserve the table definition, use TRUNCATE TABLE
statement. Partition pruning is an optimization technique that can be
7. To change the partition without losing any data, use the implemented for partitioned tables. The idea behind pruning
REORGANIZE PARTITION clause. ALTER TABLE table_name is relatively simple and it can be described as “Do not scan a
REORGANIZE PARTITION [partition_name INTO (partition_ partition when there are no matching values.” For example,
definitions)] suppose that you have a partitioned table t1 defined by the
statement shown below:
8. With range partitions, you can add new partitions ONLY to
the high end of the partition list.
CREATE TABLE t1 (
9. Adding a new partition in between or before an existing fname VARCHAR(50) NOT NULL,
partition will result in error. lname VARCHAR(50) NOT NULL,
10. You cannot add a new LIST PARTITION encompassing any region_code TINYINT UNSIGNED NOT NULL,
values that are already included in the value list of an existing dob DATE NOT NULL
partition. This will result in an error. )
PARTITION BY RANGE( region_code ) (
11. The REORGANIZE PARTITION clause may also be used for PARTITION p0 VALUES LESS THAN (64),
merging adjacent partitions. PARTITION p1 VALUES LESS THAN (128),
12. The REORGANIZE PARTITION clause cannot be used for PARTITION p2 VALUES LESS THAN (192),
changing the table’s partitioning type. For example, you cannot PARTITION p3 VALUES LESS THAN MAXVALUE
change Range partitions to Hash partitions, or vice-versa. );

Managing Hash and Key Partitions – a Quick Glance Now, consider the case where you wish to obtain results from a
query such as:
1. When it comes to making changes to partitioning setup, it is
similar with hash and key partitions. SELECT fname, lname, region_code, dob FROM t1 WHERE
2. You cannot drop hash or key partitions. region_code > 125 AND region_code < 130;

3. You can merge hash or key partitions by using an ALTER It is easy to see that none of the rows which ought to be returned
TABLE statement with the coalesce partition clause, as shown will be in either of the partitions p0 or p3; that is, we need to
below: ALTER TABLE table_name COALESCE PARTITION 4; search only in partitions p1 and p2 to find matching rows. By
4. The number following the coalesce partition clause refers to doing so, we can save time and effort and find matching rows
the number of partitions to remove from the table instead of having to scan all partitions in the table. This “cutting
away” of unneeded partitions is known as “pruning.”
5. Attempting to remove more partitions than the table has will
lead to an error. The query optimizer can perform pruning whenever a WHERE
condition can be reduced to either of the following two cases:
•  partition_column = constant
PARTITIONS MAINTENANCE
•  partition_column IN (constant1, constant2, constant3,....,
constantN)
You may also carry out a number of table and associated partition
maintenance tasks by issuing a few SQL statements using the In the first case, the optimizer simply evaluates the partitioning
following options: expression for the value given. Then it determines and scans only
the partition containing that value. In many cases, the equal sign
SQL Options Description Equivalent SQL can be replaced with other arithmetic comparison operators,
Statement including <, >, <= , >= , and <>.
REBUILDING Used for rebuild ing ALTER TABLE table_
PARTITIONS a partition and for name REBUILD
Queries using BETWEEN in the WHERE clause can also take advantage
defragmentation. PARTITION p0, p1; Hot of partition pruning.
OPTIMIZING Used to reclaim any ALTER TABLE Tip
PARTITIONS unused space and table_name
defragment partition OPTIMIZE
data files. PARTITION p0, p1; In the second case, the optimizer evaluates the partitioning
ANALYZING Used to store key ALTER TABLE expression for each value in the list, creates a list of matching
PARTITIONS distributions about table_name partitions, and then scans only the partitions in that list. Further
partitions. ANALYZE partition pruning can be applied to short ranges, which the optimizer can
p3; convert into equivalent lists of values.

REPAIRING Used for repairing any ALTER TABLE


PARTITIONS corrupted partitions. table_name REPAIR Pruning can also be applied for tables partitioned on a DATE or
partition p0, p1; Hot DATETIME column when the partitioning expression uses the YEAR()
CHECKING Used for checking ALTER TABLE
Tip or TO_DAYS() function.
PARTITIONS errors in partitions table_name CHECK
partition p1;

DZone, Inc. | www.dzone.com


5 Database Partitioning with MySQL

IMPLEMENTING PARTITION PRUNING TECHNIQUE Pruning can be used only on integer columns of tables partitioned
Hot by HASH or KEY. But, for a table that is partitioned by KEY, has a
composite primary key, and uses a composite partitioning key, it is
Partition pruning can be implemented for all partition types. Tip possible to perform pruning for queries meeting the following two
Though pruning for RANGE partitioning is already explained criteria:
in the above section, this section illustrates how this technique
can be applied to other types of partitions as well. For example, • The query must have a WHERE clause of the form
consider a table t3 that is partitioned by LIST, as shown below: pkcol1 = c1 AND pkcol2 = c2 AND ... pkcolN = cN,
where pkcol1..... pkcolN are the partitioning key
CREATE TABLE t3
columns and c1.....cN are constant values.
(
fname VARCHAR(50) NOT NULL, •  All columns of the partitioning key must be
lname VARCHAR(50) NOT NULL, referenced in the WHERE clause.
region_code TINYINT UNSIGNED NOT NULL,
dob DATE NOT NULL
) ABOUT ‘EXPLAIN PARTITION’ STATEMENT
PARTITION BY LIST(region_code)
(
PARTITION r0 VALUES IN (1, 3),
1. Generally, EXPLAIN statement is used to obtain information
PARTITION r1 VALUES IN (2, 5, 8),
about how MySQL executes a statement.
PARTITION r2 VALUES IN (4, 9),
PARTITION r3 VALUES IN (6, 7, 10) 2. EXPLAIN PARTITION is highly helpful for examining queries
); involving partitions.

Table t3 shows that the region_code column is limited to values 3. A SELECT statement that is preceded by an EXPLAIN
between 1 and 10 (inclusive). So, when a select query is issued, statement displays information from the Optimizer about the
such as the one below— query execution plan.

SELECT * FROM t3 WHERE region_code BETWEEN 1 AND 3; 4. For Example: EXPLAIN PARTITIONS SELECT select_options

—the optimizer determines the partitions where values 1, 2 and 3


are found, which should be ro, r1 and skips those that remain (r2
RESTRICTIONS AND LIMITATIONS ON PARTITIONING
and r3).
Similarly, for the tables that are partitioned by HASH and KEY,
pruning is also possible in the cases when the WHERE clause 1. Use of the arithmetic operators +, -, and * is permitted in
uses a simple “ = “ relation against a column that is used in the partitioning expressions. The result must be an integer value or
partition expression. For example, consider the created table NULL (except in the case of [LINEAR] KEY partitioning).
shown below:
2. The bit operators |, &, ^, <<, >>, and ~ are not permitted in
partitioning expressions.
CREATE TABLE t4 (
fname VARCHAR(50) NOT NULL, 3. Tables employing user-defined partitioning do not preserve
lname VARCHAR(50) NOT NULL, the SQL mode in effect at the time that they were created.
region_code TINYINT UNSIGNED NOT NULL, 4. A change in the SQL mode at any time after the creation of
dob DATE NOT NULL partitioned tables may lead to major changes in the behavior
) of such tables, and could easily lead to corruption or loss of
PARTITION BY KEY(region_code)
data.
PARTITIONS 8;
5. Sometimes a change in the server SQL mode can make
partitioned tables unusable.
Any query that compares a column value with a constant can be
pruned, as shown in the next line of code: 6. Server SQL modes also impact replication of partitioned
tables since differing SQL modes on master and slave can lead
SELECT * FROM t4 WHERE region_code = 7;
to differently evaluated partitioning expressions.

Importantly, pruning can also be employed for short ranges, 7. Different SQL modes on master and slave can cause different
because the optimizer can turn such conditions into IN relations. distributions of data among partitions.
For example, consider the next two queries with reference to the 8. Partitioned tables do not support FULLTEXT indexes or
previously defined table t4: searches. This includes MyISAM storage engine.
SELECT * FROM t4 WHERE region_code > 2 AND region_code < 6; 9. Columns with spatial data types, such as POINT or
GEOMETRY, cannot be used in partitioned tables.
10. Temporary tables cannot be partitioned.
SELECT * FROM t4 WHERE region_code BETWEEN 3 AND 5;
11. A partitioning key must be either an integer column or
an expression that resolves to an integer. The column or
In both of these cases, the WHERE clause is transformed by the expression value may also be NULL.
optimizer into WHERE region_code IN (3, 4, 5). This optimization 12. Partitioned tables do not support foreign keys.
is used only if the range size is smaller than the number of
partitions.

DZone, Inc. | www.dzone.com


6 Database Partitioning with MySQL

PERFORMANCE CONSIDERATIONS FOR CONCLUSIONS


PARTITIONING
Database partitioning is a value-added database design
technique that many data modelers and DBAs rely on to achieve
1. Generally, partitioning and repartitioning operations depend various objectives.
on file-system operations for their implementation.
a) Reduces the amount of data read operations for typical SQL
2. Speed of the partitioning-related operations is affected by operations. As such, the overall response time is reduced.
factors such as file system type, disk speed, swap space and
b) Increases database performance by optimizing the database
file-handling efficiency.
scan operations internally.
3. In particular, you should make sure that large_files_support is
c) Simplifies data management so there is more control over how
enabled and that open_files_limit is set properly.
the data is organized inside a database.
4. Partitioned tables using the MyISAM storage engine,
d) Achieves a greater degree of query throughput by spreading
therefore increasing myisam_max_sort_file_size, may improve
data more logically.
performance.
5. Similarly, partitioning and repartitioning operations involving
InnoDB tables may be made more efficient by enabling
SUGGESTED READINGS
innodb_file_per_table.
6. Partitioning operations, queries, and update operations
1. MySQL Reference Manual, which is available through the
generally tend to be faster with MyISAM tables than with
website dev.mysql.com/doc/en/
InnoDB or NDB tables.
7. As with non-partitioned tables, proper use of indexes can 2. MySQL Cookbook, by Paul DuBois
significantly speed up queries on partitioned tables.
8. The maximum possible number of partitions for a given 3. MySQL in a Nutshell, by Russell Dyer
table (that does not use the NDB storage engine) is 1024. This
includes sub-partitions. 4. MySQL Administrators Bible, by Sheeri K. Cabral and Keith
Murphy.

ABOUT THE AUTHOR RECOMMENDED BOOK

Narayana Maruvada is a computer science and This book provides a solid framework for both database
engineering graduate, currently working as novices and experienced DBA’s transitioning to MySQL.
a QA engineer at Benefitfocus, the country’s It provides essential coverage of the fundamentals of
leading provider of benefits technology. He is MySQL database management, including MySQL’s
part of a top notch technology organization that unique approach to basic database features and
focuses on rapid, high quality, and superiorly functions as well as coverage of SQL queries, data
architected solutions. Narayana has over 6 years and index types, stored-procedure, functions, triggers,
of experience developing and testing web-based applications. views, transactions, etc. It also offers comprehensive
In particular, Narayana has worked extensively with MySQL and coverage of advanced topics such as MySQL server tuning, managing
Oracle databases, tuning queries and configurations for maximum storage engines, caching, backup and recovery, managing users, index
performance and reliability. tuning, database and performance monitoring, security, and more.

#82

Browse our collection of over 150 Free Cheat Sheets


Get More Refcardz! Visit refcardz.com

CONTENTS INCLUDE:


About Cloud Computing
Usage Scenarios Getting Started with

Aldon Cloud#64Computing

Underlying Concepts
Cost
by...

Upcoming Refcardz
youTechnologies ®

Data
t toTier
brough Comply.
borate.
Platform Management and more...

Chan
ge. Colla By Daniel Rubio

on:
dz. com

grati s
also minimizes the need to make design changes to support
CON
ABOUT CLOUD COMPUTING one time events. TEN TS
INC

s Inte -Patternvall

HTML LUD E:
Basics
Automated growthHTM
ref car

Web applications have always been deployed on servers & scalable


L vs XHT technologies

nuou d AntiBy Paul M. Du Scala Collections



Valid
ation one time events, cloud ML
connected to what is now deemed the ‘cloud’. Having the capability to support
Usef

ContiPatterns an

computing platforms alsoulfacilitate


Open the gradual growth curves
Page ■
Source
Vis it

However, the demands and technology used on such servers faced by web applications.Structur Tools

Core
Key ■

Structur e Elements
E: has changed substantially in recent years, especially with al Elem
INC LUD gration the entrance of service providers like Amazon, Google and Large scale growth scenarios involvingents
specialized
NTS and mor equipment
rdz !

ous Inte Change

HTML
CO NTE

HBase
Microsoft. es e... away by
(e.g. load balancers and clusters) are all but abstracted
Continu at Every e chang
About ns to isolat
relying on a cloud computing platform’s technology.
Software i-patter

n space
Re fca

e Work
Build
riptio
and Ant These companies Desc have a Privat
are in long deployed trol repos
itory
webmana applications
ge HTM
L BAS

Patterns Control lop softw n-con to



that adapt and scale
Deve
les toto large user
a versio ing and making them
bases, In addition, several cloud computing ICSplatforms support data
ment ize merg
rn
Version e... Patte it all fi minim le HTM
Manage s and mor e Work knowledgeable in amany ine to
mainl aspects related tos multip
cloud computing. tier technologies that Lexceed the precedent set by Relational
space Comm and XHT

Build
re

Privat lop on that utilize HTML MLReduce,


Practice Database Systems (RDBMS): is usedMap are web service APIs,

Deve code lines

Opa
a system
Build as thescalethe By An
sitory of work prog foundati
Ge t Mo

Repo
This Refcard active
will introduce are within
to you to cloud riente computing, with an
ION d units etc. Some platforms ram support large grapRDBMS deployments.

The src
dy Ha
softw
EGRAT e ine loping task-o it and Java s written in hical on of
all attribute
softwar emphasis onDeve es by
Mainl
OUS
INT these ines providers, chang so youComm can better understand
also rece JavaScri user interfac web develop and the desc rris
Vis i

codel
ding e code Task Level as the
www.dzone.com

NTINU s of buil control what it is a cloudnize


line Policy sourc es as aplatform
computing can offer your ut web output ive data pt. Server-s e in clien ment. the ima alt attribute ribes whe
T CO ces ion Code Orga it chang e witho likew mec ide lang t-side ge is describe re the ima
hanism. fromAND
name
the pro ject’s vers CLOUD COMPUTING PLATFORMS
e sourc
applications. and subm ise
ABOU (CI) is
it with uniqu are from
was onc use HTML
web
The eme pages and uages like Nested
unavaila s alte ge file
rd z!

a pro evel Comm the build softw um ble. rnate can be


gration ed to Task-L Label ies to
build minim UNDERLYING CONCEPTS
e and XHT rging use HTM PHP tags text that
Inte mitt pro blem all activition to the
bare
standard a very loos ML as Ajax Tags found,

Data Warehousing
ous com to a USAGE SCENARIOS ate
Autom configurat
cies t
ely-defi thei tech L can is disp
ization, cannot be (and freq
Continu ry change
nden ymen layed
tion ned lang r visual eng nologies
Re fca

Build al depe need


a solu ineffective
deplo t
Label manu d tool the same for stan but as if
(i.e., ) nmen overlap
eve , Build stalle
t, use target enviro Amazon EC2: Industry standard it has
software and uagvirtualization ine. HTM uen
with terns ns (i.e.
blem ated ce pre-in whether dards e with b></ , so <a>< tly are) nest
lar pro that become
Autom Redu ymen a> is
ory. via pat d deploEAR) in each has L
reposit -patter particu s cies Pay only what you consume
tagge or Amazon’s cloud
the curr you cho platform
computing becisome
heavily based moron very little fine. b></ ed insid
lained ) and anti x” the are solution duce
nden For each (e.g. WAR es t
ent stan ose to writ more e imp a></ e
not lega each othe
b> is
be exp text to “fi
al Depeapplication deployment
Web ge until
nden a few years
t librari agonmen
t enviro was similar that will software
industry standard and virtualization apparen ortant, the
e HTM technology.
ns to pro Minim packa
dard
Mo re

CI can ticular con used tter can rity all depe that all
targe
simp s will L t. HTM l, but r. Tags
es i-pa tend but to most phone services:
y Integ alize plans with late alloted resources,
file
ts with an and XHT lify all help or XHTML, Reg ardless L VS XH <a><
in a par hes som
etim s. Ant , they ctices,
Binar Centr temp your you prov TML b></
proces in the end bad pra enting
nt nmen
incurred cost
geme whether e a single based on
Creatsuchareresources were consumed
t enviro orthenot. Virtualization
muchallows MLaare physical othe
piece ofr hardware to be understand of HTML
approac ed with the cial, but, rily implem nden
cy Mana rties nt targe es to of the actually web cod ide a solid ing has bee
essa d to Depe prope into differe chang
utilized by multiple operating
function systems.simplerThis allows ing.resources foun job
efi nec itting n arou
associat to be ben
er
pare dation adm
Ge t

te builds commo
are not Fortuna
late Verifi e comm than
ality be allocated nd for
n com Cloud computing asRun it’sremo
known etoday has changed this. expecte irably, that
befor
They they
etc.
(e.g. bandwidth, elem CPU) tohas
nmemory, exclusively totely
Temp
job has some time
Build
lts whe
ually,
appear effects. rm a
Privat y, contin nt team Every mov
entsinstances. ed to CSS
used
to be, HTML d. Earl
ed resu gration
The various resourcesPerfo consumed by webperio applications
dicall (e.g.
opme page system
individual operating bec Brow y exp . Whi
adverse unintend d Builds sitory Build r to devel common (HTM . ause ser HTM anded le it
ous Inte web dev manufacture L had very far mor has done
Stage Repo
e bandwidth, memory, CPU) areIntegtallied
ration on a per-unit CI serve basis L or XHT
produc Continu Refcard
e Build rm an ack from extensio .) All are
e.com

ML shar limit e than its


pat tern. term this
Privat
(starting from zero) by Perfo all majorated cloud
feedb computing platforms.
occur on As a user of Amazon’s
n. HTM EC2 essecloud
ntiallycomputing platform, you are
es cert result elopers
came
rs add
ed man ed layout anybody
the tion of the e, as autom they based proc is
gra such wayain The late a lack of stan up with clev y competi
supp
as
” cycl Build Send soon builds
assigned esso
an operating L system
files shou in theplai
same as onelemallents
hosting
ous Inte tional use and test concepts Integ
ration ors as entat
ion with r
ld not
n text
in st web dar er wor ng stan
ort.
Continu conven “build include oper
docum
be cr standar kar dar
the to the to rate devel
While s efer of CI
ion
Gene
Cloud Computing

the not

DZone, Inc.
s on
expand

150 Preston Executive Dr.


Suite 201
Cary, NC 27513
DZone communities deliver over 6 million pages each month to 888.678.0399
more than 3.3 million software developers, architects and decision 919.678.0300
makers. DZone offers something for everyone, including news,
Refcardz Feedback Welcome
$7.95

tutorials, cheat sheets, blogs, feature articles, source code and more.
refcardz@dzone.com
“DZone is a developer’s dream,” says PC Magazine.
Sponsorship Opportunities
Copyright © 2012 DZone, Inc. All rights reserved. No part of this publication may be reproduced, stored in a
retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, sales@dzone.com Version 1.0
without prior written permission of the publisher.

You might also like