SlideShare uma empresa Scribd logo
1 de 37
Manage cloud infrastructures
using Zend Framework
by Enrico Zimuel (enrico@zend.com)
Senior Software Engineer
Zend Framework Core Team
Zend Technologies Ltd


To watch the related webinar, please go to:

http://bit.ly/v9qbH9
                                              © All rights reserved. Zend Technologies, Inc.
About me

                                   • Software Engineer since 1996
                                          – Assembly x86, C/C++, Java, Perl, PHP
                                   • Enjoying PHP since 1999
                                   • PHP Engineer at Zend since 2008
                                   • ZF Core Team from April 2011
                                   • B.Sc. Computer Science and Economics
Email: enrico@zend.com
Twitter: @ezimuel                               from University of Pescara (Italy)




                         © All rights reserved. Zend Technologies, Inc.
Summary

●   Cloud computing in PHP
●   ZendServiceRackspace
●   Simple Cloud API
●   ZendCloudInfrastructure for ZF2 and ZF1
●   Adapters: Amazon Ec2, Rackspace
●   Examples




                       © All rights reserved. Zend Technologies, Inc.
Cloud computing




  © All rights reserved. Zend Technologies, Inc.
Cloud for developers

●   Needs for developers:
       ▶   Standard API (Open Stack, Open Cloud
             Computing Interface, ?)
       ▶   Development infrastructures
       ▶   Libraries/Frameworks “cloud ready”




                       © All rights reserved. Zend Technologies, Inc.
API for the cloud

●   API (Application Programming Interface), to interact
    with cloud services
●   Typically use REST-based APIs
●   Each vendor exposes a property API
●
    Learning curve for each cloud vendor




                      © All rights reserved. Zend Technologies, Inc.
PHP libraries for cloud

●
    Amazon Web Services
       ▶   AWS SDK for PHP, http://aws.amazon.com/sdkforphp/
●
    Windows Azure
       ▶   PHPAzure, http://phpazure.codeplex.com/
●   Rackspace
       ▶   php-cloudfiles, http://bit.ly/ptJa1Y
●
    GoGrid
       ▶   GoGridClient, http://bit.ly/o7MeLA



                         © All rights reserved. Zend Technologies, Inc.
ZF components for the cloud

●
    ZendServiceAmazon
●
    ZendServiceGoGrid (under dev)
●   ZendServiceNirvanix
●   ZendServiceRackspace
●   ZendServiceWindowsAzure




                   © All rights reserved. Zend Technologies, Inc.
ZendServiceRackspace




       © All rights reserved. Zend Technologies, Inc.
ZendServiceRackspace

●   Manage the following cloud services of
    Rackspace:
       ▶   Servers
       ▶   Files
●
    Provide a full OO interface for the API of
    Rackspace (ver 1.0)
●
    Release: ZF1 1.12 (in trunk now), ZF2 beta1



                     © All rights reserved. Zend Technologies, Inc.
Example: authentication


$user = 'username';
$key = 'secret key';

$rackspace = new ZendServiceRackspaceFiles($user,$key);

if ($rackspace->authenticate()) {
   echo "Authentication successfully";
} else {
   printf("ERROR: %s",$rackspace->getErrorMsg());
}




                       © All rights reserved. Zend Technologies, Inc.
Example: store object

…
$container = $rackspace->createContainer('test');
if (!$rackspace->isSuccessful()) {
    die('ERROR: '.$rackspace->getErrorMsg());
}
$name = 'example.jpg';
$file = file_get_contents($name);
$metadata = array (
    'foo' => 'bar'
);
$rackspace->storeObject('test',$name,$file,$metadata);
if ($rackspace->isSuccessful()) {
    echo 'Object stored successfully';
} else {
    printf("ERROR: %s",$rackspace->getErrorMsg());
}




                       © All rights reserved. Zend Technologies, Inc.
Example: create a server
$user = 'username';
$key = 'secret key';

$rackspace = new ZendServiceRackspaceServers($user,$key);

$data = array (
    'name'     => 'test',
    'imageId' => '49',
    'flavorId' => '1',
);
$server = $rackspace->createServer($data);

if (!$rackspace->isSuccessful()) {
    die('ERROR: '.$rackspace->getErrorMsg());
}

printf("Server name    : %sn",$server->getName());
printf("Server Id      : %sn",$server->getId());
printf("Admin password : %sn",$server->getAdminPass());




                          © All rights reserved. Zend Technologies, Inc.
Simple Cloud API




    © All rights reserved. Zend Technologies, Inc.
Simple Cloud API

●
    The Simple Cloud API is a common API for accessing
    cloud application services offered by multiple
    vendors
●   Starting from November 2010 the Simple Cloud API is
    part of Zend Framework under the classname:
       ▶   Zend_Cloud (ZF1)
       ▶   ZendCloud (ZF2)




                      © All rights reserved. Zend Technologies, Inc.
