SlideShare a Scribd company logo
1 of 97
Download to read offline
Professional Workflow From
Development To Deployment
Rachel Andrew, Smashing Conf LA 2015
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Rachel Andrew
http://rachelandrew.co.uk
@rachelandrew
http://grabaperch.com
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Many issues coming into support stem from
poor development and deployment processes.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
The Big Problems
• Developing directly on live sites or in subfolders of live sites
• Developing in subfolders locally
• Setting up local development environments that are so
different to the eventual live server that there is no
confidence when going live
• Deploying via FTP piecemeal and having sites blow up due to
missing files
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
What’s the problem with (S)FTP?
• You are transferring files one by one to the server with no
management of that transfer
• One failed transfer can break the site
• Old files may be left on the server - this could be a security
risk in the case of third party software
• Very hard to debug issues caused by missing files especially
where they are deep in third party code
Forrest Gump
“you’ve got to put the past behind you
before you can move on.”
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Improving workflow is the best way to give
yourself more hours in the day.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
These are baby steps to improved workflow.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
We need …
• to develop multiple websites on our own computer.
• to know that our live server and local server support the
same things.
• to deploy our site and have confidence that what is on the live
server is identical to our local version.
• to allow clients to view a site in progress during initial
development and also when making changes in future.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Working locally
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Developing live on the server!
• High chance of making a change that breaks something about
the site.
• No way for the client to preview changes
• Local version in sync? Do we even have a local version?
• If you get to the beach, you’ll be fixing a website. On your
phone. Have fun with that.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Q. How do you deploy your sites to the server?
A. We just edit on the server directly.
8%
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Let’s develop in a subfolder!
• Create a ‘newsite’ subfolder and develop the site there
• Potential to make an accidental change to the live site with an
FTP mishap
• If the site is in a subfolder then it doesn’t replicate the live
site. To go live you have to change all of your file paths.
• You are not going to the beach. You are fixing up file paths.
More fun!
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
File paths and URLs are fundamental to the
web. Changing them on going live is messy
and fragile.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Developing remotely is going to be a slow way
to work.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Mac Users - install Apache, PHP and MySQL
on your machine.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
homebrew.sh
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
https://echo.co/blog/os-x-1010-yosemite-local-development-environment-apache-php-and-mysql-homebrew
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
MAMP, XAMPP, WAMP
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Q. How do you develop sites locally that require a
web server?
A. MAMP, WAMP, XAMPP or similar
63%
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Linux
Apache
MySQL
PHP
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Take your pick
• Mamp - https://www.mamp.info/en/
• Wamp - http://sourceforge.net/projects/wampserver/
• Xampp - https://www.apachefriends.org
• EasyPHP - http://www.easyphp.org/
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
VirtualHosts - many websites on one server
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Avoid creating your own local version of
developing in a subfolder. Remember - we
don’t want to change file paths to go live!
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
https://www.mamp.info/en/mamp-pro/
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Access multiple sites at client1.dev, client2.dev
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
In an ideal world your local development
environment is identical to the live server.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
http://php.net/manual/en/function.strftime.php
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
PHP Versions can be different. PHP modules
may not be available on the live server.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Virtual Machines
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
virtualbox.org
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
vagrantup.com
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
https://puphpet.com
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
http://rachelandrew.co.uk/presentations/deploy/puphpet
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Upload a PHP file with
this function to find out
what is available on your
live server.
<?php phpinfo();?>
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Things to check on your live server
• PHP Version
• Installed modules such as gd for image processing
• post_max_size and upload_max_filesize determine the size
of files that can be uploaded
• max_input_vars is the number of form fields allowed in a
post
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Shared Folders
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Basic commands for
Vagrant.
// start the VM
> vagrant up
// shut down the VM
> vagrant halt
//destroy the VM
> vagrant destroy
//ssh access
> vagrant ssh
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
http://vagrantmanager.com/
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Share your package with anyone else working
on the site. The whole team can then have the
exact same development setup.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
We want …
to develop multiple websites on our own computer
to know that our live server and local server support the same
things
to deploy our site and have confidence that what is on the live
server is identical to our local version
to allow clients to view a site in progress
to leave work early and go to the beach.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
http://github.com
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
http://beanstalkapp.com
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
If you already have files
you need to add to a git
repository.
cd my-git-repo
git remote add beanstalk
git@accountname.beanstalkapp.com:/gitreponame.git
git push beanstalk
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
If you are starting a new
project.
git clone https://accountname.git.beanstalkapp.com/
gitreponame.git -o beanstalk
cd gitreponame
echo "This is my new project on Beanstalk." > README
git add README
git commit -m "My first commit."
git push beanstalk master
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
www.git-tower.com
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
www.git-tower.com/learn/ebook
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
A branch is a version of your site. We are
deploying the master branch to live.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Production refers to your live site. Staging a
site where changes are tested and previewed.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
We make a change to our files, commit and
push them to Beanstalk. The Master Branch
now contains only what should be deployed.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Deploy all the things
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Deployment with Beanstalk
• Deployments can be Manual or Automatic
• Automatic deployments happen when code is pushed to the
branch you are deploying
• Manual deployments are triggered by you at Beanstalk once
you are happy to go live
• Once a deploy happens Beanstalk makes sure the code on the
live site matches that in Git, removing deleted files, replacing
modified ones and adding new files
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
On Deploy
• Beanstalk connects to your server
• ensures that the files on the server match the files in the
branch you are deploying
• on initial deploy all existing files on the server have to be
checked. Your first deploy will be slow!
• subsequent deploys only change things that have changed in
git.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Deployment Tips
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Create multiple server configuration files
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
http://solutions.grabaperch.com/development/multiple-server-config
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Use .gitignore to keep things out of Beanstalk
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
https://github.com/github/gitignore
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Our new workflow.
1. Edit files as usual on your computer
2. View your site via a web server on that computer
3. Commit changes to Git
4. Push to Beanstalk
5. Login to Beanstalk and hit Deploy
6. Go to the beach.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Databases and Uploaded Assets
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Add CMS managed asset folders to
a .gitignore file so they are not committed
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Use a CDN for assets if your CMS enables it.
Faster download speeds with bonus ease of
management across environments.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Initial deploy to live also involves an export
and import of the MySQL database.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
How to deal with schema or even data
changes on an existing site?
How do you manage database changes between development and live?
“try to keep live db current, and keep list of
changes in settings on dev environment.
this is the one thing that needs a better
solution in my development workflow, esp.
when working together with other
developers on one project.”
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
How do you manage database changes between development and live?
“Labour intensively. Save a dump of the
live version. Then compare the structure of
the development and live structures in a
diff checker. Finally make the updates
required on the live version, importing the
new data. ”
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Create a Maintenance Window where no
changes are made to live.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
https://deliciousbrains.com/wp-migrate-db-pro/
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
http://www.navicat.com/products/navicat-for-mysql
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
We want …
to develop multiple websites on our own computer
to know that our live server and local server support the same
things
to deploy our site and have confidence that what is on the live
server is identical to our local version
to allow clients to view a site in progress
to leave work early and go to the beach.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
A Staging Server
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Using an inexpensive VPS you can create sites
at clientname.yourcompany.com for preview.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
You can deploy the master branch to staging
to check before deploying to production.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Even better, you can use your staging server
to deploy commits to a staging branch.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Deploy with a tag to any commit or push
comment. For example: [Deploy: Staging]
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Try to keep your Master branch deployable to
live. If disaster strikes you can redeploy.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Remember to backup your database and
any resources regularly!
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Logging in and downloading the assets when
you remember is not a backup strategy.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Bonus feature! We can now easily switch
hosting if our current host becomes unreliable.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Unsolved problems
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
There are product opportunities in helping
people in shared PHP hosting land navigate
these issues.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Pre and post-processed CSS and
JavaScript files.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Backup of CMS-managed resources
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Database migrations
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
We want …
to develop multiple websites on our own computer
to know that our live server and local server support the same
things
to deploy our site and have confidence that what is on the live
server is identical to our local version
to allow clients to view a site in progress
to leave work early and go to the beach.
@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
Thank you!
Slides & resources at:
http://rachelandrew.co.uk/presentations/deploy
@rachelandrew

