SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
PHP, AWS, & Sleep
Confidently deploy PHP applications to the cloud…
and get some sleep!
Guillermo
(gee-YEAR-moe)
I sorta blog at guillermoandraefisher.com
and infrequently post content using the
@guillermoandrae moniker on various
social media networks.
We’re hiring!
Find opportunities at careers.dominionenterprises.com.
Agenda
◈ Sleep
◈ Continuous Delivery
◈ PHP: The Right Way
◈ Amazon Web Services (AWS)
◈ A Deployment Pipeline
“
Resilience to stress,
emotional regulation, and
interpersonal relationships
are impaired by sleep
deficiency.
Why is Sleep Important?, Michael Twery, Ph.D., Director,
National Center on Sleep Disorders Research, the National
Heart, Lung, and Blood Institute
America’s Most Sleep-Deprived Jobs
America’s 10 Most Sleep-Deprived Jobs, The New York Times, February 22, 2012
#1 6h 57m
Home Health
Aides
#3 7h 1m Police Officers
#4 7h 2m
Physicians,
Paramedics
#7 7h 3m
Computer
Programmers
#9 7h 7m Plant Operators
My Sleeping Problems
◈ Children
My Sleeping Problems
◈ Children
◈ Sleep apnea
“
Sleep apnea is a common
disorder in which you
have one or more pauses
in breathing or shallow
breaths while you sleep.
What is Sleep Apnea?, National Heart, Lung, and
Blood Institute
60+/hour
A diagnosis of severe sleep apnea is given when upwards of 30 apnea
episodes occur every hour.
Symptoms of Sleep Apnea
◈ Loud snoring
◈ Episodes of breathing cessation
◈ Abrupt awakenings w/ shortness of breath
◈ Dry mouth or sore throat
◈ Morning headache
◈ Insomnia
◈ Hypersomnia
◈ Attention problems
◈ Irritability
My Sleeping Problems
◈ Children
◈ Sleep apnea
◈ Code deployments
My Sleeping Problems
◈ Children
◈ Sleep apnea
◈ Dysfunctional code deployments
My Sleeping Solutions
◈ Children Stop having children
My Sleeping Solutions
◈ Children Stop having children
◈ Sleep apnea Diet + exercise or CPAP machine
“
CPAP, or continuous
positive airway pressure,
is a treatment that uses
mild air pressure to keep
the airways open.
What is CPAP?, National Heart, Lung, and Blood
Institute
Choice #1
Eat less steak, exercise more.
EAT LESS STEAK!
Choice #2
Vader sleep.
My Sleeping Solutions
◈ Children Stop having children
◈ Sleep apnea Diet + exercise or CPAP machine
My Sleeping Solutions
◈ Children Stop having children
◈ Sleep apnea Diet + exercise or CPAP machine
◈ Dysfunctional code deployments ?
Symptoms of Dysfunctional Deployments
◈ Inconsistency across environments
◈ Unplanned outages
◈ Infrequent deployments
◈ Little confidence in stability of code changes
◈ Developer burnout
“
Deployment pain can tell you a lot about
your IT performance...We found that where
code deployments are most painful, you’ll find
the poorest IT performance, organizational
performance and culture.
2015 State of DevOps Report, Puppet Labs
$> ssh widget-app-01 # because you might have to make manual
configuration changes, or you need to verify that all of the necessary
files made it onto the server during the deployment, or you need to tail
logs
$> tail -n 100 -f /var/log/httpd/error_log # because the
error reporting policy in place is insufficient/non-existent and/or
your application monitoring system raises so many false alarms that it
is entirely useless
$> mysql -u widget -h db-prod.widgetapp.com -p # because
you’re trying to get fired
My Sleeping Solutions
◈ Children Stop having children
◈ Sleep apnea Diet + exercise or CPAP machine
◈ Dysfunctional code deployments Quit!
11:12 AM Boss: Guillermo, on the smilie face scale, what is the automated test
and deployment procedure like for <REDACTED> ?
11:14 AM Me: There is no smily face sad enough… I build the code, publish the
DLLs, copy it up to staging manually, then execute a series of scripts to
deploy
11:16 AM Boss: Would you be ok getting on that immediately. Sure you know what
needs to be done.
11:17 AM Me: OK. I will have to familiarize myself with a few things in order
to do that but I will get started immediately
Boss: Jenkins is alwasy a good bet, but it is your call. Worth reaching out to
<REDACTED> to exchange ideas.
Thank you
Me: Sure
11:12 AM Boss: Guillermo, on the smilie face scale, what is the automated test
and deployment procedure like for <REDACTED> ?
11:14 AM Me: There is no smily face sad enough… I build the code, publish the
DLLs, copy it up to staging manually, then execute a series of scripts to
deploy
11:16 AM Boss: Would you be ok getting on that immediately. Sure you know what
needs to be done.
11:17 AM Me: OK. I will have to familiarize myself with a few things in order
to do that but I will get started immediately
Boss: Jenkins is alwasy a good bet, but it is your call. Worth reaching out to
<REDACTED> to exchange ideas.
Thank you
Me: Sure
My Sleeping Solutions
◈ Children Stop having children
◈ Sleep apnea Diet + exercise or CPAP machine
◈ Dysfunctional code deployments Continuous
Delivery!
“
Continuous Delivery is a
software development
discipline where you build
software in such a way that the
software can be released to
production at any time.
Continuous Delivery, Martin Fowler
Continuous Delivery
◈ Your software is deployable throughout its lifecycle
◈ Your team prioritizes keeping the software deployable over
working on new features
◈ Anybody can get fast, automated feedback on the production
readiness of their systems any time somebody makes a
change to them
◈ You can perform push-button deployments of any version of
the software to any environment on demand
24xFaster recovery from failure
2.2xEmployees more likely to recommend organization as a great place to work
3xLower change failure rate
Continuous Delivery
◈ Configuration management
◈ Test automation
◈ Build automation
◈ Application monitoring
◈ Infrastructure automation
Continuous Delivery
◈ Configuration management
◈ Test automation
◈ Build automation
◈ Application monitoring
◈ Infrastructure automation
Continuous Delivery
◈ Configuration management
◈ Test automation
◈ Build automation
◈ Application monitoring
◈ Infrastructure automation
Continuous Delivery w/ PHP
◈ PHP: The Right Way
◈ The PHP QA Toolchain
◈ Jenkins
◈ Phing
PHP: Use the current stable version (7.0)
Scalar type
declarations
Now enforceable:
string, int, float
and bool (in addition
to the other types
introduced in PHP 5:
class names,
interfaces, array and
callable)
Anonymous classes
Support for
anonymous classes
has been added via
new class. These can
be used in place of full
class definitions for
throwaway objects.
Group use
declarations
Classes, functions and
constants being
imported from the
same namespace can
now be grouped
together in a single
use statement.
PHP: Use the current stable version (7.0)
PHP7 Infographic, Zend
Mandelbrot fractal
rendering time (s)
PHP 7 0.281
Ruby 2.1 0.684
Python 2.7.8 1.128
Perl 5.18.4 2.083
SOLID Object-Oriented Design
Single Responsibility
Principle (SRP)
A class should have only a single
responsibility
Open/Closed
Principle (OCP)
“software entities … should be
open for extension, but closed for
modification.”
Liskov Substitution
Principle (LSP)
“objects in a program should be
replaceable with instances of
their subtypes without altering
the correctness of that program.”
Interface Segregation
Principle (ISP)
“many client-specific interfaces
are better than one
general-purpose interface.”
Dependency
Inversion Principle
(DIP)
“Depend upon Abstractions. Do
not depend upon concretions.”
The PHP Quality Assurance Toolchain
PHPUnit
The de-facto standard
for unit testing in PHP
projects
vfsStream
A stream wrapper for
a virtual file system
PHPLOC
A tool for quickly
measuring the size of
a PHP project
PHP Mess Detector
Scans PHP source
code and looks for
potential problems
PHP_CodeSniffer
Detects violations of a
defined set of coding
standards
phpDox
The documentation
generator for PHP
projects
Continuous Delivery
◈ Configuration management
◈ Test automation
◈ Build automation
◈ Application monitoring
◈ Infrastructure automation
Getting Started with AWS
Virtual Private Cloud
(VPC)
Isolated cloud
resources
Elastic Compute
Cloud (EC2)
Virtual servers in the
cloud
Relational Database
Service (RDS)
Managed relational
database service
Identity & Access
Manager (IAM)
Manage user access
and encryption keys
CloudWatch
Monitor resources
and applications
Trusted Advisor
Optimize
performance and
security
Getting Started with AWS
Simple Storage
Service (S3)
Scalable storage in the
cloud
CloudFront
Global content
delivery network
Elastic File System
(EFS)
Fully managed file
system for EC2
Route 53
Scalable DNS and
domain name
registration
Simple Email Service
(SES)
E-mail sending and
receiving service
ElastiCache
In-memory cache
“
AWS Elastic Beanstalk is an
easy-to-use service for deploying and
scaling web applications and services
developed with Java, .NET, PHP,
Node.js, Python, Ruby, Go, and Docker
on familiar servers such as Apache,
Nginx, Passenger, and IIS.
AWS Elastic Beanstalk, Amazon Web Services
The .ebextensions Directory
◈ Used to configure EB environments
◈ Can be added to project source code
◈ YAML documents with a .config extension
Continuous Delivery
◈ Configuration management
◈ Test automation
◈ Build automation
◈ Application monitoring
◈ Infrastructure automation
A Deployment Pipeline
Any questions?