simplecloud.org




    © All rights reserved. Zend Technologies, Inc.
Why we need it?

●
    Vendor lock-in
       ▶   In economics, vendor lock-in makes a customer
              dependent on a vendor for products and
              services, unable to use another vendor
              without substantial switching costs
●
    Portability
       ▶   reuse the existing code instead of creating new
             code when moving software from an
             environment to another


                       © All rights reserved. Zend Technologies, Inc.
The architecture




              ZendCloud




            ZendService




    © All rights reserved. Zend Technologies, Inc.
The architecture (2)




                        ZendCloud

Document     Queue                                  Storage     Infrastructure



                        ZendService




               © All rights reserved. Zend Technologies, Inc.
ZendCloud as abstraction


●
    ZendCloud is an abstraction of the main features of
    some cloud vendors
●   Vendor specific functions may not be included in
    ZendCloud (for portability reason)
       ▶   For instance, Amazon S3 has a cleanBucket
             operation that is not implemented in ZendCloud
●   You can access the concrete adapters to use specific
    functions (getAdapter)



                       © All rights reserved. Zend Technologies, Inc.
ZendCloudDocumentService


●
    Abstracts the interfaces to all major document
    databases - both in the cloud and locally deployed
●
    Adapters:
       ▶   Amazon SimpleDB
       ▶   Windows Azure




                      © All rights reserved. Zend Technologies, Inc.
ZendCloudQueueService


●
    The QueueService implements access to message
    queues available as local or remote services.
●
    Adapters:
       ▶   Amazon Sqs
       ▶   Windows Azure
       ▶   ZendQueue




                        © All rights reserved. Zend Technologies, Inc.
ZendCloudStorageService


●   The storage service in the Simple Cloud API
    implements a basic interface for file storage on the
    cloud
●   Adapters:
       ▶   Amazon S3
       ▶   Windows Azure
       ▶   Nirvanix
       ▶   Filesystem
       ▶   Rackspace (under dev)

                        © All rights reserved. Zend Technologies, Inc.
ZendCloudInfrastructure




        © All rights reserved. Zend Technologies, Inc.
ZendCloudInfrastructure


●
    Manage instances (servers) of a cloud computing
    infrastructure
●
    Release ZF1: 1.12 (in trunk now), ZF2 beta1
●   Adapters:
       ▶   Amazon Ec2
       ▶   Rackspace Cloud Servers
       ▶   GoGrid (under dev)
       ▶   Windows Azure (under dev)


                        © All rights reserved. Zend Technologies, Inc.
Basic operations


●
    Create a new instance
●   Delete an instance
●
    Start/stop/reboot an instance
●
    List available instances
●   Get the status of an instance (running, stop, etc)
●   Monitor an instance (CPU, RAM, Network, etc)
●
    Deploy an instance
●
    Execute remote shell command (using SSH2)


                       © All rights reserved. Zend Technologies, Inc.
Image of an instance


●   An image of an instance is the collection of the
    following information:
       ▶   Operating system (OS)
       ▶   Memory available (RAM)
       ▶   CPU type




                      © All rights reserved. Zend Technologies, Inc.
Example: Amazon Ec2 adapter

use ZendCloudInfrastructureAdapterEc2 as Ec2Adapter,
    ZendCloudInfrastructureFactory;

$key    = 'key';
$secret = 'secret';
$region = 'region';

$infrastructure = Factory::getAdapter(array(
    Factory::INFRASTRUCTURE_ADAPTER_KEY =>
'ZendCloudInfrastructureAdapterEc2',
    Ec2Adapter::AWS_ACCESS_KEY => $key,
    Ec2Adapter::AWS_SECRET_KEY => $secret,
    Ec2Adapter::AWS_REGION     => $region,
));




                      © All rights reserved. Zend Technologies, Inc.
Example: create instance

$param= array (
    'imageId'      => 'your-image-id',
    'instanceType' => 'your-instance-type',
);

$instance= $infrastructure->createInstance('name', $param);

if ($instance===false) {
   die ('Error');
}

printf ("Name of the instance: %sn", $instance->getName());
printf ("ID of the instance : %sn", $instance->getId());




                           © All rights reserved. Zend Technologies, Inc.
Example: reboot and wait for status change


if (!$infrastructure->rebootInstance('instance-id')) {
    die ('Error in the execution of the reboot command');
}
echo 'Reboot command executed successfully';

if ($infrastructure->waitStatusInstance('instance-id',
Instance::STATUS_RUNNING)) {
    echo 'The instance is ready';
} else {
    echo 'The instance is not ready yet';
}




                          © All rights reserved. Zend Technologies, Inc.
Wait for status change

waitStatusInstance (string $id, string $status, integer
$timeout=30)
●   wait the status change of an instance for a maximum
    time of n seconds (30 by default).
●   returns true if the status changes as expected, false
    otherwise.




                      © All rights reserved. Zend Technologies, Inc.