More Related Content

What's hot

Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsJoe Ferguson
 
How to: Reporting Issues
How to: Reporting IssuesHow to: Reporting Issues
How to: Reporting IssuesJohn Havlik
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Peter Gfader
 
Create and upload your first Perl module to CPAN
Create and upload your first Perl module to CPANCreate and upload your first Perl module to CPAN
Create and upload your first Perl module to CPANbrian d foy
 
HTML5 for dummies
HTML5 for dummiesHTML5 for dummies
HTML5 for dummiesRan Bar-Zik
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1Derek Jacoby
 
You'll Never Look at Developer Support the Same Way Again
You'll Never Look at Developer Support the Same Way AgainYou'll Never Look at Developer Support the Same Way Again
You'll Never Look at Developer Support the Same Way AgainAnne Gentle
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentBrian Moon
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuningJohn McCaffrey
 
ESADE - Plugged-In Management
ESADE - Plugged-In ManagementESADE - Plugged-In Management
ESADE - Plugged-In ManagementTerri Griffith
 
Introduction to-ict
Introduction to-ictIntroduction to-ict
Introduction to-ictKrish
 
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...Taller Negócio Digitais
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
 
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeedContinuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeedAxel Fontaine
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
 

What's hot (20)

ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small Teams
 
How to: Reporting Issues
How to: Reporting IssuesHow to: Reporting Issues
How to: Reporting Issues
 