Weitere ähnliche Inhalte

Was ist angesagt?

AppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityAppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityMatt Tesauro
 
Agile Infrastructure Velocity 09
Agile Infrastructure Velocity 09Agile Infrastructure Velocity 09
Agile Infrastructure Velocity 09Andrew Shafer
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCMike Brittain
 
JavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldJavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldBert Jan Schrijver
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps DisasterBert Jan Schrijver
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...JAXLondon2014
 
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"Daniel Bryant
 
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...Burr Sutter
 
Agile Infrastructure - Agile 2009
Agile Infrastructure - Agile 2009Agile Infrastructure - Agile 2009
Agile Infrastructure - Agile 2009Andrew Shafer
 
DevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps DisasterDevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps DisasterBert Jan Schrijver
 
JavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disasterJavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disasterBert Jan Schrijver
 
Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Nick Galbreath
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsNitin Bhide
 
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya JancaDevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya JancaDevSecCon
 
Oracle Code Brussels 2017 - The DevOps disaster
Oracle Code Brussels 2017 - The DevOps disasterOracle Code Brussels 2017 - The DevOps disaster
Oracle Code Brussels 2017 - The DevOps disasterBert Jan Schrijver
 
Digital Ocean Amsterdam meetup March 2017 - The DevOps disaster
Digital Ocean Amsterdam meetup March 2017 - The DevOps disasterDigital Ocean Amsterdam meetup March 2017 - The DevOps disaster
Digital Ocean Amsterdam meetup March 2017 - The DevOps disasterBert Jan Schrijver
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)Nitin Bhide
 