Example: monitor an instance

use ZendCloudInfrastructureInstance;

$cpuUsage= $infrastructure->monitorInstance(
            'instance-id',Instance::MONITOR_CPU);

var_dump($cpuUsage);



array(2) {                                                     [2] => array(2) {
 ["series"] => array(3) {                                        ["timestamp"] => int(1318348920)
   [0]=> array(2) {                                              ["value"] => int(60)
     ["timestamp"] => int(1318348800)                          }
     ["value"]=> int(80)                                      }
   }                                                          ["average"] => string(3) "70"
   [1]=> array(2) {                                       }
     ["timestamp"] => int(1318348860)
     ["value"] => int(70)
   }


                              © All rights reserved. Zend Technologies, Inc.
Example: deploy an instance

$nodeId= 'id-instance';

$param= array (
    Instance::SSH_USERNAME => 'username',
    Instance::SSH_PASSWORD => 'password'
);

$cmd= 'ls -la /var/www';

$output= $infrastructure->deployInstance($nodeId,$param,$cmd);

echo "The files in the DocumentRoot of the $nodeId instance are:n";
print_r ($output);




Note: require the SSH2 extension

                           © All rights reserved. Zend Technologies, Inc.
New mailing list!


            zf-cloud@lists.zend.com
●
    to subscribe send an empty email to:
        ▶   zf-cloud-subscribe@lists.zend.com




                         © All rights reserved. Zend Technologies, Inc.
Questions?




© All rights reserved. Zend Technologies, Inc.
Thank you!

More info:
http://www.zend.com
http://framework.zend.com/
http://devzone.zend.com




               © All rights reserved. Zend Technologies, Inc.
Webinar

    To watch the complete webinar, please go to:
    • http://www.zend.com/en/resources/webinars/framework#M
      CIZF
    or
    • http://bit.ly/v9qbH9




2                            © All rights reserved. Zend Technologies, Inc.

Mais conteúdo relacionado

Mais procurados

20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13Amazon Web Services Japan
 
深入淺出 AWS 混合式雲端架構
深入淺出 AWS 混合式雲端架構 深入淺出 AWS 混合式雲端架構
深入淺出 AWS 混合式雲端架構 Amazon Web Services
 
AWS Summit 2011: Overview of Security and Compliance in the cloud
AWS Summit 2011: Overview of Security and Compliance in the cloudAWS Summit 2011: Overview of Security and Compliance in the cloud
AWS Summit 2011: Overview of Security and Compliance in the cloudAmazon Web Services
 
[AWS Innovate 온라인 컨퍼런스] Kubernetes와 SageMaker를 활용하여 Machine Learning 워크로드 관리하...
[AWS Innovate 온라인 컨퍼런스] Kubernetes와 SageMaker를 활용하여 Machine Learning 워크로드 관리하...[AWS Innovate 온라인 컨퍼런스] Kubernetes와 SageMaker를 활용하여 Machine Learning 워크로드 관리하...
[AWS Innovate 온라인 컨퍼런스] Kubernetes와 SageMaker를 활용하여 Machine Learning 워크로드 관리하...Amazon Web Services Korea
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems ManagerAmazon Web Services Japan
 
深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service 深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service Amazon Web Services
 
針對 AWS 雲端的備份 (Veeam Backup for AWS) (2021 版本)
針對 AWS 雲端的備份 (Veeam Backup for AWS) (2021 版本)針對 AWS 雲端的備份 (Veeam Backup for AWS) (2021 版本)
針對 AWS 雲端的備份 (Veeam Backup for AWS) (2021 版本)Wales Chen
 
State of the Union: Compute & DevOps
State of the Union: Compute & DevOpsState of the Union: Compute & DevOps
State of the Union: Compute & DevOpsAmazon Web Services
 
Simplificando Arquiteturas Microsoft com os Serviços da AWS - ARC204 - Sao P...
Simplificando Arquiteturas Microsoft com os Serviços da AWS -  ARC204 - Sao P...Simplificando Arquiteturas Microsoft com os Serviços da AWS -  ARC204 - Sao P...
Simplificando Arquiteturas Microsoft com os Serviços da AWS - ARC204 - Sao P...Amazon Web Services
 
Day 2 - Amazon EC2 Masterclass - Getting the most from Amazon EC2
Day 2 - Amazon EC2 Masterclass - Getting the most from Amazon EC2Day 2 - Amazon EC2 Masterclass - Getting the most from Amazon EC2
Day 2 - Amazon EC2 Masterclass - Getting the most from Amazon EC2Amazon Web Services
 
Best Practices and Hard Lessons of Serverless- AWS Startup Day Toronto- Diego...
Best Practices and Hard Lessons of Serverless- AWS Startup Day Toronto- Diego...Best Practices and Hard Lessons of Serverless- AWS Startup Day Toronto- Diego...
Best Practices and Hard Lessons of Serverless- AWS Startup Day Toronto- Diego...Amazon Web Services
 
