site development processes for small teams

43
Site Development Process for Small Teams BUSY NOGGIN DIGITAL serious websites for those who mean business

Upload: jeff-segars

Post on 19-May-2015

552 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Site Development Processes for Small Teams

Site Development Process for Small Teams

BUSY NOGGIN DIGITALserious websites for those who mean business

Page 2: Site Development Processes for Small Teams

What We Learned from Goldilocks and the Three Bears

BUSY NOGGIN DIGITALserious websites for those who mean business

Page 3: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Page 4: Site Development Processes for Small Teams

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

Page 5: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Why do we need a process?

Page 6: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Kickstarting a Site

Page 7: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Kickstarting a Site

Download TYPO3 SourceCopy/Paste

Build Your Own CMS!

Create a Base Package

Page 8: Site Development Processes for Small Teams

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?

Page 9: Site Development Processes for Small Teams

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

Page 10: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Create A Base PackageConsistent, modular structure for extensions, skins, etc

tt_newsConfiguration

TypoScriptResources

PrivateSASSTemplates

PublicImagesJavaScriptStyleSheets

my_skinConfiguration

TypoScriptResources

PrivateSASSTemplates

PublicImagesJavaScriptStyleSheets

Page 11: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Page 12: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Page 13: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Page 14: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Version Control

Page 15: Site Development Processes for Small Teams

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

Page 16: Site Development Processes for Small Teams

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?

Page 17: Site Development Processes for Small Teams

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?

Page 18: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Local Development

Page 19: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Local Development

Everyone just starts from the same place

Virtual machine per site

MAMP + Version Control

Page 20: Site Development Processes for Small Teams

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

Page 21: Site Development Processes for Small Teams

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

Page 22: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Deployment

Page 23: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Deployment

FTP or Edit on Production

DevOps for Entire Server

Deploy Site to Multiple Targets

Page 24: Site Development Processes for Small Teams

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

Page 25: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

DeploymentCapistrano Deployment Structure

my_sitecurrent -> releases/20130530161342releases

20130530161342configsitetypo3_src

20130406124812configsitetypo3_src

sharedcached-copy

Page 26: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

DeploymentTYPO3-flavored Capistrano

my_sitecurrent -> releases/20130530161342releases

2013053016134220130406124812

sharedcached-copyconfig

localconf.site.phpsite

fileadmintypo3tempuploads

Page 27: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

• Capistrano tasks for TYPO3 CLI Interface• Trigger Solr re-index• Clear Cache• Update Database• EXT:coreapi

DeploymentTYPO3-flavored Capistrano

Page 28: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

DeploymentSee also: TYPO3 Surf

(one room over)

Page 29: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Staging & Testing

Page 30: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Staging & Testing

“Works on my machine”

Content StagingContinuous Integration

Internal Test Server

Page 31: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Staging & Testing

Page 32: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Staging & Testing

Page 33: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Syncing Secret Sauce

Page 34: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Page 35: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

> cap sync:files> cap sync:database

> cap production sync:files> cap production sync:database

Page 36: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Next Steps

Page 37: Site Development Processes for Small Teams

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?

Page 38: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Tools of the Trade

Page 39: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Tools of The Trade

Page 40: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Page 41: Site Development Processes for Small Teams

BUSY NOGGINDIGITAL

Questions?

Page 43: Site Development Processes for Small Teams

BUSY NOGGIN DIGITALserious websites for those who mean business