
Highly scalable image storage solution with AWS Serverless at ip.labs - Part 1
Introduction to the highly scalable image storage solution with AWS Serverless at ip.labs and reason why we re-implemented this
- Automation at both the infrastructure and deployment levels
- Adoption of immutable infrastructure to eliminate hot patches
- Blue-Green deployment strategies to minimize downtime
- Introduction of independent core microservices, fostering a “you build it, you run it” mindset
- Auto-scaling policies to efficiently manage workload variations
- Lack of defined APIs and limited testability for image storage
- No clearly ownership for image storage solution
- Was still a part of the monolithic solution and was tightly coupled into many aspects of the self-written e-commerce system which made integrations to the 3rd party providers really hard
- Standard Uploads: Local uploads directly from users’ devices.
- Mobile Uploads: QR code-based uploads with optional long-term storage that extends beyond typical session duration (usually six hours).
- Project Save and Load: A feature that allows users to save intermediate designs, useful for more time-intensive products like photo books.
- Project Sharing: Users can share saved projects in various modes, allowing recipients to create copies. Future plans include collaborative editing and commenting.
- Cart Item Persistence: Cart items, both internal and external, are saved across multiple days to support integration with shared/external carts.
- Order Storage: Orders are stored for a defined period, enabling re-submission to professional labs for production and delivery in case of issues.
- Automated and Manual Cleanup: Image deletion is initiated either manually by the user or automatically upon project expiration or user logout.
- Since 2018, we have extensively experimented with AWS Serverless across small to medium applications, experiencing firsthand the benefits of AWS-managed services (Both authors of this series have given many talks about our journey at different conferences or meet ups since then).
- AWS Serverless enables rapid delivery, allowing our team to focus more on core capabilities.
- Adopting a Serverless-first approach has fostered a culture of learning and knowledge-sharing within our development teams, further solidifying AWS Serverless as our preferred development model.
- Scalability: Leveraging AWS Serverless allows us to automatically scale resources based on demand. This elasticity ensures that our system remains performant even during peak usage, providing a seamless experience for end users while reducing the need for manual scaling efforts.
- Flexibility for Future Expansion: The modular, API-driven architecture makes it easy to extend our file storage to other solutions. This flexibility supports faster adaptation to new business needs and allows for smooth integration with both our own services and external partner platforms.
- Enhanced Feature Integration: With the serverless approach, we’ve been able to introduce new features more efficiently, such as mobile uploads and project sharing. These functionalities allow users to conveniently upload photos from any device and share projects with others, all seamlessly integrated into our new storage system.