Sessão Avançada: VMware Cloud na AWS - ENT204 - Sao Paulo Summit
Sessão Avançada: VMware Cloud na AWS -  ENT204 - Sao Paulo SummitSessão Avançada: VMware Cloud na AWS -  ENT204 - Sao Paulo Summit
Sessão Avançada: VMware Cloud na AWS - ENT204 - Sao Paulo SummitAmazon Web Services
 
Building Secure Services using Containers
Building Secure Services using ContainersBuilding Secure Services using Containers
Building Secure Services using ContainersAmazon Web Services
 
현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...
현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...
현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...Amazon Web Services Korea
 
Amazon Container 환경의 보안 – 최인영, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
Amazon Container 환경의 보안 – 최인영, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집Amazon Container 환경의 보안 – 최인영, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
Amazon Container 환경의 보안 – 최인영, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집Amazon Web Services Korea
 
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...Amazon Web Services Japan
 
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデートAmazon Web Services Japan
 

Mais procurados (20)

20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
 
深入淺出 AWS 混合式雲端架構
深入淺出 AWS 混合式雲端架構 深入淺出 AWS 混合式雲端架構
深入淺出 AWS 混合式雲端架構
 
AWS Summit 2011: Overview of Security and Compliance in the cloud
AWS Summit 2011: Overview of Security and Compliance in the cloudAWS Summit 2011: Overview of Security and Compliance in the cloud
AWS Summit 2011: Overview of Security and Compliance in the cloud
 
IP Expo - What is AWS?
IP Expo - What is AWS?IP Expo - What is AWS?
IP Expo - What is AWS?
 
[AWS Innovate 온라인 컨퍼런스] Kubernetes와 SageMaker를 활용하여 Machine Learning 워크로드 관리하...
[AWS Innovate 온라인 컨퍼런스] Kubernetes와 SageMaker를 활용하여 Machine Learning 워크로드 관리하...[AWS Innovate 온라인 컨퍼런스] Kubernetes와 SageMaker를 활용하여 Machine Learning 워크로드 관리하...
[AWS Innovate 온라인 컨퍼런스] Kubernetes와 SageMaker를 활용하여 Machine Learning 워크로드 관리하...
 
AWS Tech Talks - Data Lake Analytics
AWS Tech Talks - Data Lake AnalyticsAWS Tech Talks - Data Lake Analytics
AWS Tech Talks - Data Lake Analytics
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
 
深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service 深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service
 
針對 AWS 雲端的備份 (Veeam Backup for AWS) (2021 版本)
針對 AWS 雲端的備份 (Veeam Backup for AWS) (2021 版本)針對 AWS 雲端的備份 (Veeam Backup for AWS) (2021 版本)
針對 AWS 雲端的備份 (Veeam Backup for AWS) (2021 版本)
 
EKS Workshop
 EKS Workshop EKS Workshop
EKS Workshop
 
State of the Union: Compute & DevOps
State of the Union: Compute & DevOpsState of the Union: Compute & DevOps
State of the Union: Compute & DevOps
 
Simplificando Arquiteturas Microsoft com os Serviços da AWS - ARC204 - Sao P...
Simplificando Arquiteturas Microsoft com os Serviços da AWS -  ARC204 - Sao P...Simplificando Arquiteturas Microsoft com os Serviços da AWS -  ARC204 - Sao P...
Simplificando Arquiteturas Microsoft com os Serviços da AWS - ARC204 - Sao P...
 
Day 2 - Amazon EC2 Masterclass - Getting the most from Amazon EC2
Day 2 - Amazon EC2 Masterclass - Getting the most from Amazon EC2Day 2 - Amazon EC2 Masterclass - Getting the most from Amazon EC2
Day 2 - Amazon EC2 Masterclass - Getting the most from Amazon EC2
 
Best Practices and Hard Lessons of Serverless- AWS Startup Day Toronto- Diego...
Best Practices and Hard Lessons of Serverless- AWS Startup Day Toronto- Diego...Best Practices and Hard Lessons of Serverless- AWS Startup Day Toronto- Diego...
Best Practices and Hard Lessons of Serverless- AWS Startup Day Toronto- Diego...
 
Sessão Avançada: VMware Cloud na AWS - ENT204 - Sao Paulo Summit
Sessão Avançada: VMware Cloud na AWS -  ENT204 - Sao Paulo SummitSessão Avançada: VMware Cloud na AWS -  ENT204 - Sao Paulo Summit
Sessão Avançada: VMware Cloud na AWS - ENT204 - Sao Paulo Summit
 
Building Secure Services using Containers
Building Secure Services using ContainersBuilding Secure Services using Containers
Building Secure Services using Containers
 
현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...
현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...
현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...
 
Amazon Container 환경의 보안 – 최인영, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
Amazon Container 환경의 보안 – 최인영, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집Amazon Container 환경의 보안 – 최인영, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
Amazon Container 환경의 보안 – 최인영, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
 
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
 
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
 

