SlideShare a Scribd company logo
CASE STUDY:

SCHOOLBOX
SCALING & SUPPORTING
ON-PREMISES APPS
Created by Sam Bailey / @that_sam_guy
Infrastructure Coders meetup 2014-02-11
BUILT BY ALARESS
INCLUDING ME
SAM BAILEY
@that_sam_guy
sam.bailey@alaress.com.au
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 all
developers
Prod servers:
4 different versions of Ubuntu
1 version of CentOS
Deploy with tarball & complex bash scripts
Frequent regressions with minor releases
Poor testing & demonstration data
NOT YOUR
GRANDMOTHER'S LAMP
STACK
Ubuntu LTS / CentOS
Apache
MySQL
PHP
Redis
RabbitMQ
WebSockets
ALL YOUR DATA
ARE BELONG TO US
We connect to & pull data from many other onsite and
offsite 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 (one
master)
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 CLOUD
We operate and manage each server under an SLA
Things we can't control:
Network
Power (the electricity thing)
Hardware
Internet Connectivity
Firewall/s (!!!)
Proxy
DNS
Skill level of onsite technical personnel
Internal 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 PEEVES
Unreliable 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

More Related Content

What's hot

IWMW 2003: Content Management - Buy or Build?
IWMW 2003: Content Management - Buy or Build?IWMW 2003: Content Management - Buy or Build?
IWMW 2003: Content Management - Buy or Build?
IWMW
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?
Netlight Consulting
 
NCompass Live: Integrate Those Desktop Skills with Online Classes
NCompass Live: Integrate Those Desktop Skills with Online ClassesNCompass Live: Integrate Those Desktop Skills with Online Classes
NCompass Live: Integrate Those Desktop Skills with Online Classes
Nebraska Library Commission
 
Digital Writing Wiki Presentation
Digital Writing Wiki PresentationDigital Writing Wiki Presentation
Digital Writing Wiki Presentation
Debbie Alcorn
 
Using MAMP for Web Development
Using MAMP for Web DevelopmentUsing MAMP for Web Development
Using MAMP for Web Development
Eric Greene
 
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
DataArt
 
How My Website Learned to Stop Worrying and Love the Cloud
How My Website Learned to Stop Worrying and Love the CloudHow My Website Learned to Stop Worrying and Love the Cloud
How My Website Learned to Stop Worrying and Love the Cloud
Mike Richwalsky
 
Building WordPress sites with AngularJS and the RESTful plugin JSON API
Building WordPress sites with AngularJS and the RESTful plugin JSON APIBuilding WordPress sites with AngularJS and the RESTful plugin JSON API
Building WordPress sites with AngularJS and the RESTful plugin JSON API
Eric Greene
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Alessandro Pilotti
 
Getting Started With Wordpress
Getting Started With WordpressGetting Started With Wordpress
Getting Started With Wordpress
robheller
 
DevconTLV 2014 (Jan) - DIY DevOps
DevconTLV 2014 (Jan) - DIY DevOpsDevconTLV 2014 (Jan) - DIY DevOps
DevconTLV 2014 (Jan) - DIY DevOps
Leonid Mirsky
 
PHP Web Frameworks Introduction
PHP Web Frameworks IntroductionPHP Web Frameworks Introduction
PHP Web Frameworks Introduction
Adam Englander
 
Mesos Introduction
Mesos IntroductionMesos Introduction
Mesos Introduction
haosdent huang
 
That one time in Basecamp
That one time in BasecampThat one time in Basecamp
That one time in Basecamp
TechSoup
 
Working in harmony
Working in harmonyWorking in harmony
Working in harmony
Edmund Turbin
 
OWASP WebGoat and PANTERA Web Assessment Studio Project.
OWASP WebGoat and PANTERA Web Assessment Studio Project.OWASP WebGoat and PANTERA Web Assessment Studio Project.
OWASP WebGoat and PANTERA Web Assessment Studio Project.
Philippe Bogaerts
 
Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126
Mike Hillwig
 
Building microservices with Node.js - part 2
Building microservices with Node.js - part 2Building microservices with Node.js - part 2
Building microservices with Node.js - part 2
Ashley Davis
 
Wiki101
Wiki101Wiki101
Wiki101
Rizal Jailani
 
Go Mac or Go Home
Go Mac or Go HomeGo Mac or Go Home
Go Mac or Go Home
stranjah21
 

What's hot (20)

IWMW 2003: Content Management - Buy or Build?
IWMW 2003: Content Management - Buy or Build?IWMW 2003: Content Management - Buy or Build?
IWMW 2003: Content Management - Buy or Build?
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?
 
NCompass Live: Integrate Those Desktop Skills with Online Classes
NCompass Live: Integrate Those Desktop Skills with Online ClassesNCompass Live: Integrate Those Desktop Skills with Online Classes
NCompass Live: Integrate Those Desktop Skills with Online Classes
 
Digital Writing Wiki Presentation
Digital Writing Wiki PresentationDigital Writing Wiki Presentation
Digital Writing Wiki Presentation
 
