Loading…
Scaling Mobile Development by Treating Apps as Services
2023-10-18
- Source
- Shopify
- Published
- Added to Yomu
Summary
Shopify describes the challenge of scaling mobile development without slowing feature delivery as teams and projects adopt divergent tools, making knowledge sharing, cross-project contribution, and incident response harder. It extends ServicesDB, previously used to track production services, to treat mobile apps as services with owners and explicit expectations encoded in configuration files. Automatic checks cover ownership, contact information, CI and Shipit Mobile deployment configuration, internal-tool versioning, and production error and crash monitoring. Failed checks generate GitHub issues with remediation instructions, while the contract helps the Mobile Tooling team identify compatible projects and helps developers understand why tooling may not work. The implementation currently has basic checks, with planned work including mobile-app service-level objectives, easier project creation, and shorter build times.
Context
As Shopify’s mobile teams and projects grew, different tools and configurations made it harder for tooling teams to provide shared solutions, for developers to contribute across projects, and for responders to understand systems during incidents. Existing tooling practices worked for web services but were not enforceable or easy to audit across mobile repositories.
Approach / What changed
Shopify extended ServicesDB to model mobile apps as services with owners and defined expectations. Configuration-driven checks verify ownership, contact channels, CI and Shipit Mobile deployment, internal-tool versions, and production monitoring; failed checks automatically create GitHub issues containing instructions for remediation.
Takeaways
- ServicesDB gives each mobile app an accountable owner or team and defines contact information needed for questions, requests, and notifications.
- Automated checks verify that apps can be released through CI and Shipit Mobile, use current internal tools, and have production bug and crash tracking configured.
- When a check fails, ServicesDB creates a GitHub issue with instructions, helping project owners correct configuration and helping the Mobile Tooling team assess tooling compatibility.