Destaque (12)

Code Tracing with Zend Server 5: A Flight Recorder for your PHP Applications!
Code Tracing with Zend Server 5: A Flight Recorder for your PHP Applications!Code Tracing with Zend Server 5: A Flight Recorder for your PHP Applications!
Code Tracing with Zend Server 5: A Flight Recorder for your PHP Applications!
 
Il testing con zend framework
Il testing con zend frameworkIl testing con zend framework
Il testing con zend framework
 
Dev & Prod - PHP Applications in the Cloud
Dev & Prod - PHP Applications in the CloudDev & Prod - PHP Applications in the Cloud
Dev & Prod - PHP Applications in the Cloud
 
Zend framework: Toma el control
Zend framework: Toma el controlZend framework: Toma el control
Zend framework: Toma el control
 
How do I securely deploy Internet websites in PHP on my IBMi?
How do I securely deploy Internet websites in PHP on my IBMi?How do I securely deploy Internet websites in PHP on my IBMi?
How do I securely deploy Internet websites in PHP on my IBMi?
 
Resolving problems & high availability
Resolving problems & high availabilityResolving problems & high availability
Resolving problems & high availability
 
Application Deployment on IBM i
Application Deployment on IBM iApplication Deployment on IBM i
Application Deployment on IBM i
 
Zend server for IBM i update 5.6
Zend server for IBM i update 5.6Zend server for IBM i update 5.6
Zend server for IBM i update 5.6
 
WEBINAR: Classic Design Patterns in PHP
WEBINAR: Classic Design Patterns in PHPWEBINAR: Classic Design Patterns in PHP
WEBINAR: Classic Design Patterns in PHP
 
Developing apps faster
Developing apps fasterDeveloping apps faster
Developing apps faster
 
Funzioni anonime in PHP 5.3
Funzioni anonime in PHP 5.3Funzioni anonime in PHP 5.3
Funzioni anonime in PHP 5.3
 
A Tale of Two Toolkits
A Tale of Two ToolkitsA Tale of Two Toolkits
A Tale of Two Toolkits
 

Semelhante a How to Manage Cloud Infrastructures using Zend Framework

A quick start on Zend Framework 2
A quick start on Zend Framework 2A quick start on Zend Framework 2
A quick start on Zend Framework 2Enrico Zimuel
 
Quick start on Zend Framework 2
Quick start on Zend Framework 2Quick start on Zend Framework 2
Quick start on Zend Framework 2Enrico Zimuel
 
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)Enrico Zimuel
 
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf Conference
 
Zend Framework 2 quick start
Zend Framework 2 quick startZend Framework 2 quick start
Zend Framework 2 quick startEnrico Zimuel
 
Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)Enrico Zimuel
 
How to scale PHP applications
How to scale PHP applicationsHow to scale PHP applications
How to scale PHP applicationsEnrico Zimuel
 
Costruire un sito e-commerce in alta affidabilità con Magento e Zend Server C...
Costruire un sito e-commerce in alta affidabilità con Magento e Zend Server C...Costruire un sito e-commerce in alta affidabilità con Magento e Zend Server C...
Costruire un sito e-commerce in alta affidabilità con Magento e Zend Server C...Zend by Rogue Wave Software
 
ILM - Pipeline in the cloud
ILM - Pipeline in the cloudILM - Pipeline in the cloud
ILM - Pipeline in the cloudAaron Carey
 
Turbocharging php applications with zend server
Turbocharging php applications with zend serverTurbocharging php applications with zend server
Turbocharging php applications with zend serverEric Ritchie
 
ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013Rupesh Kumar
 
Turbocharging php applications with zend server (workshop)
Turbocharging php applications with zend server (workshop)Turbocharging php applications with zend server (workshop)
Turbocharging php applications with zend server (workshop)Eric Ritchie
 
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...Amazon Web Services
 
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"Fwdays
 
Eclipse HandsOn Workshop
Eclipse HandsOn WorkshopEclipse HandsOn Workshop
Eclipse HandsOn WorkshopBastian Feder
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsMichael Lange
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Patrick Chanezon
 
PHP and Zend Framework on Windows
PHP and Zend Framework on WindowsPHP and Zend Framework on Windows
PHP and Zend Framework on WindowsShahar Evron
 

Semelhante a How to Manage Cloud Infrastructures using Zend Framework (20)

A quick start on Zend Framework 2
A quick start on Zend Framework 2A quick start on Zend Framework 2
A quick start on Zend Framework 2
 
Quick start on Zend Framework 2
Quick start on Zend Framework 2Quick start on Zend Framework 2
Quick start on Zend Framework 2
 
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
 
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
 
Zend Framework 2 quick start
Zend Framework 2 quick startZend Framework 2 quick start
Zend Framework 2 quick start
 
