https://github.com/cdcgov/phdi-google-cloud
Terraform and Python code for deploying PHDI pipelines to Google Cloud Platform.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.1%) to scientific vocabulary
Keywords from Contributors
Repository
Terraform and Python code for deploying PHDI pipelines to Google Cloud Platform.
Basic Info
Statistics
- Stars: 4
- Watchers: 2
- Forks: 8
- Open Issues: 31
- Releases: 0
Metadata Files
docs/README.md
Public Health Data Infrastructure Google Cloud
- Public Health Data Infrastructure Google Cloud
General disclaimer This repository was created for use by CDC programs to collaborate on public health related projects in support of the CDC mission. GitHub is not hosted by the CDC, but is a third party website used by CDC and its partners to share information and collaborate on software. CDC use of GitHub does not imply an endorsement of any one particular service, product, or enterprise.
Overview
The Public Health Data Infrastructure (PHDI) projects are part of the Pandemic-Ready Interoperability Modernization Effort (PRIME), a multi-year collaboration between CDC and the U.S. Digital Service (USDS) to strengthen data quality and information technology systems in state and local health departments. Under the PRIME umberalla the PHDI project seeks to develop tools, often reffered to as Building Blocks, that State, Tribal, Local, and Territorial public health agencies (STLTs) can use to better handle the public health data they recieve. The purpose of this repository is to implement the Building Blocks devloped from the PHDI SDK on Google Cloud Platform (GCP). This will allow users to easily begin using these Building Blocks in their own GCP environment. For more information on using this repository beyond what is contained in this document please refer to our Getting Started doc.
Quick Start
To deploy this pipeline to your own Google Cloud environment, follow these steps.
Be sure to replace all instances of myuser in GitHub URLs with your user or organization name.
1. Install the gcloud CLI
1. Install the GitHub CLI (optional)
1. Fork this repository into your personal or organization account
1. Clone your newly forked repository to your local machine by running:
git clone https://github.com/myuser/phdi-google-cloud.git
Navigate to the new repository directory with:
cd phdi-google-cloudAuthenticate the gcloud CLI by running:
for Unix based systems
./quick-start.shfor Windows based systems
quick-start.ps1Follow these steps to set the secrets output by the previous step in your repository.
Setup a storage bucket for Terraform state by running the GitHub Action at this URL:
https://github.com/myuser/phdi-google-cloud/actions/workflows/terraformSetup.yamlCreate an environment named
devin your repository at this URL:
https://github.com/myuser/phdi-google-cloud/settings/environments/newDeploy to your newly created
devenvironment by running the GitHub Action at this URL, selectingdevas the environment input:
https://github.com/myuser/phdi-google-cloud/actions/workflows/deployment.yamlSuccess! You should now see resources in your GCP project ready for data ingestion.
Structure and Organization
There are primarily four major components to this repository.
Serverless Functions
The PHDI Building Blocks are implemented as Google Cloud Functions. Google Cloud Functions are GCP's version of serverless functions, similar to Lamabda in Amazon Web Services (AWS) and Azure Functions in Mircosoft Azure. Severless function provide a relatively simple way to run services with modest runtime duration, memory, and compute requirements in the cloud. Since they are serverless, GCP abstracts all aspects of the underlying infrastructure allowing us to simply write and excute our Building Blocks without worrying about the computers they run on. The cloud-functions directory contains Python source code for Google Cloud Functions that implement Building Blocks from the PHDI SDK.
Pipeline Orchestration
Since the Building Blocks are designed to be composable users may want to chain serveral together into pipelines. We use the Google Workflow resource to define processes that require the use of multiple Building Blocks. These workflows are defined using YAML configuration files found in the worklows directory.
Infrastructure as Code
Every resource required to use the Building Blocks and pipelines implemented in this respostory are defined using Terraform. This makes it simple for users to deploy all of the functionality provided in this repository to their own GCP environments. The Terraform code can be found in the terraform directory.
Continuous Integration and Continuous Deployment
In order to ensure high code quality and reliability we have implemented a Continuous Integation (CI) pipeline consisting of a suite of tests all new contributions must pass before they are merged into main. We have also built a Continuous Deployment (CD) pipeline that automatically deploys the code in the repositiory to linked GCP environments when changes are made. The combined CI/CD pipeline is implemented with GitHub Actions in the .github directory.
Target Users
Target users of this system include:
- Public Health Departments
- Epidemiologists who rely on health data to take regular actions
- Senior stakeholders who make executive decisions using aggregate health data
- IT teams who have to support epidemiologists and external stakeholders integrating with the PHD
- PHDs may include state, county, city, and tribal organizations
- CDC
- Employees and contractors working on CDC projects with access to a GCP environment and interest in using PHDI Building Blocks
Access Request, Repo Creation Request
- CDC GitHub Open Project Request Form [Requires a CDC Office365 login, if you do not have a CDC Office365 please ask a friend who does to submit the request on your behalf. If you're looking for access to the CDCEnt private organization, please use the GitHub Enterprise Cloud Access Request form.]
Related documents
- Open Practices
- Rules of Behavior
- Thanks and Acknowledgements
- Disclaimer
- Contribution Notice
- Code of Conduct
Standard Notices
Public Domain Standard Notice
This repository constitutes a work of the United States Government and is not subject to domestic copyright protection under 17 USC § 105. This repository is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication. All contributions to this repository will be released under the CC0 dedication. By submitting a pull request you are agreeing to comply with this waiver of copyright interest.
License Standard Notice
This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication. All contributions to this project will be released under the CC0 dedication. By submitting a pull request or issue, you are agreeing to comply with this waiver of copyright interest and acknowledge that you have no expectation of payment, unless pursuant to an existing contract or agreement.
Privacy Standard Notice
This repository contains only non-sensitive, publicly available data and information. All material and community participation is covered by the Disclaimer and Code of Conduct. For more information about CDC's privacy policy, please visit http://www.cdc.gov/other/privacy.html.
Contributing Standard Notice
Anyone is encouraged to contribute to the repository by forking and submitting a pull request. (If you are new to GitHub, you might start with a basic tutorial.) By contributing to this project, you grant a world-wide, royalty-free, perpetual, irrevocable, non-exclusive, transferable license to all users under the terms of the Apache Software License v2 or later.
All comments, messages, pull requests, and other submissions received through CDC including this GitHub page may be subject to applicable federal law, including but not limited to the Federal Records Act, and may be archived. Learn more at http://www.cdc.gov/other/privacy.html.
Records Management Standard Notice
This repository is not a source of government records, but is a copy to increase collaboration and collaborative potential. All government records will be published through the CDC web site.
Additional Standard Notices
Please refer to CDC's Template Repository for more information about contributing to this repository, public domain notices and disclaimers, and code of conduct.
Owner
- Name: Centers for Disease Control and Prevention
- Login: CDCgov
- Kind: organization
- Email: data@cdc.gov
- Location: Atlanta, GA
- Website: http://open.cdc.gov/
- Twitter: CDCgov
- Repositories: 114
- Profile: https://github.com/CDCgov
CDC's collaborative software projects to protect America from health, safety, and security threats, both foreign and in the U.S.
GitHub Events
Total
- Issues event: 8
- Issue comment event: 3
- Fork event: 2
Last Year
- Issues event: 8
- Issue comment event: 3
- Fork event: 2
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Nick Clyde | n****k@c****h | 29 |
| Daniel Paseltiner | 9****r | 25 |
| Brady Fausett at Skylight | 1****t | 25 |
| Bryan | 9****t | 3 |
| gordonfarrell | 9****l | 1 |
| Brian Lee | b****e@g****m | 1 |
| Ann Millspaugh | a****h@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: over 1 year ago
All Time
- Total issues: 40
- Total pull requests: 145
- Average time to close issues: 1 day
- Average time to close pull requests: 1 day
- Total issue authors: 5
- Total pull request authors: 7
- Average comments per issue: 0.05
- Average comments per pull request: 0.54
- Merged pull requests: 139
- Bot issues: 0
- Bot pull requests: 2
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- bamader (7)
- aathwal3 (5)
- fzhao99 (4)
- pkchau-skylight (4)
- shanice-skylight (3)
- BradySkylight (3)
- jankimo (2)
- robertandremitchell (1)
- m-goggins (1)
- mattmgoldberg (1)
Pull Request Authors
- BradySkylight (26)
- DanPaseltiner (24)
- nickclyde (23)
- bryan-skylight (3)
- millzpaugh (2)
- dependabot[bot] (1)
- gordonfarrell (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- black * development
- flake8 * development
- pytest * development
- actions/checkout v3 composite
- docker/setup-buildx-action v2 composite
- google-github-actions/auth v0 composite
- actions/checkout v2 composite
- actions/checkout v3 composite
- google-github-actions/auth v0 composite
- hashicorp/setup-terraform v1 composite
- actions/checkout v3 composite
- google-github-actions/auth v0 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- flask *
- flask *
- Flask ==2.2.2
- cloudevents ==1.6.1
- functions-framework ==3.2.0
- google-api-core ==2.8.2
- google-auth ==2.11.0
- google-cloud ==0.34.0
- google-cloud-core ==2.3.2
- google-cloud-pubsub ==2.13.6
- google-cloud-storage ==2.5.0
- google-crc32c ==1.3.0
- google-resumable-media ==2.3.3
- googleapis-common-protos ==1.56.4
- grpc-google-iam-v1 ==0.12.4
- phdi *