Paragraphs at drupal 8.
Paragraphs at drupal 8.Paragraphs at drupal 8.
Paragraphs at drupal 8.
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
 
Create and upload your first Perl module to CPAN
Create and upload your first Perl module to CPANCreate and upload your first Perl module to CPAN
Create and upload your first Perl module to CPAN
 
HTML5 for dummies
HTML5 for dummiesHTML5 for dummies
HTML5 for dummies
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1
 
You'll Never Look at Developer Support the Same Way Again
You'll Never Look at Developer Support the Same Way AgainYou'll Never Look at Developer Support the Same Way Again
You'll Never Look at Developer Support the Same Way Again
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Mastering composer
Mastering composerMastering composer
Mastering composer
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
ESADE - Plugged-In Management
ESADE - Plugged-In ManagementESADE - Plugged-In Management
ESADE - Plugged-In Management
 
Introduction to-ict
Introduction to-ictIntroduction to-ict
Introduction to-ict
 
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy Person
 
Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017
 
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeedContinuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy Person
 

Viewers also liked

ConFoo 2016: Development to Deployment
ConFoo 2016: Development to DeploymentConFoo 2016: Development to Deployment
ConFoo 2016: Development to DeploymentRachel Andrew
 
How Customers Hold the Secret to Your Success
How Customers Hold the Secret to Your SuccessHow Customers Hold the Secret to Your Success
How Customers Hold the Secret to Your SuccessRachel Andrew
 
Making time for your project
Making time for your projectMaking time for your project
Making time for your projectRachel Andrew
 
Configuration Management with Puppet
Configuration Management with Puppet Configuration Management with Puppet
Configuration Management with Puppet Rachel Andrew
 
Perch CMS Summit: Perch Template Tips and Tricks
Perch CMS Summit: Perch Template Tips and TricksPerch CMS Summit: Perch Template Tips and Tricks
Perch CMS Summit: Perch Template Tips and TricksRachel Andrew
 
