UC Davis Information & Educational Technology (IET) needed to create a complex messaging and aggregation system with limited resources. Since its launch, aggiefeed has grown to include over 70 sources of content and has played a major role in large campus events such as Picnic Day and the Whole Earth Festival.
The Challenge
Aggiefeed, a campus information stream, was initially launched as a service within the new myucdavis site in October 2013, and it has since expanded to the UC Davis Mobile app, its own website, and other campus sites. Since its launch, it has grown to include over 70 sources of content and has played a major role in large campus events such as Picnic Day and the Whole Earth Festival.
We needed to create a complex messaging and aggregation system with limited resources. We needed the service to be able to quickly scale to meet demand and scale down to save costs, all while quickly adapting to emerging technologies and use cases.
The Solution
AWS and MongoLab were chosen because of the rich set of APIs and integrations supported by these services. They were also the most mature cloud services available to the project at its inception. We used a variety of technologies in aggiefeed, summarized below:
Amazon Web Services (AWS):
Virtual Private Cloud (VPC) - Segments each environment of our application space within the cloud (dev, test, prod)
- Elastic Compute Cloud (EC2): Virtual servers used in cloud monitoring, specifically to detect system and performance issues
- Simple Storage Service (S3): Highly available object and asset shared storage for deployment and content distribution
- Simple Email Service (SES): Used for email communications
- Simple Notification Service (SNS): Text/SMS used for deployment notifications
- Command-line tools (AWS-CLI): Build and deployment automation
- MongoLab (SAAS): Provides hosted MongoDB service: a NoSQL document-based database
Results
AWS allows us to reduce development time by using Amazon’s built-in services; commoditize the database using a SAAS solution; utilize newer platform types; support dynamic scaling and automated build and deployment using APIs; and provide a robust high availability solution by running in multiple geographic zones.
What’s Next?
To increase efficiency, we will be investigating container architectures (Amazon container service) to further reduce development and administration effort. These efforts should result in an even smaller resource footprint.