ZF2 Presentation @PHP Tour 2011 in Lille
ZF2 Presentation @PHP Tour 2011 in LilleZF2 Presentation @PHP Tour 2011 in Lille
ZF2 Presentation @PHP Tour 2011 in Lille
 
Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)
 
Zend Framework 2 Patterns
Zend Framework 2 PatternsZend Framework 2 Patterns
Zend Framework 2 Patterns
 
How to scale PHP applications
How to scale PHP applicationsHow to scale PHP applications
How to scale PHP applications
 
Costruire un sito e-commerce in alta affidabilità con Magento e Zend Server C...
Costruire un sito e-commerce in alta affidabilità con Magento e Zend Server C...Costruire un sito e-commerce in alta affidabilità con Magento e Zend Server C...
Costruire un sito e-commerce in alta affidabilità con Magento e Zend Server C...
 
ILM - Pipeline in the cloud
ILM - Pipeline in the cloudILM - Pipeline in the cloud
ILM - Pipeline in the cloud
 
Turbocharging php applications with zend server
Turbocharging php applications with zend serverTurbocharging php applications with zend server
Turbocharging php applications with zend server
 
ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013
 
Turbocharging php applications with zend server (workshop)
Turbocharging php applications with zend server (workshop)Turbocharging php applications with zend server (workshop)
Turbocharging php applications with zend server (workshop)
 
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
 
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
 
Eclipse HandsOn Workshop
Eclipse HandsOn WorkshopEclipse HandsOn Workshop
Eclipse HandsOn Workshop
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 
PHP and Zend Framework on Windows
PHP and Zend Framework on WindowsPHP and Zend Framework on Windows
PHP and Zend Framework on Windows
 

Mais de Zend by Rogue Wave Software

Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM iZend by Rogue Wave Software
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Zend by Rogue Wave Software
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)Zend by Rogue Wave Software
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Zend by Rogue Wave Software
 
Fundamentals of performance tuning PHP on IBM i
Fundamentals of performance tuning PHP on IBM i  Fundamentals of performance tuning PHP on IBM i
Fundamentals of performance tuning PHP on IBM i Zend by Rogue Wave Software
 

Mais de Zend by Rogue Wave Software (20)

Develop microservices in php
Develop microservices in phpDevelop microservices in php
Develop microservices in php
 
Speed and security for your PHP application
Speed and security for your PHP applicationSpeed and security for your PHP application
Speed and security for your PHP application
 
Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM i
 
Building web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend ExpressiveBuilding web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend Expressive
 
To PHP 7 and beyond
To PHP 7 and beyondTo PHP 7 and beyond
To PHP 7 and beyond
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)
 
Middleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.xMiddleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.x
 
Ongoing management of your PHP 7 application
Ongoing management of your PHP 7 applicationOngoing management of your PHP 7 application
Ongoing management of your PHP 7 application
 
Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7
 
The Docker development template for PHP
The Docker development template for PHPThe Docker development template for PHP
The Docker development template for PHP
 
The most exciting features of PHP 7.1
The most exciting features of PHP 7.1The most exciting features of PHP 7.1
The most exciting features of PHP 7.1
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
 
The new features of PHP 7
The new features of PHP 7The new features of PHP 7
The new features of PHP 7
 
Deploying PHP apps on the cloud
Deploying PHP apps on the cloudDeploying PHP apps on the cloud
Deploying PHP apps on the cloud
 
Data is dead. Long live data!
Data is dead. Long live data! Data is dead. Long live data!
Data is dead. Long live data!
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
 
Keeping up with PHP
Keeping up with PHPKeeping up with PHP
Keeping up with PHP
 
Fundamentals of performance tuning PHP on IBM i
Fundamentals of performance tuning PHP on IBM i  Fundamentals of performance tuning PHP on IBM i
Fundamentals of performance tuning PHP on IBM i
 

