Case study: Schoolbox - Scaling & supporting on-premises apps

19
CASE STUDY: SCHOOLBOX SCALING & SUPPORTING ON-PREMISES APPS Created by / Sam Bailey @that_sam_guy meetup 2014-02-11 Infrastructure Coders

description

My infrastructure coders talk from 2014-02-11 on how we scaled our business using improved our workflows and infrastructure. Also looks at the challenges of supporting on-premisis hosted systems remotely.

Transcript of Case study: Schoolbox - Scaling & supporting on-premises apps

Page 1: Case study: Schoolbox - Scaling & supporting on-premises apps

CASE STUDY:

SCHOOLBOXSCALING & SUPPORTING

ON-PREMISES APPS

Created by / Sam Bailey @that_sam_guy

meetup 2014-02-11Infrastructure Coders

Page 2: Case study: Schoolbox - Scaling & supporting on-premises apps

BUILT BY ALARESS

Page 3: Case study: Schoolbox - Scaling & supporting on-premises apps

INCLUDING ME

SAM BAILEY@that_sam_guy

[email protected]

System Administrator at Alaress

DevOps wannabe

Packager for Mageia linux

Geek Dad

Page 4: Case study: Schoolbox - Scaling & supporting on-premises apps

SCHOOLBOX IS …web based

hosted on-premises

a learning management system

an intranet/portal

designed for Prep to Year 12 schools

accessible from anywhere* on desktop/tablet/mobile

* well almost - with internet access and a supported browser** ** we even support IE… well 9+ anyway

Page 5: Case study: Schoolbox - Scaling & supporting on-premises apps

TLDR?The school's online communication & learning space for

Students, Teachers & Parents.

Page 6: Case study: Schoolbox - Scaling & supporting on-premises apps

FEATURES(we have some)

News Calendar

Timetables Online Grading

Courses Continuous Reporting

Homework submissions Resource Management

Forums Wiki

Parent Directory Live Chat

Groups Surveys

Online Testing Dynamic Homepages

Page 7: Case study: Schoolbox - Scaling & supporting on-premises apps

WHERE WE WERE …

Started in 2001 with Melbourne Grammar School

12 schools by June 2012 (when I joined)

Begin pivot whole company to Schoolbox

Looking to scale quickly

Page 8: Case study: Schoolbox - Scaling & supporting on-premises apps

WHAT WE HAD …Used SVN (poorly)

Single instance for development shared between alldevelopers

Prod servers:4 different versions of Ubuntu1 version of CentOS

Deploy with tarball & complex bash scripts

Frequent regressions with minor releases

Poor testing & demonstration data

Page 9: Case study: Schoolbox - Scaling & supporting on-premises apps

NOT YOURGRANDMOTHER'S LAMP

STACK

Ubuntu LTS / CentOS

Apache

MySQL

PHP

Redis

RabbitMQ

WebSockets

Page 10: Case study: Schoolbox - Scaling & supporting on-premises apps

ALL YOUR DATAARE BELONG TO US

We connect to & pull data from many other onsite andoffsite services.

MSSQL IBM DB2

Active Directory Novell eDirectory

SharePoint WebDav on IIS

SAML Kerberos

Google Calendar Microsoft Exchange

Twitter RSS

Page 11: Case study: Schoolbox - Scaling & supporting on-premises apps

JUNE 2012 -> NOW()STARTING TO SCALE

Migrated to Git & GitHub

Implemented peer review via Pull Request

Significantly improved demo & testing data

Moved all prod to Ubuntu LTS or CentOS

Deploy via Puppet with deb/RPM packages (onemaster)

Team uses prod-like Vagrant boxes for development

Page 12: Case study: Schoolbox - Scaling & supporting on-premises apps

JUNE 2012 -> NOW()THE RESULTS SO FAR…

Fewer regressions

Better deploys

Happier team

More clients (35+ across Aus & NZ)

Good times

Page 13: Case study: Schoolbox - Scaling & supporting on-premises apps

WHERE WE ARE …I'm here!

Page 14: Case study: Schoolbox - Scaling & supporting on-premises apps

ONSITE VS CLOUDWe operate and manage each server under an SLA

Things we can't control:NetworkPower (the electricity thing)HardwareInternet ConnectivityFirewall/s (!!!)ProxyDNSSkill level of onsite technical personnelInternal or outsourced IT Support

Page 15: Case study: Schoolbox - Scaling & supporting on-premises apps

WHAT'S NEXT?Automate testing (and writing more tests)

Dashboards

Better internal Puppet modules and coverage

More DevOps*

Cloud based hosted edition

? Hipchat/Robots* DevOps is a culture not a team!

Page 16: Case study: Schoolbox - Scaling & supporting on-premises apps

PET PEEVESUnreliable Ubuntu mirrors

Manual signing of packages/repositories

Automating upgrades of OS packages

Puppet the Puppet Master

Prod is all pets, not cattle

Page 17: Case study: Schoolbox - Scaling & supporting on-premises apps

THE END

Page 18: Case study: Schoolbox - Scaling & supporting on-premises apps

CURRENTLY HIRING?

No.

But we will be at some stage ;)

Page 19: Case study: Schoolbox - Scaling & supporting on-premises apps

QUESTIONS, SUGGESTIONS& FEEDBACK?

Onsite vs Cloud

What's Next?

Pet Peeves

schoolbox.com.au

Sam Bailey / @that_sam_guy