SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
DEVELOPING WEB APPS
DY'S SPRINKLES
LOCAL DEVELOPMENT
LOCAL DEVELOPMENT
BUILT-IN PHP SERVER
▸ Out of the box support in PHP >= 5.4.0
▸ Designed specifically for local development
▸ Useful for testing and demos in controlled environments
▸ Never run this in production
▸ The easiest way to start modern PHP development
LOCAL DEVELOPMENT
BUILT-IN PHP SERVER
LOCAL DEVELOPMENT
BUILT-IN PHP SERVER
▸ Out of the box support in PHP >= 5.4.0
▸ Designed specifically for local development
▸ Useful for testing and demos in controlled environments
▸ Never run this in production
▸ The easiest way to start modern PHP development
▸ More info - Google “php built in server”
LOCAL DEVELOPMENT
LARAVEL VALET
▸ Mac only
▸ Very easy to get up and running (with Composer)
LOCAL DEVELOPMENT
▸ Composer is a tool for dependency management in PHP. It
allows you to declare the libraries your project depends on
and it will manage (install/update) them for you.
▸ Not a package manager. It manages dependencies on a per-
project basis, installing them in a vendor directory within
your project.
LOCAL DEVELOPMENT
LARAVEL VALET
$ composer global require laravel/valet
$ valet install
LOCAL DEVELOPMENT
LARAVEL VALET
▸ Mac only
▸ Very easy to get up and running (with Composer)
▸ Caddy server
▸ dnsmasq
LOCAL DEVELOPMENT
LARAVEL VALET - FOLDER TO DOMAIN MAPPING
LOCAL DEVELOPMENT
LARAVEL VALET - FOLDER TO DOMAIN MAPPING
/Users/michael/phpsa/Sites
$ ls
bedrock dyrynda-com-au phpsa
confomo laravel
LOCAL DEVELOPMENT
LARAVEL VALET - FOLDER TO DOMAIN MAPPING
phpsa => http: //phpsa.test
LOCAL DEVELOPMENT
LARAVEL VALET
▸ Mac only
▸ Very easy to get up and running (with Composer)
▸ Caddy server
▸ dnsmasq (valet domain, valet park)
▸ MariaDB
LOCAL DEVELOPMENT
LARAVEL VALET
$ brew install mariadb
LOCAL DEVELOPMENT
LARAVEL VALET
▸ Very easy to get up and running (with Composer)
▸ Caddy server
▸ dnsmasq (valet domain, valet park)
▸ MariaDB (brew install mariadb)
▸ Very small memory footprint (~7MB)
▸ Share your work with clients remotely
LOCAL DEVELOPMENT
LARAVEL VALET
$ valet share -region au
LOCAL DEVELOPMENT
LARAVEL VALET
$ valet share -region au
LOCAL DEVELOPMENT
LARAVEL VALET - EASY SHARING WITH NGROK
LOCAL DEVELOPMENT
LARAVEL VALET - OUT OF THE BOX SUPPORT
▸ Laravel / Lumen
▸ Symfony
▸ Zend
▸ CakePHP3
▸ WordPress / Bedrock
▸ Craft
▸ Statamic
▸ Jigsaw
▸ Static HTML
▸ Your custom driver
LOCAL DEVELOPMENT
LARAVEL VALET
▸ Mac only
▸ Very easy to get up and running (with Composer)
▸ Caddy server
▸ dnsmasq (never mess with your hosts file again!)
▸ MariaDB (brew install mariadb)
▸ Very small memory footprint (~7MB)
▸ Share your work with clients remotely
▸ More info at https://laravel.com/docs/valet
LOCAL DEVELOPMENT
LAMP / WAMP / MAMP
▸ Linux / Windows / Mac
▸ Apache
▸ MySQL
▸ PHP
▸ Installs a local server environment, it’s free, and easy to install
if you’re not familiar with the command line
▸ If you don’t need it anymore, just delete it
▸ https://www.mamp.info / http://www.wampserver.com/en
LOCAL DEVELOPMENT
LAMP / WAMP / MAMP
LOCAL DEVELOPMENT
LAMP / WAMP / MAMP
▸ Linux is a bit trickier as you need to install each component
via your distribution’s package manager
▸ Use aptitude (Debian, Ubuntu), yum (RHEL / CentOS)
LOCAL DEVELOPMENT
LAMP / WAMP / MAMP
$ sudo apt-get install nginx
$ sudo apt-add-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install php7.0-cli php7.0-dev 
php-curl php-mysql php-mbstring php-7.0-fpm…
$ …
$ sudo apt-get install mariadb-server
VIRTUAL MACHINE
LOCAL DEVELOPMENT
VIRTUAL MACHINE
▸ VirtualBox (Free)
▸ VMWare Fusion (~$100)
▸ Parallels Desktop (~$100)
▸ VMWare Workstation (~$300)
LOCAL DEVELOPMENT
VIRTUAL MACHINE
▸ Irrespective of your virtualisation software, you get a self-
contained, full operating system
▸ Allows you to contain your LAMP install
▸ Easy to replicate your production environment
▸ Don’t install any development software on your host machine
▸ Make a mistake? Blow away the image and start over!
▸ Resource (memory, CPU, hard disk) intensive
LOCAL DEVELOPMENT
VIRTUAL MACHINE - VAGRANT
▸ Create and configure lightweight, reproducible, and portable
development environments
▸ Saves you having to run install steps manually every time
▸ Don’t worry about missing a piece of software
▸ Makes disposable or single-project machines simple
▸ Commit your Vagrantfile to version control so other
developers will have exactly the same development
environment when they checkout your code
LOCAL DEVELOPMENT
VIRTUAL MACHINE - VAGRANT
▸ You can even build your base images and reuse them over
and over again
▸ Reduces the time it takes to get up and running on new
projects
▸ Using images means you have the base image as well as one
or more instances on your machine taking up disk space
▸ More info at https://www.vagrantup.com
LOCAL DEVELOPMENT
VIRTUAL MACHINE - HOMESTEAD
▸ Another Laravel product, Homestead allows you to get up
and running with a modern, pre-packaged development
environment
▸ Ubuntu 16.04
▸ Git
▸ PHP 7
▸ Nginx
▸ MySQL / MariaDB
▸ PostgreSQL
▸ Composer
▸ Node
▸ Redis / Memcached
▸ Beanstalkd
LOCAL DEVELOPMENT
VIRTUAL MACHINE - HOMESTEAD
$ composer global require laravel/homestead
$ homestead edit
$ homestead up
LOCAL DEVELOPMENT
LAMP / WAMP / MAMP
$ sudo apt-get install nginx
$ sudo apt-add-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install php7.0-cli php7.0-dev 
php-curl php-mysql php-mbstring php-7.0-fpm…
$ …
$ sudo apt-get install mariadb-server
LOCAL DEVELOPMENT
VIRTUAL MACHINE - HOMESTEAD
$ composer global require laravel/homestead
$ homestead edit
$ homestead up
$ homestead ssh
DOCKER
I AM NOT AN EXPERT IN
BUT I’LL TRY ANYWAY
LOCAL DEVELOPMENT
DOCKER - WHY?
▸ Faster delivery of your applications
▸ Deploying and scaling are easier
▸ Achieve higher density and run more workloads
LOCAL DEVELOPMENT
DOCKER - THREE KEY COMPONENTS
▸ Images - the build component
▸ Registries - the distribution component
▸ Containers - the run component
LOCAL DEVELOPMENT
DOCKER - HOW IS IT DIFFERENT TO VIRTUALISATION?
▸ Virtual machines include the application, the necessary
binaries and libraries, and an entire guest OS
Infrastructure
Host Operating System
Hypervisor
Guest OS
Bins / Libs
App 1
Guest OS
Bins / Libs
App 2
Guest OS
Bins / Libs
App 3
LOCAL DEVELOPMENT
DOCKER - HOW IS IT DIFFERENT TO VIRTUALISATION?
▸ Virtual machines include the application, the necessary
binaries and libraries, and an entire guest OS - tens of GBs
▸ With containers, you have a single operating system, and
each container shares the operating system kernel with other
containers
LOCAL DEVELOPMENT
DOCKER - HOW IS IT DIFFERENT TO VIRTUALISATION?
▸ Virtual machines include the application, the necessary
binaries and libraries, and an entire guest OS - tens of GBs
▸ With containers, you have a single operating system, and
each container shares the operating system kernel with other
containers - tens of MBs
▸ Because of this, a single server can host many more
containers than Virtual Machines. VMs can take several
minutes to boot, containerised apps start almost instantly
▸ Containers include the application and all of its dependencies, but
share the kernel with other containers, running as isolated processes in
user space. Docker containers are not tied to any specific infrastructure.
▸ Shared parts of the operating system are read only, while each
container has its own mount for writing.
LOCAL DEVELOPMENT
DOCKER - HOW IS IT DIFFERENT TO VIRTUALISATION?
Infrastructure
Host Operating System
Docker Engine
Bins / Libs
App 1
Bins / Libs
App 2
Bins / Libs
App 3
LOCAL DEVELOPMENT
DOCKER - HOW DOES IT WORK?
▸ Docker is written in Go and makes use of several kernel
features to deliver its functionality
▸ Namespaces
▸ Control groups
▸ Union file systems
▸ Container format
LOCAL DEVELOPMENT
DOCKER - SHARING AND COLLABORATION
▸ Storing, distributing, and managing Docker images is easy
with Docker Hub. Any updates and changes are shared with
others. History is automatically tracked.
▸ Collaborate with others simply by shipping your container. If
your frontend team needs to work with the API you’re
building, all they have to do is spin up up the Docker
container.
LOCAL DEVELOPMENT
DOCKER - SCALABILITY
▸ Because containers are lightweight, they take seconds to
spin up and down
▸ This makes it easy to scale out your application during peak
times, and scale down during quiet periods
▸ A lot of this can be automated
▸ More info at https://www.docker.com
▸ Check out my friend Chris’ Shipping Docker course at
https://shippingdocker.com
QUESTIONS?
Michael Dyrynda
@michaeldyrynda
dyrynda.com.au
North Meets South
@northsouthaudio
northmeetssouth.audio
THANK YOU!