Using MAMP for Web Development
Using MAMP for Web DevelopmentUsing MAMP for Web Development
Using MAMP for Web Development
 
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
 
How My Website Learned to Stop Worrying and Love the Cloud
How My Website Learned to Stop Worrying and Love the CloudHow My Website Learned to Stop Worrying and Love the Cloud
How My Website Learned to Stop Worrying and Love the Cloud
 
Building WordPress sites with AngularJS and the RESTful plugin JSON API
Building WordPress sites with AngularJS and the RESTful plugin JSON APIBuilding WordPress sites with AngularJS and the RESTful plugin JSON API
Building WordPress sites with AngularJS and the RESTful plugin JSON API
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
 
Getting Started With Wordpress
Getting Started With WordpressGetting Started With Wordpress
Getting Started With Wordpress
 
DevconTLV 2014 (Jan) - DIY DevOps
DevconTLV 2014 (Jan) - DIY DevOpsDevconTLV 2014 (Jan) - DIY DevOps
DevconTLV 2014 (Jan) - DIY DevOps
 
PHP Web Frameworks Introduction
PHP Web Frameworks IntroductionPHP Web Frameworks Introduction
PHP Web Frameworks Introduction
 
Mesos Introduction
Mesos IntroductionMesos Introduction
Mesos Introduction
 
That one time in Basecamp
That one time in BasecampThat one time in Basecamp
That one time in Basecamp
 
Working in harmony
Working in harmonyWorking in harmony
Working in harmony
 
OWASP WebGoat and PANTERA Web Assessment Studio Project.
OWASP WebGoat and PANTERA Web Assessment Studio Project.OWASP WebGoat and PANTERA Web Assessment Studio Project.
OWASP WebGoat and PANTERA Web Assessment Studio Project.
 
Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126
 
Building microservices with Node.js - part 2
Building microservices with Node.js - part 2Building microservices with Node.js - part 2
Building microservices with Node.js - part 2
 
Wiki101
Wiki101Wiki101
Wiki101
 
Go Mac or Go Home
Go Mac or Go HomeGo Mac or Go Home
Go Mac or Go Home
 

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

Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloud
Ernest Mueller
 
DevOps by examples - Azure Meetup Frankfurt 06-2017
DevOps by examples - Azure Meetup Frankfurt 06-2017DevOps by examples - Azure Meetup Frankfurt 06-2017
DevOps by examples - Azure Meetup Frankfurt 06-2017
Giulio Vian
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Testing apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation ServiceTesting apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation Service
Kevin DeRudder
 
Deploying systems using AWS DevOps tools
Deploying systems using AWS DevOps toolsDeploying systems using AWS DevOps tools
Deploying systems using AWS DevOps tools
MassTLC
 
Cloud Migration journey
Cloud Migration journeyCloud Migration journey
Cloud Migration journey
Paul Birkbeck
 
Dean Hagen
Dean HagenDean Hagen
Dean Hagen
Dean Hagen
 
DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017
Giulio Vian
 
Enterprise software needs a PaaS
Enterprise software needs a PaaSEnterprise software needs a PaaS
Enterprise software needs a PaaS
hmalphettes
 
Intalio create and cloudfoudry - short
Intalio create and cloudfoudry - shortIntalio create and cloudfoudry - short
Intalio create and cloudfoudry - short
hmalphettes
 
DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15
Edureka!
 
Hadoop cluster using_vesper
Hadoop cluster using_vesperHadoop cluster using_vesper
Hadoop cluster using_vesper
Vengadessin Perumal
 
Migrating a Vignette Website to Drupal: Story of Multnomah County
Migrating a Vignette Website to Drupal: Story of Multnomah CountyMigrating a Vignette Website to Drupal: Story of Multnomah County
Migrating a Vignette Website to Drupal: Story of Multnomah County
Acquia
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
Synapseindiappsdevelopment
 
Using rest to create responsive html 5 share point intranets
Using rest to create responsive html 5 share point intranetsUsing rest to create responsive html 5 share point intranets
Using rest to create responsive html 5 share point intranets
InnoTech
 
Power Your Directory with openSUSE and Samba
Power Your Directory with openSUSE and SambaPower Your Directory with openSUSE and Samba
Power Your Directory with openSUSE and Samba
Don Vosburg
 
Expo - Zero to App.pptx
Expo - Zero to App.pptxExpo - Zero to App.pptx
Expo - Zero to App.pptx
😎 Anthony Kariuki
 
Building for the Cloud | NC CSDN Cloud Conference 2012
Building for the Cloud | NC CSDN Cloud Conference 2012Building for the Cloud | NC CSDN Cloud Conference 2012
Building for the Cloud | NC CSDN Cloud Conference 2012
ChinaNetCloud
 
Modern infrastructure for business data lake
Modern infrastructure for business data lakeModern infrastructure for business data lake
Modern infrastructure for business data lake
EMC
 
Wpd09 Sydney
Wpd09 SydneyWpd09 Sydney
Wpd09 Sydney
virginiachoy
 

