case study: schoolbox - scaling & supporting on-premises apps
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
CASE STUDY:
SCHOOLBOXSCALING & SUPPORTING
ON-PREMISES APPS
Created by / Sam Bailey @that_sam_guy
meetup 2014-02-11Infrastructure Coders
BUILT BY ALARESS
INCLUDING ME
SAM BAILEY@that_sam_guy
System Administrator at Alaress
DevOps wannabe
Packager for Mageia linux
Geek Dad
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
TLDR?The school's online communication & learning space for
Students, Teachers & Parents.
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
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
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
NOT YOURGRANDMOTHER'S LAMP
STACK
Ubuntu LTS / CentOS
Apache
MySQL
PHP
Redis
RabbitMQ
WebSockets
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
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
JUNE 2012 -> NOW()THE RESULTS SO FAR…
Fewer regressions
Better deploys
Happier team
More clients (35+ across Aus & NZ)
Good times
WHERE WE ARE …I'm here!
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
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!
PET PEEVESUnreliable Ubuntu mirrors
Manual signing of packages/repositories
Automating upgrades of OS packages
Puppet the Puppet Master
Prod is all pets, not cattle
THE END
CURRENTLY HIRING?
No.
But we will be at some stage ;)
QUESTIONS, SUGGESTIONS& FEEDBACK?
Onsite vs Cloud
What's Next?
Pet Peeves
schoolbox.com.au
Sam Bailey / @that_sam_guy