Contenu connexe

Tendances

SF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantSF DevOps: Introducing Vagrant
SF DevOps: Introducing Vagrant
Mitchell Hashimoto
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
Puppet
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
Evans Ye
 

Tendances (20)

Modern Continuous Delivery with Docker and Liferay
Modern Continuous Delivery with Docker and LiferayModern Continuous Delivery with Docker and Liferay
Modern Continuous Delivery with Docker and Liferay
 
Docker Continuous Delivery Workshop
Docker Continuous Delivery WorkshopDocker Continuous Delivery Workshop
Docker Continuous Delivery Workshop
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutes
 
Locally it worked! virtualizing docker
Locally it worked! virtualizing dockerLocally it worked! virtualizing docker
Locally it worked! virtualizing docker
 
Baking Docker Using Chef
Baking Docker Using ChefBaking Docker Using Chef
Baking Docker Using Chef
 
SF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantSF DevOps: Introducing Vagrant
SF DevOps: Introducing Vagrant
 
An Introduction to Vagrant and Docker
An Introduction to Vagrant and DockerAn Introduction to Vagrant and Docker
An Introduction to Vagrant and Docker
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
Vagrant
VagrantVagrant
Vagrant
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Introduction To Docker
Introduction To DockerIntroduction To Docker
Introduction To Docker
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and Docker
 
Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrant
 
Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
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
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewireIntroduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
 
Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...
 