CSS Conf Budapest - New CSS Layout
CSS Conf Budapest - New CSS LayoutCSS Conf Budapest - New CSS Layout
CSS Conf Budapest - New CSS LayoutRachel Andrew
 
What The F#%! is Snapchat?
What The F#%! is Snapchat?What The F#%! is Snapchat?
What The F#%! is Snapchat?Luis Ruiz
 
Designing Grid Systems @media2010
Designing Grid Systems @media2010Designing Grid Systems @media2010
Designing Grid Systems @media2010markboultondesign
 
An Event Apart Nashville: CSS Grid Layout
An Event Apart Nashville: CSS Grid LayoutAn Event Apart Nashville: CSS Grid Layout
An Event Apart Nashville: CSS Grid LayoutRachel Andrew
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid LayoutRachel Andrew
 
All of a sudden ... no luck
All of a sudden ... no luckAll of a sudden ... no luck
All of a sudden ... no luckRachel Andrew
 
Future Layout & Performance
Future Layout & PerformanceFuture Layout & Performance
Future Layout & PerformanceRachel Andrew
 
How Customers Hold the Secret to your Success
How Customers Hold the Secret to your SuccessHow Customers Hold the Secret to your Success
How Customers Hold the Secret to your SuccessRachel Andrew
 
But what about old browsers?
But what about old browsers?But what about old browsers?
But what about old browsers?Rachel Andrew
 
Design for Conversation
Design for ConversationDesign for Conversation
Design for ConversationTanya Rabourn
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid LayoutRachel Andrew
 
CSS Grid Layout - An Event Apart Orlando
CSS Grid Layout - An Event Apart OrlandoCSS Grid Layout - An Event Apart Orlando
CSS Grid Layout - An Event Apart OrlandoRachel Andrew
 
An Event Apart SF: CSS Grid Layout
An Event Apart SF: CSS Grid LayoutAn Event Apart SF: CSS Grid Layout
An Event Apart SF: CSS Grid LayoutRachel Andrew
 

Viewers also liked (20)

ConFoo 2016: Development to Deployment
ConFoo 2016: Development to DeploymentConFoo 2016: Development to Deployment
ConFoo 2016: Development to Deployment
 
How Customers Hold the Secret to Your Success
How Customers Hold the Secret to Your SuccessHow Customers Hold the Secret to Your Success
How Customers Hold the Secret to Your Success
 
Making time for your project
Making time for your projectMaking time for your project
Making time for your project
 
R
RR
R
 
Configuration Management with Puppet
Configuration Management with Puppet Configuration Management with Puppet
Configuration Management with Puppet
 
Perch CMS Summit: Perch Template Tips and Tricks
Perch CMS Summit: Perch Template Tips and TricksPerch CMS Summit: Perch Template Tips and Tricks
Perch CMS Summit: Perch Template Tips and Tricks
 
CSS Conf Budapest - New CSS Layout
CSS Conf Budapest - New CSS LayoutCSS Conf Budapest - New CSS Layout
CSS Conf Budapest - New CSS Layout
 
What The F#%! is Snapchat?
What The F#%! is Snapchat?What The F#%! is Snapchat?
What The F#%! is Snapchat?
 
Designing Grid Systems @media2010
Designing Grid Systems @media2010Designing Grid Systems @media2010
Designing Grid Systems @media2010
 
An Event Apart Nashville: CSS Grid Layout
An Event Apart Nashville: CSS Grid LayoutAn Event Apart Nashville: CSS Grid Layout
An Event Apart Nashville: CSS Grid Layout
 
Conference Speakers
Conference SpeakersConference Speakers
Conference Speakers
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
 
All of a sudden ... no luck
All of a sudden ... no luckAll of a sudden ... no luck
All of a sudden ... no luck
 
Future Layout & Performance
Future Layout & PerformanceFuture Layout & Performance
Future Layout & Performance
 
