The DaVinci sandbox is an agile development environment run by HSPC using a number of cloud-based service providers:
- HSPC's Amazon Web Services (AWS) account in the us-east-1 (northern Virginia) region for most infrastructure services. (Note: Not GovCloud.)
- HL7 DaVinci's GitHub organization, in a number of repositories maintained by the DaVinci community at https://github.com/HL7-DaVinci
- HSPC's Docker Hub organization, for delivery of server-side application images.
HSPC's AWS us-east-1 environment is used exclusively for this program. As it is shared with many other HSPC efforts, management at the infrastructure level is limited to HSPC staff. The container management capability of HSPC's nterprise architecture is used for delivery and hosting of services requiring a VM. Access for DaVinci developers is allowed, though requires as HSPC ID and placement in the appropriate authorization group.
Resource Availability Requirements
The service level agreement between HSPC and HL7 DaVinci essentially states that this environment will be made available to DaVinci stakeholders and end users for development and testing purposes, but is all not a production environment. In other words, the DaVinci sandbox:
- MUST facilitate rapid collaboration amongst developers and stakeholders around official use cases. (E.g. FHIR Connectathons)
- SHALL NOT store nor operate upon PHI/PII.
- SHOULD be available during regular business hours.
- SHOULD NOT provide "high availability" (HA) qualities.
Application Types
DaVinci solutions primarily focused on FHIR and FHIR-oriented standards, i.e CDS Hooks and SMART-on-FHIR (SoF). From an operational perspective, this implies that individual applications are either server- or client-side artifacts and thus have different optimal delivery paths.
- Server-Side Applications are delivered to HSPC via Docker Hub. Individual projects are configured to automatically deployed into the sandbox.
- Client-Side Applications are deployed straight from GitHub using AWS' CodeBuild, S3, and CloudFront CDN capabilities. No EC2 instances are used to host these applications, thus they will not show up in container management.