En vedette (10)

MariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonMariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
 
Le nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb phpLe nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb php
 
MariaDB 10: The Complete Tutorial
MariaDB 10: The Complete TutorialMariaDB 10: The Complete Tutorial
MariaDB 10: The Complete Tutorial
 
HTML/CSS/JS基础
HTML/CSS/JS基础HTML/CSS/JS基础
HTML/CSS/JS基础
 
Open Source Package PHP & MySQL
Open Source Package PHP & MySQLOpen Source Package PHP & MySQL
Open Source Package PHP & MySQL
 
Php MySql For Beginners
Php MySql For BeginnersPhp MySql For Beginners
Php MySql For Beginners
 
Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3
 
Html
HtmlHtml
Html
 
Php mysql ppt
Php mysql pptPhp mysql ppt
Php mysql ppt
 
Introduction to html
Introduction to htmlIntroduction to html
Introduction to html
 

Similaire à Developing web apps

Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
Andreas Heim
 

Similaire à Developing web apps (20)

Drupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflowDrupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflow
 
Dockerize WordPress on Mac/Windows
Dockerize WordPress on Mac/WindowsDockerize WordPress on Mac/Windows
Dockerize WordPress on Mac/Windows
 
Building and Deploying PHP Applications, PHPTour 2016
Building and Deploying PHP Applications, PHPTour 2016Building and Deploying PHP Applications, PHPTour 2016
Building and Deploying PHP Applications, PHPTour 2016
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
 