Último

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Último (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

How to Manage Cloud Infrastructures using Zend Framework

  • 1. Manage cloud infrastructures using Zend Framework by Enrico Zimuel (enrico@zend.com) Senior Software Engineer Zend Framework Core Team Zend Technologies Ltd To watch the related webinar, please go to: http://bit.ly/v9qbH9 © All rights reserved. Zend Technologies, Inc.
  • 2. About me • Software Engineer since 1996 – Assembly x86, C/C++, Java, Perl, PHP • Enjoying PHP since 1999 • PHP Engineer at Zend since 2008 • ZF Core Team from April 2011 • B.Sc. Computer Science and Economics Email: enrico@zend.com Twitter: @ezimuel from University of Pescara (Italy) © All rights reserved. Zend Technologies, Inc.
  • 3. Summary ● Cloud computing in PHP ● ZendServiceRackspace ● Simple Cloud API ● ZendCloudInfrastructure for ZF2 and ZF1 ● Adapters: Amazon Ec2, Rackspace ● Examples © All rights reserved. Zend Technologies, Inc.
  • 4. Cloud computing © All rights reserved. Zend Technologies, Inc.
  • 5. Cloud for developers ● Needs for developers: ▶ Standard API (Open Stack, Open Cloud Computing Interface, ?) ▶ Development infrastructures ▶ Libraries/Frameworks “cloud ready” © All rights reserved. Zend Technologies, Inc.
  • 6. API for the cloud ● API (Application Programming Interface), to interact with cloud services ● Typically use REST-based APIs ● Each vendor exposes a property API ● Learning curve for each cloud vendor © All rights reserved. Zend Technologies, Inc.
  • 7. PHP libraries for cloud ● Amazon Web Services ▶ AWS SDK for PHP, http://aws.amazon.com/sdkforphp/ ● Windows Azure ▶ PHPAzure, http://phpazure.codeplex.com/ ● Rackspace ▶ php-cloudfiles, http://bit.ly/ptJa1Y ● GoGrid ▶ GoGridClient, http://bit.ly/o7MeLA © All rights reserved. Zend Technologies, Inc.
  • 8. ZF components for the cloud ● ZendServiceAmazon ● ZendServiceGoGrid (under dev) ● ZendServiceNirvanix ● ZendServiceRackspace ● ZendServiceWindowsAzure © All rights reserved. Zend Technologies, Inc.
  • 9. ZendServiceRackspace © All rights reserved. Zend Technologies, Inc.
  • 10. ZendServiceRackspace ● Manage the following cloud services of Rackspace: ▶ Servers ▶ Files ● Provide a full OO interface for the API of Rackspace (ver 1.0) ● Release: ZF1 1.12 (in trunk now), ZF2 beta1 © All rights reserved. Zend Technologies, Inc.
  • 11. Example: authentication $user = 'username'; $key = 'secret key'; $rackspace = new ZendServiceRackspaceFiles($user,$key); if ($rackspace->authenticate()) { echo "Authentication successfully"; } else { printf("ERROR: %s",$rackspace->getErrorMsg()); } © All rights reserved. Zend Technologies, Inc.
  • 12. Example: store object … $container = $rackspace->createContainer('test'); if (!$rackspace->isSuccessful()) { die('ERROR: '.$rackspace->getErrorMsg()); } $name = 'example.jpg'; $file = file_get_contents($name); $metadata = array ( 'foo' => 'bar' ); $rackspace->storeObject('test',$name,$file,$metadata); if ($rackspace->isSuccessful()) { echo 'Object stored successfully'; } else { printf("ERROR: %s",$rackspace->getErrorMsg()); } © All rights reserved. Zend Technologies, Inc.
  • 13. Example: create a server $user = 'username'; $key = 'secret key'; $rackspace = new ZendServiceRackspaceServers($user,$key); $data = array ( 'name' => 'test', 'imageId' => '49', 'flavorId' => '1', ); $server = $rackspace->createServer($data); if (!$rackspace->isSuccessful()) { die('ERROR: '.$rackspace->getErrorMsg()); } printf("Server name : %sn",$server->getName()); printf("Server Id : %sn",$server->getId()); printf("Admin password : %sn",$server->getAdminPass()); © All rights reserved. Zend Technologies, Inc.
  • 14. Simple Cloud API © All rights reserved. Zend Technologies, Inc.
  • 15. Simple Cloud API ● The Simple Cloud API is a common API for accessing cloud application services offered by multiple vendors ● Starting from November 2010 the Simple Cloud API is part of Zend Framework under the classname: ▶ Zend_Cloud (ZF1) ▶ ZendCloud (ZF2) © All rights reserved. Zend Technologies, Inc.
  • 16. simplecloud.org © All rights reserved. Zend Technologies, Inc.
  • 17. Why we need it? ● Vendor lock-in ▶ In economics, vendor lock-in makes a customer dependent on a vendor for products and services, unable to use another vendor without substantial switching costs ● Portability ▶ reuse the existing code instead of creating new code when moving software from an environment to another © All rights reserved. Zend Technologies, Inc.
  • 18. The architecture ZendCloud ZendService © All rights reserved. Zend Technologies, Inc.
  • 19. The architecture (2) ZendCloud Document Queue Storage Infrastructure ZendService © All rights reserved. Zend Technologies, Inc.
  • 20. ZendCloud as abstraction ● ZendCloud is an abstraction of the main features of some cloud vendors ● Vendor specific functions may not be included in ZendCloud (for portability reason) ▶ For instance, Amazon S3 has a cleanBucket operation that is not implemented in ZendCloud ● You can access the concrete adapters to use specific functions (getAdapter) © All rights reserved. Zend Technologies, Inc.
  • 21. ZendCloudDocumentService ● Abstracts the interfaces to all major document databases - both in the cloud and locally deployed ● Adapters: ▶ Amazon SimpleDB ▶ Windows Azure © All rights reserved. Zend Technologies, Inc.
  • 22. ZendCloudQueueService ● The QueueService implements access to message queues available as local or remote services. ● Adapters: ▶ Amazon Sqs ▶ Windows Azure ▶ ZendQueue © All rights reserved. Zend Technologies, Inc.
  • 23. ZendCloudStorageService ● The storage service in the Simple Cloud API implements a basic interface for file storage on the cloud ● Adapters: ▶ Amazon S3 ▶ Windows Azure ▶ Nirvanix ▶ Filesystem ▶ Rackspace (under dev) © All rights reserved. Zend Technologies, Inc.
  • 24. ZendCloudInfrastructure © All rights reserved. Zend Technologies, Inc.
  • 25. ZendCloudInfrastructure ● Manage instances (servers) of a cloud computing infrastructure ● Release ZF1: 1.12 (in trunk now), ZF2 beta1 ● Adapters: ▶ Amazon Ec2 ▶ Rackspace Cloud Servers ▶ GoGrid (under dev) ▶ Windows Azure (under dev) © All rights reserved. Zend Technologies, Inc.
  • 26. Basic operations ● Create a new instance ● Delete an instance ● Start/stop/reboot an instance ● List available instances ● Get the status of an instance (running, stop, etc) ● Monitor an instance (CPU, RAM, Network, etc) ● Deploy an instance ● Execute remote shell command (using SSH2) © All rights reserved. Zend Technologies, Inc.
  • 27. Image of an instance ● An image of an instance is the collection of the following information: ▶ Operating system (OS) ▶ Memory available (RAM) ▶ CPU type © All rights reserved. Zend Technologies, Inc.
  • 28. Example: Amazon Ec2 adapter use ZendCloudInfrastructureAdapterEc2 as Ec2Adapter, ZendCloudInfrastructureFactory; $key = 'key'; $secret = 'secret'; $region = 'region'; $infrastructure = Factory::getAdapter(array( Factory::INFRASTRUCTURE_ADAPTER_KEY => 'ZendCloudInfrastructureAdapterEc2', Ec2Adapter::AWS_ACCESS_KEY => $key, Ec2Adapter::AWS_SECRET_KEY => $secret, Ec2Adapter::AWS_REGION => $region, )); © All rights reserved. Zend Technologies, Inc.
  • 29. Example: create instance $param= array ( 'imageId' => 'your-image-id', 'instanceType' => 'your-instance-type', ); $instance= $infrastructure->createInstance('name', $param); if ($instance===false) { die ('Error'); } printf ("Name of the instance: %sn", $instance->getName()); printf ("ID of the instance : %sn", $instance->getId()); © All rights reserved. Zend Technologies, Inc.
  • 30. Example: reboot and wait for status change if (!$infrastructure->rebootInstance('instance-id')) { die ('Error in the execution of the reboot command'); } echo 'Reboot command executed successfully'; if ($infrastructure->waitStatusInstance('instance-id', Instance::STATUS_RUNNING)) { echo 'The instance is ready'; } else { echo 'The instance is not ready yet'; } © All rights reserved. Zend Technologies, Inc.
  • 31. Wait for status change waitStatusInstance (string $id, string $status, integer $timeout=30) ● wait the status change of an instance for a maximum time of n seconds (30 by default). ● returns true if the status changes as expected, false otherwise. © All rights reserved. Zend Technologies, Inc.
  • 32. Example: monitor an instance use ZendCloudInfrastructureInstance; $cpuUsage= $infrastructure->monitorInstance( 'instance-id',Instance::MONITOR_CPU); var_dump($cpuUsage); array(2) { [2] => array(2) { ["series"] => array(3) { ["timestamp"] => int(1318348920) [0]=> array(2) { ["value"] => int(60) ["timestamp"] => int(1318348800) } ["value"]=> int(80) } } ["average"] => string(3) "70" [1]=> array(2) { } ["timestamp"] => int(1318348860) ["value"] => int(70) } © All rights reserved. Zend Technologies, Inc.
  • 33. Example: deploy an instance $nodeId= 'id-instance'; $param= array ( Instance::SSH_USERNAME => 'username', Instance::SSH_PASSWORD => 'password' ); $cmd= 'ls -la /var/www'; $output= $infrastructure->deployInstance($nodeId,$param,$cmd); echo "The files in the DocumentRoot of the $nodeId instance are:n"; print_r ($output); Note: require the SSH2 extension © All rights reserved. Zend Technologies, Inc.
  • 34. New mailing list! zf-cloud@lists.zend.com ● to subscribe send an empty email to: ▶ zf-cloud-subscribe@lists.zend.com © All rights reserved. Zend Technologies, Inc.
  • 35. Questions? © All rights reserved. Zend Technologies, Inc.
  • 37. Webinar To watch the complete webinar, please go to: • http://www.zend.com/en/resources/webinars/framework#M CIZF or • http://bit.ly/v9qbH9 2 © All rights reserved. Zend Technologies, Inc.