Site Development Processes for Small Teams

Preview:

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 NOGGINDIGITAL

jeff@busynoggin.com@jsegars

BUSY NOGGIN DIGITALserious websites for those who mean business

Recommended