Dockerize Laravel Application
Dockerize Laravel ApplicationDockerize Laravel Application
Dockerize Laravel Application
 
WordPress Development Environments
WordPress Development Environments WordPress Development Environments
WordPress Development Environments
 
How Reconnix Is Using Docker
How Reconnix Is Using DockerHow Reconnix Is Using Docker
How Reconnix Is Using Docker
 
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
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
 
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
 
Тарас Кирилюк — Docker basics. How-to for Drupal developers
Тарас Кирилюк — Docker basics. How-to for Drupal developersТарас Кирилюк — Docker basics. How-to for Drupal developers
Тарас Кирилюк — Docker basics. How-to for Drupal developers
 
Docker 101
Docker 101Docker 101
Docker 101
 
The future of the php development environment
The future of the php development environmentThe future of the php development environment
The future of the php development environment
 
Docker for developers on mac and windows
Docker for developers on mac and windowsDocker for developers on mac and windows
Docker for developers on mac and windows
 
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
 
Local development with vvv jon trujillo
Local development with vvv   jon trujilloLocal development with vvv   jon trujillo
Local development with vvv jon trujillo
 
Docker In Brief
Docker In BriefDocker In Brief
Docker In Brief
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 
Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014
 

Dernier

在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
ydyuyu
 
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
nirzagarg
 
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
@Chandigarh #call #Girls 9053900678 @Call #Girls in @Punjab 9053900678
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Chandigarh Call girls 9053900678 Call girls in Chandigarh
 
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
nilamkumrai
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 

Dernier (20)

WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
 
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
 

