Upload
jeff-segars
View
553
Download
0
Tags:
Embed Size (px)
Citation preview
Site Development Process for Small Teams
BUSY NOGGIN DIGITALserious websites for those who mean business
What We Learned from Goldilocks and the Three Bears
BUSY NOGGIN DIGITALserious websites for those who mean business
BUSY NOGGINDIGITAL
BUSY NOGGINDIGITAL
(1) Project Manager / Creative Director / Site Integrator / Frontend Developer(1) PHP Developer(2) Designer / Frontend Dev / Site Integrator
The Small Team
• Wide range of TYPO3 experience, ranging from <1 year to 10 years
• Semi-virtual team, separated by 8,000 miles
BUSY NOGGINDIGITAL
Why do we need a process?
BUSY NOGGINDIGITAL
Kickstarting a Site
BUSY NOGGINDIGITAL
Kickstarting a Site
Download TYPO3 SourceCopy/Paste
Build Your Own CMS!
Create a Base Package
BUSY NOGGINDIGITAL
Create A Base Package
TYPO3 Source
Extensions Extension Config Extension Templates
Default Site Config Wireframe Template
Backend Permissions
What steps do you perform as part of every site build?
BUSY NOGGINDIGITAL
Create A Base Package
TYPO3 Source
Extensions Extension Config Extension Templates
Default Site Config Wireframe Template
Backend Permissions
Custom Extensions
Custom TemplateSite Configuration
Make Use of Inheritance for Individual Sites
BUSY NOGGINDIGITAL
Create A Base PackageConsistent, modular structure for extensions, skins, etc
tt_newsConfiguration
TypoScriptResources
PrivateSASSTemplates
PublicImagesJavaScriptStyleSheets
my_skinConfiguration
TypoScriptResources
PrivateSASSTemplates
PublicImagesJavaScriptStyleSheets
BUSY NOGGINDIGITAL
BUSY NOGGINDIGITAL
BUSY NOGGINDIGITAL
BUSY NOGGINDIGITAL
Version Control
BUSY NOGGINDIGITAL
Version Control
I think the hosting company does backups
Let’s put the content in Git!Everything is a submodule!
Code & Configuration in GitContent outside Git
BUSY NOGGINDIGITAL
• ... for the same reasons you would version control an extension• Change tracking and rollback• Keep code in sync with other team members• Easy TYPO3 upgrades by updating submodule
Version ControlWhy should I version control a site?
BUSY NOGGINDIGITAL
• Any content generated in production- Database- Static files in fileadmin- Static files in uploads- Anything in typo3temp- Temp files and logs in typo3conf- Autogenerated RealURL configuration- Server-specific configuration (ie. localconf.site.php)
Version ControlWhat should I leave out of version control?
BUSY NOGGINDIGITAL
Local Development
BUSY NOGGINDIGITAL
Local Development
Everyone just starts from the same place
Virtual machine per site
MAMP + Version Control
BUSY NOGGINDIGITAL
• Most projects are basic LAMP stack• Run (L/M/W)AMP locally for simplicity• Develop inside a feature branch or general development branch• Tower and SourceTree make GIT more approachable• MAMP Pro makes Apache & Virtual Hosts more accessible
Local DevelopmentBasic Setup
BUSY NOGGINDIGITAL
• Checkout Git repository• Set up in MAMP• Sync database and content via Syncing Secret Sauce (stay tuned until the end of the presentation)
Local DevelopmentUsage
BUSY NOGGINDIGITAL
Deployment
BUSY NOGGINDIGITAL
Deployment
FTP or Edit on Production
DevOps for Entire Server
Deploy Site to Multiple Targets
BUSY NOGGINDIGITAL
• Remote multi-server automation tool• Run commands locally, execute them on the server• Multi-stage (testing, production) and Muti-role (web, db)• Common Tasks
- cap [stage] deploy:setup- cap [stage] deploy:pending- cap [stage] deploy- cap [stage] deploy:rollback
DeploymentCapistrano Basics
BUSY NOGGINDIGITAL
DeploymentCapistrano Deployment Structure
my_sitecurrent -> releases/20130530161342releases
20130530161342configsitetypo3_src
20130406124812configsitetypo3_src
sharedcached-copy
BUSY NOGGINDIGITAL
DeploymentTYPO3-flavored Capistrano
my_sitecurrent -> releases/20130530161342releases
2013053016134220130406124812
sharedcached-copyconfig
localconf.site.phpsite
fileadmintypo3tempuploads
BUSY NOGGINDIGITAL
• Capistrano tasks for TYPO3 CLI Interface• Trigger Solr re-index• Clear Cache• Update Database• EXT:coreapi
DeploymentTYPO3-flavored Capistrano
BUSY NOGGINDIGITAL
DeploymentSee also: TYPO3 Surf
(one room over)
BUSY NOGGINDIGITAL
Staging & Testing
BUSY NOGGINDIGITAL
Staging & Testing
“Works on my machine”
Content StagingContinuous Integration
Internal Test Server
BUSY NOGGINDIGITAL
Staging & Testing
BUSY NOGGINDIGITAL
Staging & Testing
BUSY NOGGINDIGITAL
Syncing Secret Sauce
BUSY NOGGINDIGITAL
BUSY NOGGINDIGITAL
> cap sync:files> cap sync:database
> cap production sync:files> cap production sync:database
BUSY NOGGINDIGITAL
Next Steps
BUSY NOGGINDIGITAL
• Vagrant for sites with needs outside LAMP stack• Define normal site building stages and deliverables produced• Checklists for guiding a site build through common tasks• Documentation for deployment, version control, etc
Next StepsIt’s too big right now, but where are we headed?
BUSY NOGGINDIGITAL
Tools of the Trade
BUSY NOGGINDIGITAL
Tools of The Trade
BUSY NOGGINDIGITAL
BUSY NOGGINDIGITAL
Questions?
BUSY NOGGIN DIGITALserious websites for those who mean business