How Customers Hold the Secret to your Success
How Customers Hold the Secret to your SuccessHow Customers Hold the Secret to your Success
How Customers Hold the Secret to your Success
 
But what about old browsers?
But what about old browsers?But what about old browsers?
But what about old browsers?
 
Design for Conversation
Design for ConversationDesign for Conversation
Design for Conversation
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
 
CSS Grid Layout - An Event Apart Orlando
CSS Grid Layout - An Event Apart OrlandoCSS Grid Layout - An Event Apart Orlando
CSS Grid Layout - An Event Apart Orlando
 
An Event Apart SF: CSS Grid Layout
An Event Apart SF: CSS Grid LayoutAn Event Apart SF: CSS Grid Layout
An Event Apart SF: CSS Grid Layout
 

Similar to Professional Workflow from Development to Deployment

WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersStewart Ritchie
 
Vagrant for local and team WordPress Development
Vagrant for local and team WordPress DevelopmentVagrant for local and team WordPress Development
Vagrant for local and team WordPress DevelopmentAnthony Alvarez
 
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony AlvarezDevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony AlvarezAnthony Alvarez
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionJoe Ferguson
 
BADCamp 2008 Core Crazy
BADCamp 2008 Core CrazyBADCamp 2008 Core Crazy
BADCamp 2008 Core CrazyShaun Haber
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsPablo Godel
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsJoe Ferguson
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
Active Web Development
Active Web DevelopmentActive Web Development
Active Web DevelopmentDivya Manian
 
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
 
Building a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared ToBuilding a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared ToRaymond Camden
 
Contributing to WordPress core - a primer
Contributing to WordPress core - a primerContributing to WordPress core - a primer
Contributing to WordPress core - a primerlessbloat
 
Owning word press all you need to know as a wordpress developer by lutaaya ...
Owning word press   all you need to know as a wordpress developer by lutaaya ...Owning word press   all you need to know as a wordpress developer by lutaaya ...
Owning word press all you need to know as a wordpress developer by lutaaya ...Lutaaya Shafiq
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails FinalRobert Postill
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionJoe Ferguson
 
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd ErkOpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd ErkOpenNebula Project
 
HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011Alessandro Nadalin
 

Similar to Professional Workflow from Development to Deployment (20)

WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for Beginners
 
Vagrant for local and team WordPress Development
Vagrant for local and team WordPress DevelopmentVagrant for local and team WordPress Development
Vagrant for local and team WordPress Development
 
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony AlvarezDevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello Production
 
BADCamp 2008 Core Crazy
BADCamp 2008 Core CrazyBADCamp 2008 Core Crazy
BADCamp 2008 Core Crazy
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web Applications
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
 
Active Web Development
Active Web DevelopmentActive Web Development
Active Web Development
 
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
 
Building a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared ToBuilding a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared To
 
Contributing to WordPress core - a primer
Contributing to WordPress core - a primerContributing to WordPress core - a primer
Contributing to WordPress core - a primer
 
PhoneGap/Cordova
PhoneGap/CordovaPhoneGap/Cordova
PhoneGap/Cordova
 
Owning word press all you need to know as a wordpress developer by lutaaya ...
Owning word press   all you need to know as a wordpress developer by lutaaya ...Owning word press   all you need to know as a wordpress developer by lutaaya ...
Owning word press all you need to know as a wordpress developer by lutaaya ...
 
Vagrant
VagrantVagrant
Vagrant
 
Into the Box 2018 Building a PWA
Into the Box 2018 Building a PWA Into the Box 2018 Building a PWA
Into the Box 2018 Building a PWA
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello Production
 
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd ErkOpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
 
HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011
 

More from Rachel Andrew

All Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid LayoutAll Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid LayoutRachel Andrew
 
SmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid LayoutSmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid LayoutRachel Andrew
 
Unlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid LayoutUnlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid LayoutRachel Andrew
 
