| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- <?xml version="1.0" encoding="utf-8"?>
- <!-- Reviewed: no -->
- <sect1 id="zend.cloud.infrastructure.adapter">
- <title>Zend_Cloud_Infrastructure_Adapter</title>
- <sect2 id="zend.cloud.infrastructure.adapter.intro">
- <title>Adapters</title>
- <para>
- The <classname>Zend_Cloud_Infrastructure</classname> supports the following adapters:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://aws.amazon.com/ec2/">Amazon EC2</ulink>;
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://www.rackspace.com/cloud/cloud_hosting_products/servers/">Rackspace Cloud Servers</ulink>.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 id="zend.cloud.infrastructure.adapter.ec2">
- <title>AMAZON EC2</title>
- <para>
- To initialize the AMAZON EC2 adapter you have to use the following code:
- </para>
-
- <programlisting language="php"><![CDATA[
- $key = 'key';
- $secret = 'secret';
- $region = 'region';
- $infrastructure = Zend_Cloud_Infrastructure_Factory::getAdapter(array(
- Zend_Cloud_Infrastructure_Factory::INFRASTRUCTURE_ADAPTER_KEY => 'Zend_Cloud_Infrastructure_Adapter_Ec2',
- Zend_Cloud_Infrastructure_Adapter_Ec2::AWS_ACCESS_KEY => $key,
- Zend_Cloud_Infrastructure_Adapter_Ec2::AWS_SECRET_KEY => $secret,
- Zend_Cloud_Infrastructure_Adapter_Ec2::AWS_REGION => $region,
- ));
- ]]></programlisting>
- <para>
- To create a new instance for AMAZON EC2 adapter you have to use the following parameters:
- </para>
-
- <programlisting language="php"><![CDATA[
- $param = array (
- 'imageId' => 'your-image-id',
- 'instanceType' => 'your-instance-type',
- );
- $instance = $infrastructure->createInstance('name of the instance', $param);
- printf("Name of the instance: %s\n", $instance->getName());
- printf("ID of the instance : %s\n", $instance->getId());
- ]]></programlisting>
- <para>
- The monitor an instance of AMAZON EC2 you can use the starting time and ending time optional parameters.
- The times must be specified using the ISO 8601 format.
- </para>
-
- <programlisting language="php"><![CDATA[
- $options= array (
- Instance::MONITOR_START_TIME => '2008-02-26T19:00:00+00:00',
- Instance::MONITOR_END_TIME => '2008-02-26T20:00:00+00:00',
- );
- $cpuUsage= $infrastructure->monitorInstance('id-instance', Zend_Cloud_Infrastructure_Instance::MONITOR_CPU, $options);
- print_r($cpuUsage);
- ]]></programlisting>
- <para>
- The <emphasis>instanceType</emphasis> parameter is optional. This parameter specify the
- type of the instance to create (for instance, 't1.micro').
- </para>
- </sect2>
-
- <sect2 id="zend.cloud.infrastructure.adapter.rackspace">
- <title>Rackspace Cloud Servers</title>
- <para>
- To initialize the Rackspace Cloud Servers adapter you have to use the following code:
- </para>
-
- <programlisting language="php"><![CDATA[
- $user = 'username';
- $key = 'API key';
- $infrastructure = Zend_Cloud_Infrastructure_Factory::getAdapter(array(
- Zend_Cloud_Infrastructure_Factory::INFRASTRUCTURE_ADAPTER_KEY => 'Zend_Cloud_Infrastructure_Adapter_Rackspace',
- Zend_Cloud_Infrastructure_Adapter_Rackspace::RACKSPACE_USER => $user,
- Zend_Cloud_Infrastructure_Adapter_Rackspace::RACKSPACE_KEY => $key,
- ));
- ]]></programlisting>
- <para>
- To create a new instance for Rackspace Cloud Servers adapter you have to use the
- following parameters:
- </para>
-
- <programlisting language="php"><![CDATA[
- $param = array (
- 'imageId' => 'image-id-of-the-instance',
- 'flavorId' => 'flavor-id-of-the-instance',
- 'metadata' => array (
- 'foo' => 'bar',
- ),
- 'file' => array (
- 'remote-instance-path' => 'local-path',
- ),
- );
- $instance = $infrastructure->createInstance('name of the instance', $param);
- printf("Name of the instance: %s\n", $instance->getName());
- printf("ID of the instance : %s\n", $instance->getId());
- ]]></programlisting>
- <para>
- The <emphasis>metadata</emphasis> array and the <emphasis>file</emphasis> array are
- optional parameters.
- </para>
-
- <para>
- To monitor an instance of Rackspace Cloud Servers we can use only the SSH2 extension.
- The Rackspace API does not offer a dedicated service to monitor the instance. The
- monitoring features using the SSH2 connection are limited to the CPU usage, the RAM
- usage and the DISK usage.
- </para>
-
- <programlisting language="php"><![CDATA[
- $options = array (
- 'username' => 'your-username',
- 'password' => 'your-password',
- );
- $cpuUsage = $infrastructure->monitorInstance('id-instance', Instance::MONITOR_CPU, $options);
- $ramUsage = $infrastructure->monitorInstance('id-instance', Instance::MONITOR_RAM, $options);
- $diskUsage = $infrastructure->monitorInstance('id-instance', Instance::MONITOR_DISK, $options);
- print_r($cpuUsage);
- print_r($ramUsage);
- print_r($diskUsage);
- ]]></programlisting>
-
- <para>
- The <emphasis>$options</emphasis> contains the username and the password to be used for
- the SSH connection.
- </para>
- </sect2>
- </sect1>
|