Kent State University built and launched KSUMobile last summer using the OutSystems platform, and in only 5 months. Everything was great during the summer beta test. But, when fall semester started, staff and students returned, everyone launched the app at the same, and everything was no longer great.Join us as we share lessons learned around readiness and contingency planning. Bonus! We will demo our custom-caching and load-testing solutions.
2. "Build, Launch, Fail, Learn, Refactor, Repeat"
@ insjaleel1@kent.edu /sameerjaleel
Sameer Jaleel
Executive Director | Systems Development, IT. Kent State University
@ inwrobins@kent.edu /walter-robins
Walt Robins
App Developer | Systems Development, IT. Kent State University
7. "Build, Launch, Fail, Learn, Refactor, Repeat"
Our Portfolio
Application
Management
Banner Access
Request
CAB Checklist Commencement
Cost Transfer
Workflow
Detail Code
Request
Workflow
Destination
Kent State
DocuSign
Management
Election Voting
Manager
EmailTemplate
Manager
Employee
Transaction
Workflow
Faculty PC
Refresh
Financial Aid
Adjustment
Request
Gift Reporting
Form
Global
Education
Contract
Management
Grade Push
Guest
Accounts
Hiring
Notification
System
Homecoming
Court
Application
Homecoming
Web
Honors
College
Incomplete
Mark
Job
Descriptions
Kent State
Help
Kent HC
KSU Approver
Maintenance
KSU Kickoff
Mobile
KSU Kickoff
Web
KSUMobile KSU Programs
KSU Proxy
Maintenance
KSU SDLC
KSU Workflow
Management
Load Testing Log Analyzer
Manage My
Program
Meal Plan Sign
Up
MealPlanTest
Mobile
Caching
Console
Mobile
Featured
Events
Multimedia
Device
Notifications PD Feedback Pioneer
Project
Request Form
Regional
Security
Reporting
Request for
Additional
Employment
Request for
Leave of
Absence
Salary
Redistribution
Workflow
Scantron Self Service
Software
Catalog
Student
Organizations
Tech Tools Threatline Tuition Waiver USG Elections
8. "Build, Launch, Fail, Learn, Refactor, Repeat"
This Photo by Unknown Author is licensed under CC BY-ND
BTS preparations - typically
9. "Build, Launch, Fail, Learn, Refactor, Repeat"
BTS preparations - typically
● Upscale Servers: DB and Front-End
● Monitor servers
● Direct line with HelpDesk
10. "Build, Launch, Fail, Learn, Refactor, Repeat"
First day of BTS Fall 2018
● Web Apps not responding
● Mobile apps crashing upon initial load
● Front-end servers frequently flatlined
11. "Build, Launch, Fail, Learn, Refactor, Repeat"
Analysis – What did we learn?
● No “graceful” failure
● External system/data integrations come at a cost
● Database tables need clean up
● Data retention policies need enforced
● Portfolio had grown without oversight
● Plug holes in our Architecture
13. "Build, Launch, Fail, Learn, Refactor, Repeat"
Near-Term Focus
● Is there a single root-cause?
■ Yes there was!
● Introduce
■ Caching Strategy
■ Introduce Load Testing Solution
● Repair
■ Oracle Connection Management Strategy
14. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
Standard Mobile Data Pattern
Screen Load
*ASYNC* Trigger Offline Data Sync
Render Local Data
Refresh Local Data
15. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
Standard Mobile Data Pattern
Screen Load
*ASYNC* Trigger Offline Data Sync
Render Local Data
Refresh Local Data
What’s this?
16. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
Background Data Sync
Might be…
Data from an OutSystems server entity
Data from a custom database connection
Data from a REST or SOAP endpoint
An action that contains a mix of the above
17. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
“But it was all going so well!”
Your Phone
The server
18. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
“Why not just optimize queries, follow best
practices, upscale…?”
Server actions don’t “just work”
Default Oracle connection pool limits
No direct control over some endpoints
Some queries are just expensive
19. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
The Oracle Connection Pool
100 Connections
90 Second Timeouts
5 Retries
1 Thread
20. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
The Fix
Set custom connection string with an
increased pool size, quick timeout
21. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
“Just use the built-in caching on server actions,
REST calls, aggregates”
Forces handling of worst-case scenario
No run-time control or fine-tuning
Traffic is still routed through the front-end server
22. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
The solution: Dynamic Caching
Add logic here to
decide whether to
call the server for
fresh data
Screen Load
*ASYNC* Trigger Offline Data Sync
Render Local Data
Refresh Local Data
23. "Build, Launch, Fail, Learn, Refactor, Repeat"| "Build, Launch, Fail, Learn, Refactor, Repeat"
The solution: Dynamic Caching
Screen Load
*ASYNC* Trigger Offline Data Sync
Render Local Data
Refresh Local Data
Time
to
sync?
Yes
No
25. "Build, Launch, Fail, Learn, Refactor, Repeat"
Improved BTS/High traffic preparations
● Performance Monitoring
■ OutSystems Service Center
■ AWS CloudWatch
■ Fabric/Firebase
■ New Relic
■ SolarWinds
26. "Build, Launch, Fail, Learn, Refactor, Repeat"
Continuous Improvement Practices
Code Review Code Review
Monitor
Monitor Service Center Logs
• Recurrences
Compile Compile a list of usual suspects
Log
Long-term trend analysis
• Splunk
27. "Build, Launch, Fail, Learn, Refactor, Repeat"
Managing the Portfolio
IT Governance
Differentiating Product vs. Project
• Product:
• Perpetual Project cycles
• Product Ownership
• Continuous Lifecycle
• Clear Communication and Feedback Loop (e.g. InSights)
• Highly Agile. Hardly Waterfall
• Project:
• Outcome driven (e.g. Compliance)
• Less Agile. More Waterfall
28. "Build, Launch, Fail, Learn, Refactor, Repeat"
Managing the Portfolio
Profile each app for:
• Application Object footprint
• Business Criticality rating
• Primary Audience
• # of expected users / peak user periods
• Stability
• Utilization
• UX Score
29. "Build, Launch, Fail, Learn, Refactor, Repeat"
Currently in the pipeline:
• Pre-Student Experience
• Message Center
• Intelligent Planner
• Digital Assistant
KSUMobile
• Story Telling
• Augmented Reality Pilot
May4 50th
Commemoration
Mobile App
30. "Build, Launch, Fail, Learn, Refactor, Repeat"
Our next-gen architecture
Users and
Devices
Digital Channels
Shadow IT
applications
User Entitlements
Information
Architecture
Data Architecture
Business Process
Library
Systems of
Record
Network &
Firewall
IT and Data
Governance
Introduction
How many other Higher Ed in the audience?
Let’s profile the audience a bit:
On OutSystems currentl?
Building mobile apps currently?
Building web apps currently?
Talk about a couple of apps in detail
Small effort – Big Impact – type stories