Building a Secure DevOps Pipeline - for your AppSec Program
Building a Secure DevOps Pipeline - for your AppSec Program   Building a Secure DevOps Pipeline - for your AppSec Program
Building a Secure DevOps Pipeline - for your AppSec Program Matt Tesauro
 
The DevOps Pay Raise: Quantifying Your Value to Move Up the Ladder
The DevOps Pay Raise: Quantifying Your Value to Move Up the LadderThe DevOps Pay Raise: Quantifying Your Value to Move Up the Ladder
The DevOps Pay Raise: Quantifying Your Value to Move Up the Laddertlevey
 

Was ist angesagt? (20)

AppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityAppSec Pipelines and Event based Security
AppSec Pipelines and Event based Security
 
Agile Infrastructure Velocity 09
Agile Infrastructure Velocity 09Agile Infrastructure Velocity 09
Agile Infrastructure Velocity 09
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYC
 
JavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldJavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps world
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps Disaster
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
 
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
 
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
 
Agile Infrastructure - Agile 2009
Agile Infrastructure - Agile 2009Agile Infrastructure - Agile 2009
Agile Infrastructure - Agile 2009
 
DevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps DisasterDevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps Disaster
 
JavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disasterJavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disaster
 
Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya JancaDevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
 
Oracle Code Brussels 2017 - The DevOps disaster
Oracle Code Brussels 2017 - The DevOps disasterOracle Code Brussels 2017 - The DevOps disaster
Oracle Code Brussels 2017 - The DevOps disaster
 
