SlideShare a Scribd company logo
MAKING LOCAL DEVELOPMENT
NOT SUCK!
Tim Bracken
Software Engineer
Penn State
CURRENT SOLUTIONS
• Lamp/Mamp/Wamp
• Vagrant
• Digital Ocean & other cloud providers
• Valet
LAMP/MAMP/WAMP
Package of software to setup a local development environment on your
computer.
Consists of:
• The OS(Linux,Mac,Windows)
• Apache
• PHP
• MySQL
WHAT ABOUT ALL MY OTHER
STACKS?
PROS
• Easy to setup
• Code is on your local machine
• Not even close to production
environment
• Easy to mess up your development
machine
• Messing with hosts file
• Have to edit apache vhosts (MAMP
Specifically for multiple sites
CONS
WHY DOES IT SUCK?
LAMP/MAMP/WAMP
VAGRANT
“lightweight, reproducible, and portable development environments.”
-vagrantup.com
Runs on virtual box or can be deployed to THE CLUOD!
Can get your entire stack setup and configured out of the box
Store code locally and have it sync tovagrant box
THIS SOUNDS AMAZING!
VAGRANT
Unfortunately it doesn’t always work 
• Errors because something isn’t configured properly in your script
• Errors because something isn’t configured properly in someone else’s
script
• Issues with the yum or apt because the versions they are expecting are
different.
• Problems sharing configs between Windows and Mac
• WTF why are you not syncing my code!!!
PROS
• Easy to setup
• Share the same environment with
multiple people
• Mimic production
• Don’t have to worry about your
stack(if done properly)
• If you mess it up, just “vagrant
provision” and you’re back to the
original setup
• Hard to setup
• Need to have some sysadmin skills
• Sharing between Windows and Mac is
not always perfect
• Still need to edit /etc/hosts file
CONS
WHY DOES IT SUCK?
VAGRANT
DIGITAL OCEAN/AWS/GOOGLE
Cloud hosting providers for dev servers are GREAT!
-someone other than me
Exactly like production
WE’VE BEEN HERE BEFORE, WHAT’S
THE CATCH?
DIGITAL OCEAN/AWS/GOOGLE
Need a sysadmin
Need to FTP code to server
PROS
• Easy to have exact copies of
production
• Share the same environment with
multiple people
• Don’t have to worry about your
stack(if done properly)
• Hard to setup
• Need to have LOTS of sysadmin skills
• Open to the internet
• Getting code to the server
• Costs $$
CONS
WHY DOES IT SUCK?
DIGITAL OCEAN/AWS/GOOGLE
LARAVEL VALET
“Laravel Valet is the next generation development environment for Mac
minimalists. No Vagrant, No Apache, No Nginx, No /etc/hosts file..”
-Laravel News
Not limited to laravel
Sorry Windows users
LARAVEL VALET
Opinionated, but flexible.
Can share a link to your local dev server with other users
AWESOME with logs
LARAVEL VALET
PROS
• No need for crazy setup process
• Automatically handles your /etc/hosts
and apache vhosts files
• Files stored locally
• No windows support out of the box
• No ability to change between php
versions
• Must manually install database
• May need to find a driver for your
framework
CONS
WHY DOES IT SUCK?
LARAVEL VALET
SO WHICH ONE SHOULD I USE?
USEFUL LINKS
• https://www.puphpet.com/
• https://www.vagrantup.com/
• https://www.virtualbox.org/wiki/Downloads
• https://github.com/laravel/valet
• https://medium.com/@CretuEusebiu/running-laravel-valet-on-windows-
77910475b8f5#.ry3zly60k

More Related Content

What's hot

Network Automation - Interconnection tools
Network Automation - Interconnection toolsNetwork Automation - Interconnection tools
Network Automation - Interconnection tools
Andy Davidson
 
Local Development Environments
Local Development EnvironmentsLocal Development Environments
Local Development Environments
Joe Casabona
 
Install Drupal on Wamp Server
Install Drupal on Wamp ServerInstall Drupal on Wamp Server
Install Drupal on Wamp Server
Vineet Kumar Saini
 
Deployments... from dreaded to delightful.
Deployments... from dreaded to delightful.Deployments... from dreaded to delightful.
Deployments... from dreaded to delightful.
Ryan King
 
Chef meetup presentation
Chef meetup presentationChef meetup presentation
Chef meetup presentation
Charles Johnson
 
Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015
Ricard Clau
 
iPhone & Java Web Services
iPhone & Java Web ServicesiPhone & Java Web Services
iPhone & Java Web Services
Matthew McCullough
 
Cloud Orchestration is Broken
Cloud Orchestration is BrokenCloud Orchestration is Broken
Cloud Orchestration is Broken
Public Broadcasting Service
 
WordPress Development Environments
WordPress Development EnvironmentsWordPress Development Environments
WordPress Development Environments
Josh Cummings
 
Moving from MAMP to Vagrant
Moving from MAMP to VagrantMoving from MAMP to Vagrant
Moving from MAMP to Vagrant
Jeremy Pry
 
Ansible + WordPress
Ansible + WordPressAnsible + WordPress
Ansible + WordPress
Alan Lok
 
The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012Jan Jongboom
 
Ansible: What, Why & How
Ansible: What, Why & HowAnsible: What, Why & How
Ansible: What, Why & How
Alfonso Cabrera
 
Flask and Paramiko for Python VA
Flask and Paramiko for Python VAFlask and Paramiko for Python VA
Flask and Paramiko for Python VA
Enrique Valenzuela
 
Scaling and Distributing
Scaling and DistributingScaling and Distributing
Scaling and Distributing
Dima Malenko
 
B wapp – bee bug – installation
B wapp – bee bug – installationB wapp – bee bug – installation
B wapp – bee bug – installation
Ronan Dunne, CEH, SSCP
 
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Dakiry
 
haXe - One codebase to rule'em all
haXe - One codebase to rule'em allhaXe - One codebase to rule'em all
haXe - One codebase to rule'em allTom Crombez
 
Immutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and TerraformImmutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and Terraform
Michael Peacock
 
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
DevConFu
 

What's hot (20)

Network Automation - Interconnection tools
Network Automation - Interconnection toolsNetwork Automation - Interconnection tools
Network Automation - Interconnection tools
 
Local Development Environments
Local Development EnvironmentsLocal Development Environments
Local Development Environments
 
Install Drupal on Wamp Server
Install Drupal on Wamp ServerInstall Drupal on Wamp Server
Install Drupal on Wamp Server
 
Deployments... from dreaded to delightful.
Deployments... from dreaded to delightful.Deployments... from dreaded to delightful.
Deployments... from dreaded to delightful.
 
Chef meetup presentation
Chef meetup presentationChef meetup presentation
Chef meetup presentation
 
Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015
 
iPhone & Java Web Services
iPhone & Java Web ServicesiPhone & Java Web Services
iPhone & Java Web Services
 
Cloud Orchestration is Broken
Cloud Orchestration is BrokenCloud Orchestration is Broken
Cloud Orchestration is Broken
 
WordPress Development Environments
WordPress Development EnvironmentsWordPress Development Environments
WordPress Development Environments
 
Moving from MAMP to Vagrant
Moving from MAMP to VagrantMoving from MAMP to Vagrant
Moving from MAMP to Vagrant
 
Ansible + WordPress
Ansible + WordPressAnsible + WordPress
Ansible + WordPress
 
The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012
 
Ansible: What, Why & How
Ansible: What, Why & HowAnsible: What, Why & How
Ansible: What, Why & How
 
Flask and Paramiko for Python VA
Flask and Paramiko for Python VAFlask and Paramiko for Python VA
Flask and Paramiko for Python VA
 
Scaling and Distributing
Scaling and DistributingScaling and Distributing
Scaling and Distributing
 
B wapp – bee bug – installation
B wapp – bee bug – installationB wapp – bee bug – installation
B wapp – bee bug – installation
 
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
Єгор Попович, CTO @Tesseract, (Lviv, Ukraine) "Blockchain user: myth or reali...
 
haXe - One codebase to rule'em all
haXe - One codebase to rule'em allhaXe - One codebase to rule'em all
haXe - One codebase to rule'em all
 
Immutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and TerraformImmutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and Terraform
 
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
 

Similar to Making development environments not suck | #econfpsu #econfpsu16

Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrant
Makis Asimidis
 
Powering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with VagrantPowering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with VagrantCoen Jacobs
 
Setting up a local WordPress Environment
Setting up a local WordPress EnvironmentSetting up a local WordPress Environment
Setting up a local WordPress Environment
Chris La Nauze
 
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
Joe Ferguson
 
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and AnsibleLocal Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Jeff Geerling
 
Developing web apps
Developing web appsDeveloping web apps
Developing web apps
Michael Dyrynda
 
Building with Virtual Development Environments
Building with Virtual Development EnvironmentsBuilding with Virtual Development Environments
Building with Virtual Development Environments
Oscar Merida
 
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the Cloudphp[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
Joe Ferguson
 
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
Anthony Alvarez
 
The JavaScript Delusion
The JavaScript DelusionThe JavaScript Delusion
The JavaScript Delusion
JUGBD
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrantandygale
 
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
Joe Ferguson
 
Using MAMP for Web Development
Using MAMP for Web DevelopmentUsing MAMP for Web Development
Using MAMP for Web Development
Eric Greene
 
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
Joe Ferguson
 
Local development with vvv jon trujillo
Local development with vvv   jon trujilloLocal development with vvv   jon trujillo
Local development with vvv jon trujillo
Jonathan Trujillo
 
Building with Virtual Development Environments
Building with Virtual Development EnvironmentsBuilding with Virtual Development Environments
Building with Virtual Development Environments
Oscar Merida
 
StackiFest 16: Stacki Overview- Anoop Rajendra
StackiFest 16: Stacki Overview- Anoop Rajendra StackiFest 16: Stacki Overview- Anoop Rajendra
StackiFest 16: Stacki Overview- Anoop Rajendra
StackIQ
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
Arnaud LEMAIRE
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrant
andygale
 
Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)
Alec Reynolds
 

Similar to Making development environments not suck | #econfpsu #econfpsu16 (20)

Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrant
 
Powering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with VagrantPowering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with Vagrant
 
Setting up a local WordPress Environment
Setting up a local WordPress EnvironmentSetting up a local WordPress Environment
Setting up a local WordPress Environment
 
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
 
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and AnsibleLocal Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
 
Developing web apps
Developing web appsDeveloping web apps
Developing web apps
 
Building with Virtual Development Environments
Building with Virtual Development EnvironmentsBuilding with Virtual Development Environments
Building with Virtual Development Environments
 
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the Cloudphp[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
 
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
 
The JavaScript Delusion
The JavaScript DelusionThe JavaScript Delusion
The JavaScript Delusion
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrant
 
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
 
Using MAMP for Web Development
Using MAMP for Web DevelopmentUsing MAMP for Web Development
Using MAMP for Web Development
 
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
 
Local development with vvv jon trujillo
Local development with vvv   jon trujilloLocal development with vvv   jon trujillo
Local development with vvv jon trujillo
 
Building with Virtual Development Environments
Building with Virtual Development EnvironmentsBuilding with Virtual Development Environments
Building with Virtual Development Environments
 
StackiFest 16: Stacki Overview- Anoop Rajendra
StackiFest 16: Stacki Overview- Anoop Rajendra StackiFest 16: Stacki Overview- Anoop Rajendra
StackiFest 16: Stacki Overview- Anoop Rajendra
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrant
 
Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 

Making development environments not suck | #econfpsu #econfpsu16

  • 1. MAKING LOCAL DEVELOPMENT NOT SUCK! Tim Bracken Software Engineer Penn State
  • 2. CURRENT SOLUTIONS • Lamp/Mamp/Wamp • Vagrant • Digital Ocean & other cloud providers • Valet
  • 3. LAMP/MAMP/WAMP Package of software to setup a local development environment on your computer. Consists of: • The OS(Linux,Mac,Windows) • Apache • PHP • MySQL
  • 4. WHAT ABOUT ALL MY OTHER STACKS?
  • 5. PROS • Easy to setup • Code is on your local machine • Not even close to production environment • Easy to mess up your development machine • Messing with hosts file • Have to edit apache vhosts (MAMP Specifically for multiple sites CONS WHY DOES IT SUCK? LAMP/MAMP/WAMP
  • 6. VAGRANT “lightweight, reproducible, and portable development environments.” -vagrantup.com Runs on virtual box or can be deployed to THE CLUOD! Can get your entire stack setup and configured out of the box Store code locally and have it sync tovagrant box
  • 8. VAGRANT Unfortunately it doesn’t always work  • Errors because something isn’t configured properly in your script • Errors because something isn’t configured properly in someone else’s script • Issues with the yum or apt because the versions they are expecting are different. • Problems sharing configs between Windows and Mac • WTF why are you not syncing my code!!!
  • 9. PROS • Easy to setup • Share the same environment with multiple people • Mimic production • Don’t have to worry about your stack(if done properly) • If you mess it up, just “vagrant provision” and you’re back to the original setup • Hard to setup • Need to have some sysadmin skills • Sharing between Windows and Mac is not always perfect • Still need to edit /etc/hosts file CONS WHY DOES IT SUCK? VAGRANT
  • 10. DIGITAL OCEAN/AWS/GOOGLE Cloud hosting providers for dev servers are GREAT! -someone other than me Exactly like production
  • 11. WE’VE BEEN HERE BEFORE, WHAT’S THE CATCH?
  • 12. DIGITAL OCEAN/AWS/GOOGLE Need a sysadmin Need to FTP code to server
  • 13. PROS • Easy to have exact copies of production • Share the same environment with multiple people • Don’t have to worry about your stack(if done properly) • Hard to setup • Need to have LOTS of sysadmin skills • Open to the internet • Getting code to the server • Costs $$ CONS WHY DOES IT SUCK? DIGITAL OCEAN/AWS/GOOGLE
  • 14. LARAVEL VALET “Laravel Valet is the next generation development environment for Mac minimalists. No Vagrant, No Apache, No Nginx, No /etc/hosts file..” -Laravel News Not limited to laravel Sorry Windows users
  • 15. LARAVEL VALET Opinionated, but flexible. Can share a link to your local dev server with other users AWESOME with logs
  • 17. PROS • No need for crazy setup process • Automatically handles your /etc/hosts and apache vhosts files • Files stored locally • No windows support out of the box • No ability to change between php versions • Must manually install database • May need to find a driver for your framework CONS WHY DOES IT SUCK? LARAVEL VALET
  • 18. SO WHICH ONE SHOULD I USE?
  • 19. USEFUL LINKS • https://www.puphpet.com/ • https://www.vagrantup.com/ • https://www.virtualbox.org/wiki/Downloads • https://github.com/laravel/valet • https://medium.com/@CretuEusebiu/running-laravel-valet-on-windows- 77910475b8f5#.ry3zly60k

Editor's Notes

  1. Lean, Mean, and other hipster acronyms -Essentially the same, just different components -Depending on your local machine, these can be easy to setup or quite difficult.
  2. If you have to make changes to the default setup, this really sucks. Using NGINXcan be a pain to get setup. -Can screw up your local machine easily by using sudo inappropriately or deleting stuff you may need -Editing apache vhosts is almost impossible -
  3. What does this mean? -Prepackaged and configured virtual machine definition that you can share withother developers so that you can share the same development configuration. www.Puphpet.com
  4. Many WTF momments!
  5. Or other cloud service providers If you use a cloud provider for production, you can create a snapshot that is an exact replica of your production server Even better if you use something like ansible to do all server management.
  6. You either have to be a sysadmin or have one on retainer to get this to work well. Yes you can get digital ocean to work, but to scale from dev to production, it takes some work
  7. Basically the same pros/cons of vagrant
  8. Essentially MAMP on steroids https://laravel-news.com/2016/05/announcing-laravel-valet/ Not limited to laravel Can use ”drivers” to run different php frameworks. Comes with Laravel Drupal diver: https://github.com/laravel/valet/pull/48 There is a windows fork
  9. Assumes ~/Sites All directories are given*.dev url’s You can use valet park to set your working directory. Link individual sites with valet link Share sites over a public url using valet share Stream logs to your terminal using valet logs
  10. No reason this is here other than every other solution has one.
  11. Many WTF momments!
  12. I suggest you don’t use mamp/wamp Questions you need to ask -How large is your team -How many different projects do you work on at once -How much money are you willing to spend