SlideShare a Scribd company logo
1 of 20
Download to read offline
1 
Automated Infrastructure and 
Application Management 
Clark Everetts, Zend Technologies, Inc. 
ZendCon - 30 Oct 2014
2 
Hi! 
Clark Everetts 
• Zend Technologies, Inc. 
• Sr. Professional Services Consultant 
– Software Architecture Audits / Performance Audits 
– Continuous Delivery Assessments 
– Migrations (PHP, ZF, etc.) 
– Training: PHP, ZF 
• Past Life: missile interceptor launch control ; C&DH for International Space Station 
• Co-author with Michael Kimsal of php/architect’s PHP Job Hunter’s Handbook 
Enough about me…
3 
SO, WHAT’S YOUR PROBLEM?
4 
Managing application infrastructure / apps 
• Server maintenance/repair, application deployments 
• Often manual process 
• Dependencies, multiple people needed 
• Tedious 
• Error prone 
• Late nights troubleshooting self-inflicted wounds 
If your process is manual, at best it will be 
slow. At worst, it will be a living nightmare.
5 
Stop the Madness! Automate! 
Standardize, Make Repeatable & Reliable, Process: 
• Well-understood, built through collaboration 
• Controlled through Versioning 
• Testable in safe environments 
• Infrastructure Solution: Chef Cookbook 
• App Deployment Solution: CLI Client SDK 
• Server and Application Management Solution: WebAPI 
Zend Patterns offers Open-Source Plugins 
for Zend Server-based Infrastructures
6 
Presentation Goals 
What are we going to do today? 
• Look at Zend Patterns on GitHub - https://github.com/zend-patterns 
• Set up a Zend Server-based development environment using 
ZendServerChefCookbook 
• Deploy, (time-permitting: Update, Rollback) an Application using 
ZendServerSDK 
• Time-permitting: Get information about the application using 
ZendServerWebApiModule (here, via ZendServerSDK) 
Open Plugins for Zend Server-based 
Infrastructures
7 
GITHUB TOUR: ZEND PATTERNS
8 
CHEF COOKBOOK
9 
Development Environment: ZendServerChefCookbook 
Prerequisite Steps: 
• Install Vagrant - http://docs.vagrantup.com/v2/installation/index.html 
• Install / update relevant Vagrant Plugins: 
– vagrant-cachier (https://github.com/fgrehm/vagrant-cachier) 
– vagrant-omnibus (https://github.com/opscode/vagrant-omnibus) 
– vagrant-* (https://github.com/mitchellh?tab=repositories) 
– Check for new plugins and also run vagrant plugin update 
• Install VirtualBox (https://www.virtualbox.org/wiki/Downloads) 
• Or, VMWare Fusion/Workstation, Docker, (Hyper-V - Avail. w/ Windows 
8.1) – requires inexpensive plugin from Hashicorp. 
• Install Chef (next slide)
10 
Development Environment: ZendServerChefCookbook 
Install Chef on Your “Workstation”: 
• System Requirements 
(https://docs.getchef.com/chef_system_requirements.html) 
• Supported Platforms 
(https://docs.getchef.com/supported_platforms.html) 
• https://www.getchef.com/chef/choose-your-version/ 
• http://downloads.getchef.com/ 
• Chef Development Kit (http://www.getchef.com/downloads/chef-dk/) 
– chef CLI tool, Client, Zero, Knife, Ohai, Berkshelf, Test Kitchen, 
ChefSpec, FoodCritic 
– Omnibus Installer 
(https://docs.getchef.com/install_omnibus.html) 
• ZendServerChefCookbook (https://github.com/zend-patterns/ 
ZendServerChefCookbook)
11 
Development Environment: ZendServerChefCookbook 
Prerequisites for Node VM: 
• Vagrant Base Box 
• Chef 
• One way to get started is to get a Chef box from VagrantCloud 
– https://vagrantcloud.com/chef 
– https://github.com/opscode/bento 
– https://github.com/opscode/vagrant-omnibus 
– Can also create a base box 
• E.g., config.vm.box = "ubuntu/trusty64“ 
• Configure Cookbook (sit tight; we’ll see it soon)
12 
Development Environment: ZendServerChefCookbook 
Need a vagrant box with Chef 
• Get a box without Chef and install the desired version yourself 
• Install Chef 
• One way to get started is to get a Chef box from VagrantCloud 
– https://vagrantcloud.com/chef 
– https://github.com/opscode/bento 
– https://github.com/opscode/vagrant-omnibus
13 
Development Environment: Vagrant and Chef 
Where to get a vagrant box with Chef? 
• Vagrant can be instructed to install Chef at runtime using the vagrant-omnibus 
plugin 
– https://vagrantcloud.com/chef (in a catalog, updated easily) 
• https://github.com/opscode/bento (Packer templates) 
• https://github.com/opscode/vagrant-omnibus 
• Download chef/ubuntu-14.04 
• Get a box with Chef already included in the base box 
– https://vagrantcloud.com/search?utf8=%E2%9C%93&sort=&p 
rovider=&q=chef 
• Can also download or create a base box yourself 
– https://vagrantcloud.com/ffuenf/boxes/ubuntu-14.04-server-amd64 
– E.g., config.vm.box = "ubuntu/trusty64“
14 
Development Environment: Vagrant Providers 
If you chose the current title layout you should use it in all the slides layout: 
• VirtualBox (part of core) 
• AWS (ships in vagrant-aws plugin) 
• Rackspace (ships in vagrant-rackspace plugin) 
• VMWare Fusion ($79, 2 computers, purchase from Hashicorp) 
• LXC (ships in vagrant-lxc) 
• OpenStack (ships in vagrant-openstack-plugin) 
• Digital Ocean (ships in vagrant-digitalocean) 
• Parallels Desktop (ships in vagrant-parallels) 
• Google Compute Engine (shell, Chef, Puppet) 
Vagrant is an ever-growing ecosystem, 
supporting standalone and cloud.
15 
Vagrant Cachier 
A “common package cache among similar VM instances”: 
• http://fgrehm.viewdocs.io/vagrant-cachier 
• Run vagrant plugin install vagrant-cachier 
• Providers known to work (others might): 
– Vagrant's built in VirtualBox and Docker providers 
– vagrant-lxc 
– VMware providers with NFS enabled 
– vagrant-libvirt 
– vagrant-kvm
16 
COOKBOOK IN ACTION
17 
DEPLOYMENT WITH 
ZENDSERVERSDK
18 
What is this ZendServerSDK, anyway? 
ZF2 CLI application for: 
• Creating zpk (deployment packages) 
• Accessing WebAPI via command line 
• WebAPI 
– http://files.zend.com/help/Zend-Server/zend-server. 
htm#web_api_reference_guide.htm 
• ZendServerSDK 
– https://github.com/zend-patterns/ZendServerSDK 
• Let’s take a look… (github and in action)
19 
ZendServerWebApiModule 
ZF2 Module for accessing Zend Server’s WebAPI 
• Everything in the GUI is really just a front-end to API calls 
– https://github.com/zend-patterns/ZendServerWebApiModule 
• Let’s take a look… (github and in action)
20 
Bye! 
Clark Everetts 
• clark.e@zend.com 
• @clarkphp 
• https://github.com/clarkphp 
• I will add a repository for this talk (with the code to create the VM image, 
and an updated version of these slides) to the above github account. 
• The slides will be available (and updated) on Slideshare/SpeakerDeck. 
Rate the talk at 
https://joind.in/12206 
And…keep in touch!

More Related Content

What's hot

Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
Test-Driven Infrastructure with Chef
Test-Driven Infrastructure with ChefTest-Driven Infrastructure with Chef
Test-Driven Infrastructure with ChefMichael Lihs
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPuppet
 
Steamlining your puppet development workflow
Steamlining your puppet development workflowSteamlining your puppet development workflow
Steamlining your puppet development workflowTomas Doran
 
Build Your Own SaaS using Docker
Build Your Own SaaS using DockerBuild Your Own SaaS using Docker
Build Your Own SaaS using DockerJulien Barbier
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechChristopher Bumgardner
 
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Nicolas Poggi
 
Locally it worked! virtualizing docker
Locally it worked! virtualizing dockerLocally it worked! virtualizing docker
Locally it worked! virtualizing dockerSascha Brinkmann
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrantandygale
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDmitry Buzdin
 
Baking docker using chef
Baking docker using chefBaking docker using chef
Baking docker using chefMukta Aphale
 
Improve your Java Environment with Docker
Improve your Java Environment with DockerImprove your Java Environment with Docker
Improve your Java Environment with DockerHanoiJUG
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo Vacca
 
Pod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from DockershimPod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from DockershimVictor Morales
 
Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalChad Woolley
 
Drone your Ansible
Drone your AnsibleDrone your Ansible
Drone your AnsibleDennis Rowe
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopWalter Heck
 

What's hot (20)

Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Test-Driven Infrastructure with Chef
Test-Driven Infrastructure with ChefTest-Driven Infrastructure with Chef
Test-Driven Infrastructure with Chef
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
 
Steamlining your puppet development workflow
Steamlining your puppet development workflowSteamlining your puppet development workflow
Steamlining your puppet development workflow
 
Build Your Own SaaS using Docker
Build Your Own SaaS using DockerBuild Your Own SaaS using Docker
Build Your Own SaaS using Docker
 
Hacking on WildFly 9
Hacking on WildFly 9Hacking on WildFly 9
Hacking on WildFly 9
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ Benetech
 
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
 
Locally it worked! virtualizing docker
Locally it worked! virtualizing dockerLocally it worked! virtualizing docker
Locally it worked! virtualizing docker
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrant
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows Machines
 
Baking docker using chef
Baking docker using chefBaking docker using chef
Baking docker using chef
 
Vagrant and CentOS 7
Vagrant and CentOS 7Vagrant and CentOS 7
Vagrant and CentOS 7
 
Improve your Java Environment with Docker
Improve your Java Environment with DockerImprove your Java Environment with Docker
Improve your Java Environment with Docker
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
Perlbrew
PerlbrewPerlbrew
Perlbrew
 
Pod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from DockershimPod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from Dockershim
 
Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or Gal
 
Drone your Ansible
Drone your AnsibleDrone your Ansible
Drone your Ansible
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
 

Similar to Automated Infrastructure and Application Management

Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Hendrik Ebbers
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and dockerFabio Fumarola
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopOlinData
 
Using Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & HadoopUsing Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & HadoopPuppet
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and DockerFabio Fumarola
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and dockerFabio Fumarola
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Dockernklmish
 
Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrantMakis Asimidis
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemVan Phuc
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrantandygale
 
Improving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerImproving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerBrett Palmer
 
Pipelining DevOps with Jenkins and AWS
Pipelining DevOps with Jenkins and AWSPipelining DevOps with Jenkins and AWS
Pipelining DevOps with Jenkins and AWSJimmy Ray
 
Introduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerIntroduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerChris Taylor
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and dockerShapeBlue
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for DevelopmentChris Tankersley
 

Similar to Automated Infrastructure and Application Management (20)

Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
 
Using Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & HadoopUsing Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & Hadoop
 
Vagrant & Docker
Vagrant & DockerVagrant & Docker
Vagrant & Docker
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
Vagrant + Docker
Vagrant + DockerVagrant + Docker
Vagrant + Docker
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrant
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrant
 
Improving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerImproving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with Docker
 
Pipelining DevOps with Jenkins and AWS
Pipelining DevOps with Jenkins and AWSPipelining DevOps with Jenkins and AWS
Pipelining DevOps with Jenkins and AWS
 
Introduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerIntroduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and Docker
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 

More from Clark Everetts

IBM Watson & PHP, A Practical Demonstration
IBM Watson & PHP, A Practical DemonstrationIBM Watson & PHP, A Practical Demonstration
IBM Watson & PHP, A Practical DemonstrationClark Everetts
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Clark Everetts
 
Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017Clark Everetts
 
Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016Clark Everetts
 
Sunshine php practical-zf1-zf2-migration
Sunshine php practical-zf1-zf2-migrationSunshine php practical-zf1-zf2-migration
Sunshine php practical-zf1-zf2-migrationClark Everetts
 
Zend con practical-zf1-zf2-migration
Zend con practical-zf1-zf2-migrationZend con practical-zf1-zf2-migration
Zend con practical-zf1-zf2-migrationClark Everetts
 
Zend con what-i-learned-about-mobile-first
Zend con what-i-learned-about-mobile-firstZend con what-i-learned-about-mobile-first
Zend con what-i-learned-about-mobile-firstClark Everetts
 

More from Clark Everetts (7)

IBM Watson & PHP, A Practical Demonstration
IBM Watson & PHP, A Practical DemonstrationIBM Watson & PHP, A Practical Demonstration
IBM Watson & PHP, A Practical Demonstration
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
 
Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017
 
Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016
 
Sunshine php practical-zf1-zf2-migration
Sunshine php practical-zf1-zf2-migrationSunshine php practical-zf1-zf2-migration
Sunshine php practical-zf1-zf2-migration
 
Zend con practical-zf1-zf2-migration
Zend con practical-zf1-zf2-migrationZend con practical-zf1-zf2-migration
Zend con practical-zf1-zf2-migration
 
Zend con what-i-learned-about-mobile-first
Zend con what-i-learned-about-mobile-firstZend con what-i-learned-about-mobile-first
Zend con what-i-learned-about-mobile-first
 

Recently uploaded

Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringWSO2
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceIES VE
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....rightmanforbloodline
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 

Recently uploaded (20)

Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 

Automated Infrastructure and Application Management

  • 1. 1 Automated Infrastructure and Application Management Clark Everetts, Zend Technologies, Inc. ZendCon - 30 Oct 2014
  • 2. 2 Hi! Clark Everetts • Zend Technologies, Inc. • Sr. Professional Services Consultant – Software Architecture Audits / Performance Audits – Continuous Delivery Assessments – Migrations (PHP, ZF, etc.) – Training: PHP, ZF • Past Life: missile interceptor launch control ; C&DH for International Space Station • Co-author with Michael Kimsal of php/architect’s PHP Job Hunter’s Handbook Enough about me…
  • 3. 3 SO, WHAT’S YOUR PROBLEM?
  • 4. 4 Managing application infrastructure / apps • Server maintenance/repair, application deployments • Often manual process • Dependencies, multiple people needed • Tedious • Error prone • Late nights troubleshooting self-inflicted wounds If your process is manual, at best it will be slow. At worst, it will be a living nightmare.
  • 5. 5 Stop the Madness! Automate! Standardize, Make Repeatable & Reliable, Process: • Well-understood, built through collaboration • Controlled through Versioning • Testable in safe environments • Infrastructure Solution: Chef Cookbook • App Deployment Solution: CLI Client SDK • Server and Application Management Solution: WebAPI Zend Patterns offers Open-Source Plugins for Zend Server-based Infrastructures
  • 6. 6 Presentation Goals What are we going to do today? • Look at Zend Patterns on GitHub - https://github.com/zend-patterns • Set up a Zend Server-based development environment using ZendServerChefCookbook • Deploy, (time-permitting: Update, Rollback) an Application using ZendServerSDK • Time-permitting: Get information about the application using ZendServerWebApiModule (here, via ZendServerSDK) Open Plugins for Zend Server-based Infrastructures
  • 7. 7 GITHUB TOUR: ZEND PATTERNS
  • 9. 9 Development Environment: ZendServerChefCookbook Prerequisite Steps: • Install Vagrant - http://docs.vagrantup.com/v2/installation/index.html • Install / update relevant Vagrant Plugins: – vagrant-cachier (https://github.com/fgrehm/vagrant-cachier) – vagrant-omnibus (https://github.com/opscode/vagrant-omnibus) – vagrant-* (https://github.com/mitchellh?tab=repositories) – Check for new plugins and also run vagrant plugin update • Install VirtualBox (https://www.virtualbox.org/wiki/Downloads) • Or, VMWare Fusion/Workstation, Docker, (Hyper-V - Avail. w/ Windows 8.1) – requires inexpensive plugin from Hashicorp. • Install Chef (next slide)
  • 10. 10 Development Environment: ZendServerChefCookbook Install Chef on Your “Workstation”: • System Requirements (https://docs.getchef.com/chef_system_requirements.html) • Supported Platforms (https://docs.getchef.com/supported_platforms.html) • https://www.getchef.com/chef/choose-your-version/ • http://downloads.getchef.com/ • Chef Development Kit (http://www.getchef.com/downloads/chef-dk/) – chef CLI tool, Client, Zero, Knife, Ohai, Berkshelf, Test Kitchen, ChefSpec, FoodCritic – Omnibus Installer (https://docs.getchef.com/install_omnibus.html) • ZendServerChefCookbook (https://github.com/zend-patterns/ ZendServerChefCookbook)
  • 11. 11 Development Environment: ZendServerChefCookbook Prerequisites for Node VM: • Vagrant Base Box • Chef • One way to get started is to get a Chef box from VagrantCloud – https://vagrantcloud.com/chef – https://github.com/opscode/bento – https://github.com/opscode/vagrant-omnibus – Can also create a base box • E.g., config.vm.box = "ubuntu/trusty64“ • Configure Cookbook (sit tight; we’ll see it soon)
  • 12. 12 Development Environment: ZendServerChefCookbook Need a vagrant box with Chef • Get a box without Chef and install the desired version yourself • Install Chef • One way to get started is to get a Chef box from VagrantCloud – https://vagrantcloud.com/chef – https://github.com/opscode/bento – https://github.com/opscode/vagrant-omnibus
  • 13. 13 Development Environment: Vagrant and Chef Where to get a vagrant box with Chef? • Vagrant can be instructed to install Chef at runtime using the vagrant-omnibus plugin – https://vagrantcloud.com/chef (in a catalog, updated easily) • https://github.com/opscode/bento (Packer templates) • https://github.com/opscode/vagrant-omnibus • Download chef/ubuntu-14.04 • Get a box with Chef already included in the base box – https://vagrantcloud.com/search?utf8=%E2%9C%93&sort=&p rovider=&q=chef • Can also download or create a base box yourself – https://vagrantcloud.com/ffuenf/boxes/ubuntu-14.04-server-amd64 – E.g., config.vm.box = "ubuntu/trusty64“
  • 14. 14 Development Environment: Vagrant Providers If you chose the current title layout you should use it in all the slides layout: • VirtualBox (part of core) • AWS (ships in vagrant-aws plugin) • Rackspace (ships in vagrant-rackspace plugin) • VMWare Fusion ($79, 2 computers, purchase from Hashicorp) • LXC (ships in vagrant-lxc) • OpenStack (ships in vagrant-openstack-plugin) • Digital Ocean (ships in vagrant-digitalocean) • Parallels Desktop (ships in vagrant-parallels) • Google Compute Engine (shell, Chef, Puppet) Vagrant is an ever-growing ecosystem, supporting standalone and cloud.
  • 15. 15 Vagrant Cachier A “common package cache among similar VM instances”: • http://fgrehm.viewdocs.io/vagrant-cachier • Run vagrant plugin install vagrant-cachier • Providers known to work (others might): – Vagrant's built in VirtualBox and Docker providers – vagrant-lxc – VMware providers with NFS enabled – vagrant-libvirt – vagrant-kvm
  • 16. 16 COOKBOOK IN ACTION
  • 17. 17 DEPLOYMENT WITH ZENDSERVERSDK
  • 18. 18 What is this ZendServerSDK, anyway? ZF2 CLI application for: • Creating zpk (deployment packages) • Accessing WebAPI via command line • WebAPI – http://files.zend.com/help/Zend-Server/zend-server. htm#web_api_reference_guide.htm • ZendServerSDK – https://github.com/zend-patterns/ZendServerSDK • Let’s take a look… (github and in action)
  • 19. 19 ZendServerWebApiModule ZF2 Module for accessing Zend Server’s WebAPI • Everything in the GUI is really just a front-end to API calls – https://github.com/zend-patterns/ZendServerWebApiModule • Let’s take a look… (github and in action)
  • 20. 20 Bye! Clark Everetts • clark.e@zend.com • @clarkphp • https://github.com/clarkphp • I will add a repository for this talk (with the code to create the VM image, and an updated version of these slides) to the above github account. • The slides will be available (and updated) on Slideshare/SpeakerDeck. Rate the talk at https://joind.in/12206 And…keep in touch!