Digital Ocean Amsterdam meetup March 2017 - The DevOps disaster
Digital Ocean Amsterdam meetup March 2017 - The DevOps disasterDigital Ocean Amsterdam meetup March 2017 - The DevOps disaster
Digital Ocean Amsterdam meetup March 2017 - The DevOps disaster
 
DevOps, beyond agile
DevOps, beyond agileDevOps, beyond agile
DevOps, beyond agile
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
Building a Secure DevOps Pipeline - for your AppSec Program
Building a Secure DevOps Pipeline - for your AppSec Program   Building a Secure DevOps Pipeline - for your AppSec Program
Building a Secure DevOps Pipeline - for your AppSec Program
 
The DevOps Pay Raise: Quantifying Your Value to Move Up the Ladder
The DevOps Pay Raise: Quantifying Your Value to Move Up the LadderThe DevOps Pay Raise: Quantifying Your Value to Move Up the Ladder
The DevOps Pay Raise: Quantifying Your Value to Move Up the Ladder
 

Andere mochten auch

Andere mochten auch (16)

I am Daniel Vigilante
I am Daniel VigilanteI am Daniel Vigilante
I am Daniel Vigilante
 
Man Engineer CV Daniel Burke(WORD)
Man Engineer CV Daniel Burke(WORD)Man Engineer CV Daniel Burke(WORD)
Man Engineer CV Daniel Burke(WORD)
 
Why Your Company Needs Native
Why Your Company Needs NativeWhy Your Company Needs Native
Why Your Company Needs Native
 
DanBurkeMaster2015-4-27
DanBurkeMaster2015-4-27DanBurkeMaster2015-4-27
DanBurkeMaster2015-4-27
 
Learn HTML & CSS From Scratch in 30 Days
Learn HTML & CSS From Scratch in 30 DaysLearn HTML & CSS From Scratch in 30 Days
Learn HTML & CSS From Scratch in 30 Days
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
 
Introduction to html
Introduction to htmlIntroduction to html
Introduction to html
 
Learning HTML
Learning HTMLLearning HTML
Learning HTML
 
Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3
 
Aula01 Desenvolvimento em Ambiente Web - HTML
Aula01 Desenvolvimento em Ambiente Web - HTMLAula01 Desenvolvimento em Ambiente Web - HTML
Aula01 Desenvolvimento em Ambiente Web - HTML
 
Html coding
Html codingHtml coding
Html coding
 
Html 2
Html 2Html 2
Html 2
 
Html / CSS Presentation
Html / CSS PresentationHtml / CSS Presentation
Html / CSS Presentation
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Ähnlich wie PHP, AWS, and Sleep - Hampton Roads DevFest 2016

DeKnowledge - Try us
DeKnowledge - Try usDeKnowledge - Try us
DeKnowledge - Try usBob Pinto
 
From SLO to GOTY
From SLO to GOTYFrom SLO to GOTY
From SLO to GOTYScyllaDB
 
Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!Sophia Russell
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCupbryanbibat
 
10 practices that every developer needs to start right now
10 practices that every developer needs to start right now10 practices that every developer needs to start right now
10 practices that every developer needs to start right nowCaleb Jenkins
 
Code Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application MigrationsCode Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application MigrationsDana Luther
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Jwooldridge
 
Enterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetEnterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetChris Tankersley
 
Jr devsurvivalguide
Jr devsurvivalguideJr devsurvivalguide
Jr devsurvivalguideJames York
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops DevopsKris Buytaert
 
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet
 
Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetDevoteam Revolve
 

Ähnlich wie PHP, AWS, and Sleep - Hampton Roads DevFest 2016 (20)

DeKnowledge - Try us
DeKnowledge - Try usDeKnowledge - Try us
DeKnowledge - Try us
 
From SLO to GOTY
From SLO to GOTYFrom SLO to GOTY
From SLO to GOTY
 
Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCup
 
10 practices that every developer needs to start right now
10 practices that every developer needs to start right now10 practices that every developer needs to start right now
10 practices that every developer needs to start right now
 
Code Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application MigrationsCode Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application Migrations
 
App locker
App lockerApp locker
App locker
 
DevOps 201607
DevOps 201607 DevOps 201607
DevOps 201607
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
 
Enterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetEnterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring Budget
 
CI
CICI
CI
 
Devops
DevopsDevops
Devops
 
Dev Ops without the Ops
Dev Ops without the OpsDev Ops without the Ops
Dev Ops without the Ops
 