The Creative New World of CSS
The Creative New World of CSSThe Creative New World of CSS
The Creative New World of CSSRachel Andrew
 
Into the Weeds of CSS Layout
Into the Weeds of CSS LayoutInto the Weeds of CSS Layout
Into the Weeds of CSS LayoutRachel Andrew
 
Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Rachel Andrew
 
View Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsView Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsRachel Andrew
 
DevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout todayDevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout todayRachel Andrew
 
Start Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJSStart Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJSRachel Andrew
 
404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & FriendsRachel Andrew
 
Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17Rachel Andrew
 
Laying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf FreiburgLaying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf FreiburgRachel Andrew
 
Solving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJSSolving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJSRachel Andrew
 
Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Rachel Andrew
 
Web Summer Camp Keynote
Web Summer Camp KeynoteWeb Summer Camp Keynote
Web Summer Camp KeynoteRachel Andrew
 
New CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldNew CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldRachel Andrew
 
An Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real WorldAn Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real WorldRachel Andrew
 
Perch, Patterns and Old Browsers
Perch, Patterns and Old BrowsersPerch, Patterns and Old Browsers
Perch, Patterns and Old BrowsersRachel Andrew
 
Evergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsersEvergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsersRachel Andrew
 

More from Rachel Andrew (20)

All Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid LayoutAll Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid Layout
 
SmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid LayoutSmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid Layout
 
Unlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid LayoutUnlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid Layout
 
The Creative New World of CSS
The Creative New World of CSSThe Creative New World of CSS
The Creative New World of CSS
 
Into the Weeds of CSS Layout
Into the Weeds of CSS LayoutInto the Weeds of CSS Layout
Into the Weeds of CSS Layout
 
Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17
 
Graduating to Grid
Graduating to GridGraduating to Grid
Graduating to Grid
 
View Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsView Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & Friends
 
DevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout todayDevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout today
 
Start Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJSStart Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJS
 
404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends
 
Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17
 
Laying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf FreiburgLaying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf Freiburg
 
Solving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJSSolving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJS
 
Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout
 
Web Summer Camp Keynote
Web Summer Camp KeynoteWeb Summer Camp Keynote
Web Summer Camp Keynote
 
New CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldNew CSS Layout Meets the Real World
New CSS Layout Meets the Real World
 
An Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real WorldAn Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real World
 
Perch, Patterns and Old Browsers
Perch, Patterns and Old BrowsersPerch, Patterns and Old Browsers
Perch, Patterns and Old Browsers
 
Evergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsersEvergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsers
 

Recently uploaded

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 

Recently uploaded (20)

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 

