Upload
vanphp
View
92
Download
1
Embed Size (px)
DESCRIPTION
In this talk we will discuss the advantages of doing remote PHP development. We'll cover the challenges we faced working with large distributed teams with different OS's, hardware and knowledge. Presented by Prashant Kandathil.
Citation preview
Floating on a cloud: dev env. on AWSPrashant KandathilCo-Founder @ Tech Samurais [email protected]
Overview
BackgroundTask @ Hand
SolutionConclusionQuestions
Background
Varied Skills
7 Front-end devs
4 Full stack devs
1 Dev-ops
Hardware
Works on low powered machines
Different Operating Systems
40% 50% 10%
Task @ Hand
Product vs ProjectMultiple project streams for one product
Framework
Usage Billing Registration
Self Serve telus.com
Devs/project
~3 devs / project x 4 streams = 12 devs
Config requirements
No local configuration
Prototyping requirements
Easily prototype new technologies
Speed requirements
Switch easily between dev and testing
Flexible workstyle requirements
Work from home or the office
Solution
Major Tech
Remote DevelopmentCode is synced to AWS on save
AWS
Grunt and Bash scriptsRun action based on file type
.scss
.js
Grunt
language file bash script
.css
valid.js
loaded into cache
Code structureSmart syncing of files
Framework> controllers>> framework>>> files.php
AWS
telus.com> controllers>> framework>>> files.php>> billing>>> files.php>> registration>>> files.php>> usage>>> files.php
Usage> controllers>> usage>>> files.php
Billing> controllers>> billing>>> files.php
Registration> controllers>> registration>>> files.php
WFH or Office
App is public. Protected with auth
Managed Environments
Dev-Ops or senior devs build & manage AWS
Scaling Nginx Configserver {
listen 80;
server_name ~^(?<user>.+)\.servername.domainname\.com$;
. . . location ~ index.php {
if ( -d /home/$user/uss/docroot ) {
root /home/$user/uss/docroot;
}
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "error_log=\"/data/log/nginx/$user-error.log\"";
Deployment FlowStart
Download git repo
Run init script
smart sync code visit url End
development
testing
select env
Trial new tech
Ansible to install apps. Git feature branches with new tech
Issues with Vagrant
Setting up Vagrant- Virtual Machine BIOS setting
- Bandwidth issues downloading large VMs - CPU intensive
Conclusion
AWS for dev and testingManaged environments
Init scripts and smart syncGrunt & Bash on sync
Questions