Dev ops
Dev opsDev ops
Dev ops
 
Jr devsurvivalguide
Jr devsurvivalguideJr devsurvivalguide
Jr devsurvivalguide
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
 
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
 
Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with Puppet
 

Mehr von Guillermo A. Fisher

The Beginner's Guide to Data Lakes in AWS
The Beginner's Guide to Data Lakes in AWSThe Beginner's Guide to Data Lakes in AWS
The Beginner's Guide to Data Lakes in AWSGuillermo A. Fisher
 
Demystifying Data Science & Analytics - 757ColorCoded 2019
Demystifying Data Science & Analytics - 757ColorCoded 2019Demystifying Data Science & Analytics - 757ColorCoded 2019
Demystifying Data Science & Analytics - 757ColorCoded 2019Guillermo A. Fisher
 
Wrestling with Cultural Identity - 757ColorCoded 2018
Wrestling with Cultural Identity - 757ColorCoded 2018Wrestling with Cultural Identity - 757ColorCoded 2018
Wrestling with Cultural Identity - 757ColorCoded 2018Guillermo A. Fisher
 
Release Management - DE IT Summit 2014
Release Management - DE IT Summit 2014Release Management - DE IT Summit 2014
Release Management - DE IT Summit 2014Guillermo A. Fisher
 
Building Valuable Restful APIs - HRPHP 2015
Building Valuable Restful APIs - HRPHP 2015Building Valuable Restful APIs - HRPHP 2015
Building Valuable Restful APIs - HRPHP 2015Guillermo A. Fisher
 
You're Probably Brilliant - Norfolk.js 2017 Lightning Talk
You're Probably Brilliant - Norfolk.js 2017 Lightning TalkYou're Probably Brilliant - Norfolk.js 2017 Lightning Talk
You're Probably Brilliant - Norfolk.js 2017 Lightning TalkGuillermo A. Fisher
 

Mehr von Guillermo A. Fisher (7)

Introduction to Scrum
Introduction to ScrumIntroduction to Scrum
Introduction to Scrum
 
The Beginner's Guide to Data Lakes in AWS
The Beginner's Guide to Data Lakes in AWSThe Beginner's Guide to Data Lakes in AWS
The Beginner's Guide to Data Lakes in AWS
 
Demystifying Data Science & Analytics - 757ColorCoded 2019
Demystifying Data Science & Analytics - 757ColorCoded 2019Demystifying Data Science & Analytics - 757ColorCoded 2019
Demystifying Data Science & Analytics - 757ColorCoded 2019
 
Wrestling with Cultural Identity - 757ColorCoded 2018
Wrestling with Cultural Identity - 757ColorCoded 2018Wrestling with Cultural Identity - 757ColorCoded 2018
Wrestling with Cultural Identity - 757ColorCoded 2018
 
Release Management - DE IT Summit 2014
Release Management - DE IT Summit 2014Release Management - DE IT Summit 2014
Release Management - DE IT Summit 2014
 
Building Valuable Restful APIs - HRPHP 2015
Building Valuable Restful APIs - HRPHP 2015Building Valuable Restful APIs - HRPHP 2015
Building Valuable Restful APIs - HRPHP 2015
 
You're Probably Brilliant - Norfolk.js 2017 Lightning Talk
You're Probably Brilliant - Norfolk.js 2017 Lightning TalkYou're Probably Brilliant - Norfolk.js 2017 Lightning Talk
You're Probably Brilliant - Norfolk.js 2017 Lightning Talk
 

Kürzlich hochgeladen

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