Similar to Case study: Schoolbox - Scaling & supporting on-premises apps (20)

Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloud
 
DevOps by examples - Azure Meetup Frankfurt 06-2017
DevOps by examples - Azure Meetup Frankfurt 06-2017DevOps by examples - Azure Meetup Frankfurt 06-2017
DevOps by examples - Azure Meetup Frankfurt 06-2017
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
Testing apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation ServiceTesting apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation Service
 
Deploying systems using AWS DevOps tools
Deploying systems using AWS DevOps toolsDeploying systems using AWS DevOps tools
Deploying systems using AWS DevOps tools
 
Cloud Migration journey
Cloud Migration journeyCloud Migration journey
Cloud Migration journey
 
Dean Hagen
Dean HagenDean Hagen
Dean Hagen
 
DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017
 
Enterprise software needs a PaaS
Enterprise software needs a PaaSEnterprise software needs a PaaS
Enterprise software needs a PaaS
 
Intalio create and cloudfoudry - short
Intalio create and cloudfoudry - shortIntalio create and cloudfoudry - short
Intalio create and cloudfoudry - short
 
DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15
 
Hadoop cluster using_vesper
Hadoop cluster using_vesperHadoop cluster using_vesper
Hadoop cluster using_vesper
 
Migrating a Vignette Website to Drupal: Story of Multnomah County
Migrating a Vignette Website to Drupal: Story of Multnomah CountyMigrating a Vignette Website to Drupal: Story of Multnomah County
Migrating a Vignette Website to Drupal: Story of Multnomah County
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
Using rest to create responsive html 5 share point intranets
Using rest to create responsive html 5 share point intranetsUsing rest to create responsive html 5 share point intranets
Using rest to create responsive html 5 share point intranets
 
Power Your Directory with openSUSE and Samba
Power Your Directory with openSUSE and SambaPower Your Directory with openSUSE and Samba
Power Your Directory with openSUSE and Samba
 
Expo - Zero to App.pptx
Expo - Zero to App.pptxExpo - Zero to App.pptx
Expo - Zero to App.pptx
 
Building for the Cloud | NC CSDN Cloud Conference 2012
Building for the Cloud | NC CSDN Cloud Conference 2012Building for the Cloud | NC CSDN Cloud Conference 2012
Building for the Cloud | NC CSDN Cloud Conference 2012
 
Modern infrastructure for business data lake
Modern infrastructure for business data lakeModern infrastructure for business data lake
Modern infrastructure for business data lake
 
Wpd09 Sydney
Wpd09 SydneyWpd09 Sydney
Wpd09 Sydney
 

Recently uploaded

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

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

  • 1. CASE STUDY: SCHOOLBOX SCALING & SUPPORTING ON-PREMISES APPS Created by Sam Bailey / @that_sam_guy Infrastructure Coders meetup 2014-02-11
  • 3. INCLUDING ME SAM BAILEY @that_sam_guy sam.bailey@alaress.com.au System Administrator at Alaress DevOps wannabe Packager for Mageia linux Geek Dad
  • 4. 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
  • 5. TLDR? The school's online communication & learning space for Students, Teachers & Parents.
  • 6. 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
  • 7. 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
  • 8. WHAT WE HAD … Used SVN (poorly) Single instance for development shared between all developers Prod servers: 4 different versions of Ubuntu 1 version of CentOS Deploy with tarball & complex bash scripts Frequent regressions with minor releases Poor testing & demonstration data
  • 9. NOT YOUR GRANDMOTHER'S LAMP STACK Ubuntu LTS / CentOS Apache MySQL PHP Redis RabbitMQ WebSockets
  • 10. ALL YOUR DATA ARE BELONG TO US We connect to & pull data from many other onsite and offsite services. MSSQL IBM DB2 Active Directory Novell eDirectory SharePoint WebDav on IIS SAML Kerberos Google Calendar Microsoft Exchange Twitter RSS
  • 11. 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 (one master) Team uses prod-like Vagrant boxes for development
  • 12. JUNE 2012 -> NOW() THE RESULTS SO FAR… Fewer regressions Better deploys Happier team More clients (35+ across Aus & NZ) Good times
  • 13. WHERE WE ARE … I'm here!
  • 14. ONSITE VS CLOUD We operate and manage each server under an SLA Things we can't control: Network Power (the electricity thing) Hardware Internet Connectivity Firewall/s (!!!) Proxy DNS Skill level of onsite technical personnel Internal or outsourced IT Support
  • 15. 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!
  • 16. PET PEEVES Unreliable Ubuntu mirrors Manual signing of packages/repositories Automating upgrades of OS packages Puppet the Puppet Master Prod is all pets, not cattle
  • 18. CURRENTLY HIRING? No. But we will be at some stage ;)
  • 19. QUESTIONS, SUGGESTIONS & FEEDBACK? Onsite vs Cloud What's Next? Pet Peeves schoolbox.com.au Sam Bailey / @that_sam_guy