Duration: | 2014 - current |
Technologies: | AWS, Python, Django, Go, PostgreSQL, DynamoDB, Stripe, Sentry |
Collaborators: | Roy Wiggins |
Website: | yarracloud.com |
YarraCloud is a cloud-driven reconstruction service for offering computationally intensive MRI reconstruction algorithms to imaging centers that lack the resources to operate own HPC or GPU servers onsite. It integrates seamlessly into the Yarra offline reconstruction (ORT) client, so that end users experience no difference if reconstructions run locally or in the cloud.
Upload of raw data into the cloud and download of the reconstructed images is performed automatically by the “YarraCloud Agent”, which is running as background task on the MRI host system. Prior to the cloud upload, the raw data is de-identified. Patient health information is kept securely on the MRI scanner and reinserted into the DICOM files before storing the images in a local PACS.
Reconstruction settings can be configured through a user-friendly web-based administration portal, which furthermore allows monitoring the status of tasks and reviewing the service utilization. Compute resources are metered on a per-user basis and charged to a credit card associated with the site performing the reconstructions. To save operational costs, sites can adjust the size of the compute instances on a per-protocol basis. For applications without need for immediate availability, spot instances can be selected which offer significant discounts.
YarraCloud has been built using Amazon Web Services (AWS) as cloud provider. Internally, it uses a containerized version of the YarraServer software, which is running on AWS EC2 instances that are dynamically started and discarded. AWS Lambda is used to provide a serverless API backend, AWS Batch for the container orchestration and state handling, AWS DynamoDB and AWS RDS for the data storage, Django for the administration interface, AWS S3 for file storage, AWS Go SDK for client-side file transfers, Stripe for payment processing, and Sentry for monitoring the service health. Moreover, AWS CloudFormation is used for configuration management and deployment in different AWS regions.