PHP, AWS, and Sleep - Hampton Roads DevFest 2016

  • 1. PHP, AWS, & Sleep Confidently deploy PHP applications to the cloud… and get some sleep!
  • 2. Guillermo (gee-YEAR-moe) I sorta blog at guillermoandraefisher.com and infrequently post content using the @guillermoandrae moniker on various social media networks.
  • 3. We’re hiring! Find opportunities at careers.dominionenterprises.com.
  • 4. Agenda ◈ Sleep ◈ Continuous Delivery ◈ PHP: The Right Way ◈ Amazon Web Services (AWS) ◈ A Deployment Pipeline
  • 5. “ Resilience to stress, emotional regulation, and interpersonal relationships are impaired by sleep deficiency. Why is Sleep Important?, Michael Twery, Ph.D., Director, National Center on Sleep Disorders Research, the National Heart, Lung, and Blood Institute
  • 6. America’s Most Sleep-Deprived Jobs America’s 10 Most Sleep-Deprived Jobs, The New York Times, February 22, 2012 #1 6h 57m Home Health Aides #3 7h 1m Police Officers #4 7h 2m Physicians, Paramedics #7 7h 3m Computer Programmers #9 7h 7m Plant Operators
  • 8. My Sleeping Problems ◈ Children ◈ Sleep apnea
  • 9. “ Sleep apnea is a common disorder in which you have one or more pauses in breathing or shallow breaths while you sleep. What is Sleep Apnea?, National Heart, Lung, and Blood Institute
  • 10. 60+/hour A diagnosis of severe sleep apnea is given when upwards of 30 apnea episodes occur every hour.
  • 11. Symptoms of Sleep Apnea ◈ Loud snoring ◈ Episodes of breathing cessation ◈ Abrupt awakenings w/ shortness of breath ◈ Dry mouth or sore throat ◈ Morning headache ◈ Insomnia ◈ Hypersomnia ◈ Attention problems ◈ Irritability
  • 12. My Sleeping Problems ◈ Children ◈ Sleep apnea ◈ Code deployments
  • 13. My Sleeping Problems ◈ Children ◈ Sleep apnea ◈ Dysfunctional code deployments
  • 14. My Sleeping Solutions ◈ Children Stop having children
  • 15. My Sleeping Solutions ◈ Children Stop having children ◈ Sleep apnea Diet + exercise or CPAP machine
  • 16. “ CPAP, or continuous positive airway pressure, is a treatment that uses mild air pressure to keep the airways open. What is CPAP?, National Heart, Lung, and Blood Institute
  • 17.
  • 18.
  • 19. Choice #1 Eat less steak, exercise more.
  • 20. EAT LESS STEAK! Choice #2 Vader sleep.
  • 21.
  • 22. My Sleeping Solutions ◈ Children Stop having children ◈ Sleep apnea Diet + exercise or CPAP machine
  • 23. My Sleeping Solutions ◈ Children Stop having children ◈ Sleep apnea Diet + exercise or CPAP machine ◈ Dysfunctional code deployments ?
  • 24. Symptoms of Dysfunctional Deployments ◈ Inconsistency across environments ◈ Unplanned outages ◈ Infrequent deployments ◈ Little confidence in stability of code changes ◈ Developer burnout
  • 25. “ Deployment pain can tell you a lot about your IT performance...We found that where code deployments are most painful, you’ll find the poorest IT performance, organizational performance and culture. 2015 State of DevOps Report, Puppet Labs
  • 26. $> ssh widget-app-01 # because you might have to make manual configuration changes, or you need to verify that all of the necessary files made it onto the server during the deployment, or you need to tail logs
  • 27. $> tail -n 100 -f /var/log/httpd/error_log # because the error reporting policy in place is insufficient/non-existent and/or your application monitoring system raises so many false alarms that it is entirely useless
  • 28. $> mysql -u widget -h db-prod.widgetapp.com -p # because you’re trying to get fired
  • 29. My Sleeping Solutions ◈ Children Stop having children ◈ Sleep apnea Diet + exercise or CPAP machine ◈ Dysfunctional code deployments Quit!
  • 30. 11:12 AM Boss: Guillermo, on the smilie face scale, what is the automated test and deployment procedure like for <REDACTED> ? 11:14 AM Me: There is no smily face sad enough… I build the code, publish the DLLs, copy it up to staging manually, then execute a series of scripts to deploy 11:16 AM Boss: Would you be ok getting on that immediately. Sure you know what needs to be done. 11:17 AM Me: OK. I will have to familiarize myself with a few things in order to do that but I will get started immediately Boss: Jenkins is alwasy a good bet, but it is your call. Worth reaching out to <REDACTED> to exchange ideas. Thank you Me: Sure
  • 31. 11:12 AM Boss: Guillermo, on the smilie face scale, what is the automated test and deployment procedure like for <REDACTED> ? 11:14 AM Me: There is no smily face sad enough… I build the code, publish the DLLs, copy it up to staging manually, then execute a series of scripts to deploy 11:16 AM Boss: Would you be ok getting on that immediately. Sure you know what needs to be done. 11:17 AM Me: OK. I will have to familiarize myself with a few things in order to do that but I will get started immediately Boss: Jenkins is alwasy a good bet, but it is your call. Worth reaching out to <REDACTED> to exchange ideas. Thank you Me: Sure
  • 32. My Sleeping Solutions ◈ Children Stop having children ◈ Sleep apnea Diet + exercise or CPAP machine ◈ Dysfunctional code deployments Continuous Delivery!
  • 33. “ Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time. Continuous Delivery, Martin Fowler
  • 34. Continuous Delivery ◈ Your software is deployable throughout its lifecycle ◈ Your team prioritizes keeping the software deployable over working on new features ◈ Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them ◈ You can perform push-button deployments of any version of the software to any environment on demand
  • 35. 24xFaster recovery from failure 2.2xEmployees more likely to recommend organization as a great place to work 3xLower change failure rate
  • 36. Continuous Delivery ◈ Configuration management ◈ Test automation ◈ Build automation ◈ Application monitoring ◈ Infrastructure automation
  • 37. Continuous Delivery ◈ Configuration management ◈ Test automation ◈ Build automation ◈ Application monitoring ◈ Infrastructure automation
  • 38.
  • 39. Continuous Delivery ◈ Configuration management ◈ Test automation ◈ Build automation ◈ Application monitoring ◈ Infrastructure automation
  • 40. Continuous Delivery w/ PHP ◈ PHP: The Right Way ◈ The PHP QA Toolchain ◈ Jenkins ◈ Phing
  • 41. PHP: Use the current stable version (7.0) Scalar type declarations Now enforceable: string, int, float and bool (in addition to the other types introduced in PHP 5: class names, interfaces, array and callable) Anonymous classes Support for anonymous classes has been added via new class. These can be used in place of full class definitions for throwaway objects. Group use declarations Classes, functions and constants being imported from the same namespace can now be grouped together in a single use statement.
  • 42. PHP: Use the current stable version (7.0) PHP7 Infographic, Zend Mandelbrot fractal rendering time (s) PHP 7 0.281 Ruby 2.1 0.684 Python 2.7.8 1.128 Perl 5.18.4 2.083
  • 43.
  • 44. SOLID Object-Oriented Design Single Responsibility Principle (SRP) A class should have only a single responsibility Open/Closed Principle (OCP) “software entities … should be open for extension, but closed for modification.” Liskov Substitution Principle (LSP) “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.” Interface Segregation Principle (ISP) “many client-specific interfaces are better than one general-purpose interface.” Dependency Inversion Principle (DIP) “Depend upon Abstractions. Do not depend upon concretions.”
  • 45.
  • 46. The PHP Quality Assurance Toolchain PHPUnit The de-facto standard for unit testing in PHP projects vfsStream A stream wrapper for a virtual file system PHPLOC A tool for quickly measuring the size of a PHP project PHP Mess Detector Scans PHP source code and looks for potential problems PHP_CodeSniffer Detects violations of a defined set of coding standards phpDox The documentation generator for PHP projects
  • 47. Continuous Delivery ◈ Configuration management ◈ Test automation ◈ Build automation ◈ Application monitoring ◈ Infrastructure automation
  • 48.
  • 49. Getting Started with AWS Virtual Private Cloud (VPC) Isolated cloud resources Elastic Compute Cloud (EC2) Virtual servers in the cloud Relational Database Service (RDS) Managed relational database service Identity & Access Manager (IAM) Manage user access and encryption keys CloudWatch Monitor resources and applications Trusted Advisor Optimize performance and security
  • 50. Getting Started with AWS Simple Storage Service (S3) Scalable storage in the cloud CloudFront Global content delivery network Elastic File System (EFS) Fully managed file system for EC2 Route 53 Scalable DNS and domain name registration Simple Email Service (SES) E-mail sending and receiving service ElastiCache In-memory cache
  • 51.
  • 52. “ AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS. AWS Elastic Beanstalk, Amazon Web Services
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60. The .ebextensions Directory ◈ Used to configure EB environments ◈ Can be added to project source code ◈ YAML documents with a .config extension
  • 61. Continuous Delivery ◈ Configuration management ◈ Test automation ◈ Build automation ◈ Application monitoring ◈ Infrastructure automation
  • 63.