Professional Workflow from Development to Deployment

  • 1. Professional Workflow From Development To Deployment Rachel Andrew, Smashing Conf LA 2015
  • 2. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Rachel Andrew http://rachelandrew.co.uk @rachelandrew http://grabaperch.com
  • 3. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Many issues coming into support stem from poor development and deployment processes.
  • 4. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy The Big Problems • Developing directly on live sites or in subfolders of live sites • Developing in subfolders locally • Setting up local development environments that are so different to the eventual live server that there is no confidence when going live • Deploying via FTP piecemeal and having sites blow up due to missing files
  • 5. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy What’s the problem with (S)FTP? • You are transferring files one by one to the server with no management of that transfer • One failed transfer can break the site • Old files may be left on the server - this could be a security risk in the case of third party software • Very hard to debug issues caused by missing files especially where they are deep in third party code
  • 6. Forrest Gump “you’ve got to put the past behind you before you can move on.” @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 7. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Improving workflow is the best way to give yourself more hours in the day.
  • 8. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy These are baby steps to improved workflow.
  • 9. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy We need … • to develop multiple websites on our own computer. • to know that our live server and local server support the same things. • to deploy our site and have confidence that what is on the live server is identical to our local version. • to allow clients to view a site in progress during initial development and also when making changes in future.
  • 10. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 11. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Working locally
  • 12. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Developing live on the server! • High chance of making a change that breaks something about the site. • No way for the client to preview changes • Local version in sync? Do we even have a local version? • If you get to the beach, you’ll be fixing a website. On your phone. Have fun with that.
  • 13. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Q. How do you deploy your sites to the server? A. We just edit on the server directly. 8%
  • 14. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Let’s develop in a subfolder! • Create a ‘newsite’ subfolder and develop the site there • Potential to make an accidental change to the live site with an FTP mishap • If the site is in a subfolder then it doesn’t replicate the live site. To go live you have to change all of your file paths. • You are not going to the beach. You are fixing up file paths. More fun!
  • 15. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy File paths and URLs are fundamental to the web. Changing them on going live is messy and fragile.
  • 16. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Developing remotely is going to be a slow way to work.
  • 17. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Mac Users - install Apache, PHP and MySQL on your machine.
  • 18. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy homebrew.sh @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 19. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy https://echo.co/blog/os-x-1010-yosemite-local-development-environment-apache-php-and-mysql-homebrew @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 20. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy MAMP, XAMPP, WAMP
  • 21. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Q. How do you develop sites locally that require a web server? A. MAMP, WAMP, XAMPP or similar 63%
  • 22. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Linux Apache MySQL PHP
  • 23. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Take your pick • Mamp - https://www.mamp.info/en/ • Wamp - http://sourceforge.net/projects/wampserver/ • Xampp - https://www.apachefriends.org • EasyPHP - http://www.easyphp.org/
  • 24. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy VirtualHosts - many websites on one server
  • 25. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Avoid creating your own local version of developing in a subfolder. Remember - we don’t want to change file paths to go live!
  • 26. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy https://www.mamp.info/en/mamp-pro/ @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 27. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Access multiple sites at client1.dev, client2.dev
  • 28. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy In an ideal world your local development environment is identical to the live server.
  • 29. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy http://php.net/manual/en/function.strftime.php @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 30. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy PHP Versions can be different. PHP modules may not be available on the live server.
  • 31. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Virtual Machines
  • 32. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy virtualbox.org @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 33. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy vagrantup.com @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 34. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy https://puphpet.com @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 35. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 36. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy http://rachelandrew.co.uk/presentations/deploy/puphpet
  • 37. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Upload a PHP file with this function to find out what is available on your live server. <?php phpinfo();?>
  • 38. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Things to check on your live server • PHP Version • Installed modules such as gd for image processing • post_max_size and upload_max_filesize determine the size of files that can be uploaded • max_input_vars is the number of form fields allowed in a post
  • 39. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Shared Folders
  • 40. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 41. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 42. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 43. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 44. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Basic commands for Vagrant. // start the VM > vagrant up // shut down the VM > vagrant halt //destroy the VM > vagrant destroy //ssh access > vagrant ssh
  • 45. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy http://vagrantmanager.com/
  • 46. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Share your package with anyone else working on the site. The whole team can then have the exact same development setup.
  • 47. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy We want … to develop multiple websites on our own computer to know that our live server and local server support the same things to deploy our site and have confidence that what is on the live server is identical to our local version to allow clients to view a site in progress to leave work early and go to the beach.
  • 48. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 49. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy http://github.com @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 50. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy http://beanstalkapp.com
  • 51. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy If you already have files you need to add to a git repository. cd my-git-repo git remote add beanstalk git@accountname.beanstalkapp.com:/gitreponame.git git push beanstalk
  • 52. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy If you are starting a new project. git clone https://accountname.git.beanstalkapp.com/ gitreponame.git -o beanstalk cd gitreponame echo "This is my new project on Beanstalk." > README git add README git commit -m "My first commit." git push beanstalk master
  • 53. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy www.git-tower.com
  • 54. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy www.git-tower.com/learn/ebook
  • 55. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy A branch is a version of your site. We are deploying the master branch to live.
  • 56. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Production refers to your live site. Staging a site where changes are tested and previewed.
  • 57. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy We make a change to our files, commit and push them to Beanstalk. The Master Branch now contains only what should be deployed.
  • 58. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Deploy all the things
  • 59. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Deployment with Beanstalk • Deployments can be Manual or Automatic • Automatic deployments happen when code is pushed to the branch you are deploying • Manual deployments are triggered by you at Beanstalk once you are happy to go live • Once a deploy happens Beanstalk makes sure the code on the live site matches that in Git, removing deleted files, replacing modified ones and adding new files
  • 60. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 61. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 62. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy On Deploy • Beanstalk connects to your server • ensures that the files on the server match the files in the branch you are deploying • on initial deploy all existing files on the server have to be checked. Your first deploy will be slow! • subsequent deploys only change things that have changed in git.
  • 63. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Deployment Tips
  • 64. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Create multiple server configuration files
  • 65. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy http://solutions.grabaperch.com/development/multiple-server-config
  • 66. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Use .gitignore to keep things out of Beanstalk
  • 67. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy https://github.com/github/gitignore
  • 68. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 69. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 70. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Our new workflow. 1. Edit files as usual on your computer 2. View your site via a web server on that computer 3. Commit changes to Git 4. Push to Beanstalk 5. Login to Beanstalk and hit Deploy 6. Go to the beach.
  • 71. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Databases and Uploaded Assets
  • 72. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Add CMS managed asset folders to a .gitignore file so they are not committed
  • 73. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Use a CDN for assets if your CMS enables it. Faster download speeds with bonus ease of management across environments.
  • 74. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Initial deploy to live also involves an export and import of the MySQL database.
  • 75. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy How to deal with schema or even data changes on an existing site?
  • 76. How do you manage database changes between development and live? “try to keep live db current, and keep list of changes in settings on dev environment. this is the one thing that needs a better solution in my development workflow, esp. when working together with other developers on one project.” @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 77. How do you manage database changes between development and live? “Labour intensively. Save a dump of the live version. Then compare the structure of the development and live structures in a diff checker. Finally make the updates required on the live version, importing the new data. ” @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy
  • 78. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Create a Maintenance Window where no changes are made to live.
  • 79. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy https://deliciousbrains.com/wp-migrate-db-pro/
  • 80. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy http://www.navicat.com/products/navicat-for-mysql
  • 81. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy We want … to develop multiple websites on our own computer to know that our live server and local server support the same things to deploy our site and have confidence that what is on the live server is identical to our local version to allow clients to view a site in progress to leave work early and go to the beach.
  • 82. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy A Staging Server
  • 83. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Using an inexpensive VPS you can create sites at clientname.yourcompany.com for preview.
  • 84. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy You can deploy the master branch to staging to check before deploying to production.
  • 85. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Even better, you can use your staging server to deploy commits to a staging branch.
  • 86. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Deploy with a tag to any commit or push comment. For example: [Deploy: Staging]
  • 87. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Try to keep your Master branch deployable to live. If disaster strikes you can redeploy.
  • 88. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Remember to backup your database and any resources regularly!
  • 89. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Logging in and downloading the assets when you remember is not a backup strategy.
  • 90. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Bonus feature! We can now easily switch hosting if our current host becomes unreliable.
  • 91. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Unsolved problems
  • 92. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy There are product opportunities in helping people in shared PHP hosting land navigate these issues.
  • 93. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Pre and post-processed CSS and JavaScript files.
  • 94. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Backup of CMS-managed resources
  • 95. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Database migrations
  • 96. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy We want … to develop multiple websites on our own computer to know that our live server and local server support the same things to deploy our site and have confidence that what is on the live server is identical to our local version to allow clients to view a site in progress to leave work early and go to the beach.
  • 97. @rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy@rachelandrew | Read more at http://rachelandrew.co.uk/presentations/deploy Thank you! Slides & resources at: http://rachelandrew.co.uk/presentations/deploy @rachelandrew