Developing web apps

  • 3. LOCAL DEVELOPMENT BUILT-IN PHP SERVER ▸ Out of the box support in PHP >= 5.4.0 ▸ Designed specifically for local development ▸ Useful for testing and demos in controlled environments ▸ Never run this in production ▸ The easiest way to start modern PHP development
  • 5. LOCAL DEVELOPMENT BUILT-IN PHP SERVER ▸ Out of the box support in PHP >= 5.4.0 ▸ Designed specifically for local development ▸ Useful for testing and demos in controlled environments ▸ Never run this in production ▸ The easiest way to start modern PHP development ▸ More info - Google “php built in server”
  • 6. LOCAL DEVELOPMENT LARAVEL VALET ▸ Mac only ▸ Very easy to get up and running (with Composer)
  • 7. LOCAL DEVELOPMENT ▸ Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. ▸ Not a package manager. It manages dependencies on a per- project basis, installing them in a vendor directory within your project.
  • 8. LOCAL DEVELOPMENT LARAVEL VALET $ composer global require laravel/valet $ valet install
  • 9. LOCAL DEVELOPMENT LARAVEL VALET ▸ Mac only ▸ Very easy to get up and running (with Composer) ▸ Caddy server ▸ dnsmasq
  • 10. LOCAL DEVELOPMENT LARAVEL VALET - FOLDER TO DOMAIN MAPPING
  • 11. LOCAL DEVELOPMENT LARAVEL VALET - FOLDER TO DOMAIN MAPPING /Users/michael/phpsa/Sites $ ls bedrock dyrynda-com-au phpsa confomo laravel
  • 12. LOCAL DEVELOPMENT LARAVEL VALET - FOLDER TO DOMAIN MAPPING phpsa => http: //phpsa.test
  • 13. LOCAL DEVELOPMENT LARAVEL VALET ▸ Mac only ▸ Very easy to get up and running (with Composer) ▸ Caddy server ▸ dnsmasq (valet domain, valet park) ▸ MariaDB
  • 14. LOCAL DEVELOPMENT LARAVEL VALET $ brew install mariadb
  • 15. LOCAL DEVELOPMENT LARAVEL VALET ▸ Very easy to get up and running (with Composer) ▸ Caddy server ▸ dnsmasq (valet domain, valet park) ▸ MariaDB (brew install mariadb) ▸ Very small memory footprint (~7MB) ▸ Share your work with clients remotely
  • 16. LOCAL DEVELOPMENT LARAVEL VALET $ valet share -region au
  • 17. LOCAL DEVELOPMENT LARAVEL VALET $ valet share -region au
  • 18. LOCAL DEVELOPMENT LARAVEL VALET - EASY SHARING WITH NGROK
  • 19. LOCAL DEVELOPMENT LARAVEL VALET - OUT OF THE BOX SUPPORT ▸ Laravel / Lumen ▸ Symfony ▸ Zend ▸ CakePHP3 ▸ WordPress / Bedrock ▸ Craft ▸ Statamic ▸ Jigsaw ▸ Static HTML ▸ Your custom driver
  • 20. LOCAL DEVELOPMENT LARAVEL VALET ▸ Mac only ▸ Very easy to get up and running (with Composer) ▸ Caddy server ▸ dnsmasq (never mess with your hosts file again!) ▸ MariaDB (brew install mariadb) ▸ Very small memory footprint (~7MB) ▸ Share your work with clients remotely ▸ More info at https://laravel.com/docs/valet
  • 21. LOCAL DEVELOPMENT LAMP / WAMP / MAMP ▸ Linux / Windows / Mac ▸ Apache ▸ MySQL ▸ PHP ▸ Installs a local server environment, it’s free, and easy to install if you’re not familiar with the command line ▸ If you don’t need it anymore, just delete it ▸ https://www.mamp.info / http://www.wampserver.com/en
  • 23. LOCAL DEVELOPMENT LAMP / WAMP / MAMP ▸ Linux is a bit trickier as you need to install each component via your distribution’s package manager ▸ Use aptitude (Debian, Ubuntu), yum (RHEL / CentOS)
  • 24. LOCAL DEVELOPMENT LAMP / WAMP / MAMP $ sudo apt-get install nginx $ sudo apt-add-repository ppa:ondrej/php $ sudo apt-get update $ sudo apt-get install php7.0-cli php7.0-dev php-curl php-mysql php-mbstring php-7.0-fpm… $ … $ sudo apt-get install mariadb-server
  • 26. LOCAL DEVELOPMENT VIRTUAL MACHINE ▸ VirtualBox (Free) ▸ VMWare Fusion (~$100) ▸ Parallels Desktop (~$100) ▸ VMWare Workstation (~$300)
  • 27. LOCAL DEVELOPMENT VIRTUAL MACHINE ▸ Irrespective of your virtualisation software, you get a self- contained, full operating system ▸ Allows you to contain your LAMP install ▸ Easy to replicate your production environment ▸ Don’t install any development software on your host machine ▸ Make a mistake? Blow away the image and start over! ▸ Resource (memory, CPU, hard disk) intensive
  • 28. LOCAL DEVELOPMENT VIRTUAL MACHINE - VAGRANT ▸ Create and configure lightweight, reproducible, and portable development environments ▸ Saves you having to run install steps manually every time ▸ Don’t worry about missing a piece of software ▸ Makes disposable or single-project machines simple ▸ Commit your Vagrantfile to version control so other developers will have exactly the same development environment when they checkout your code
  • 29. LOCAL DEVELOPMENT VIRTUAL MACHINE - VAGRANT ▸ You can even build your base images and reuse them over and over again ▸ Reduces the time it takes to get up and running on new projects ▸ Using images means you have the base image as well as one or more instances on your machine taking up disk space ▸ More info at https://www.vagrantup.com
  • 30. LOCAL DEVELOPMENT VIRTUAL MACHINE - HOMESTEAD ▸ Another Laravel product, Homestead allows you to get up and running with a modern, pre-packaged development environment ▸ Ubuntu 16.04 ▸ Git ▸ PHP 7 ▸ Nginx ▸ MySQL / MariaDB ▸ PostgreSQL ▸ Composer ▸ Node ▸ Redis / Memcached ▸ Beanstalkd
  • 31. LOCAL DEVELOPMENT VIRTUAL MACHINE - HOMESTEAD $ composer global require laravel/homestead $ homestead edit $ homestead up
  • 32. LOCAL DEVELOPMENT LAMP / WAMP / MAMP $ sudo apt-get install nginx $ sudo apt-add-repository ppa:ondrej/php $ sudo apt-get update $ sudo apt-get install php7.0-cli php7.0-dev php-curl php-mysql php-mbstring php-7.0-fpm… $ … $ sudo apt-get install mariadb-server
  • 33. LOCAL DEVELOPMENT VIRTUAL MACHINE - HOMESTEAD $ composer global require laravel/homestead $ homestead edit $ homestead up $ homestead ssh
  • 34. DOCKER I AM NOT AN EXPERT IN BUT I’LL TRY ANYWAY
  • 35. LOCAL DEVELOPMENT DOCKER - WHY? ▸ Faster delivery of your applications ▸ Deploying and scaling are easier ▸ Achieve higher density and run more workloads
  • 36. LOCAL DEVELOPMENT DOCKER - THREE KEY COMPONENTS ▸ Images - the build component ▸ Registries - the distribution component ▸ Containers - the run component
  • 37. LOCAL DEVELOPMENT DOCKER - HOW IS IT DIFFERENT TO VIRTUALISATION? ▸ Virtual machines include the application, the necessary binaries and libraries, and an entire guest OS Infrastructure Host Operating System Hypervisor Guest OS Bins / Libs App 1 Guest OS Bins / Libs App 2 Guest OS Bins / Libs App 3
  • 38. LOCAL DEVELOPMENT DOCKER - HOW IS IT DIFFERENT TO VIRTUALISATION? ▸ Virtual machines include the application, the necessary binaries and libraries, and an entire guest OS - tens of GBs ▸ With containers, you have a single operating system, and each container shares the operating system kernel with other containers
  • 39. LOCAL DEVELOPMENT DOCKER - HOW IS IT DIFFERENT TO VIRTUALISATION? ▸ Virtual machines include the application, the necessary binaries and libraries, and an entire guest OS - tens of GBs ▸ With containers, you have a single operating system, and each container shares the operating system kernel with other containers - tens of MBs ▸ Because of this, a single server can host many more containers than Virtual Machines. VMs can take several minutes to boot, containerised apps start almost instantly
  • 40. ▸ Containers include the application and all of its dependencies, but share the kernel with other containers, running as isolated processes in user space. Docker containers are not tied to any specific infrastructure. ▸ Shared parts of the operating system are read only, while each container has its own mount for writing. LOCAL DEVELOPMENT DOCKER - HOW IS IT DIFFERENT TO VIRTUALISATION? Infrastructure Host Operating System Docker Engine Bins / Libs App 1 Bins / Libs App 2 Bins / Libs App 3
  • 41. LOCAL DEVELOPMENT DOCKER - HOW DOES IT WORK? ▸ Docker is written in Go and makes use of several kernel features to deliver its functionality ▸ Namespaces ▸ Control groups ▸ Union file systems ▸ Container format
  • 42. LOCAL DEVELOPMENT DOCKER - SHARING AND COLLABORATION ▸ Storing, distributing, and managing Docker images is easy with Docker Hub. Any updates and changes are shared with others. History is automatically tracked. ▸ Collaborate with others simply by shipping your container. If your frontend team needs to work with the API you’re building, all they have to do is spin up up the Docker container.
  • 43. LOCAL DEVELOPMENT DOCKER - SCALABILITY ▸ Because containers are lightweight, they take seconds to spin up and down ▸ This makes it easy to scale out your application during peak times, and scale down during quiet periods ▸ A lot of this can be automated ▸ More info at https://www.docker.com ▸ Check out my friend Chris’ Shipping Docker course at https://shippingdocker.com
  • 45. Michael Dyrynda @michaeldyrynda dyrynda.com.au North Meets South @northsouthaudio northmeetssouth.audio THANK YOU!