Improvement: Use Docker or Packer for tests and creating build package
- Dominant language
- Python
- Stars
- 2.9k
- Forks
- 324
- PR merge metrics
- No merged PRs in 30d
Description
## Background
StreamAlert currently uses the local dev system for installing all dependencies before packaging (read: zipping) and sending to S3 for use in Lambda. This can result in non-natively compiled libraries which cause things to break in the Lambda environment
## Desired Change
Move to using Docker or Packer (whichever is more light weight is probably best) to create an environment that mimics AWS Lambda for performing all tests and packaging StreamAlert for deployment (including building all dependencies). A sample of a POC Dockerfile can be found [here](https://gist.github.com/ryandeivert/4e9be25830d8d67b106f56ef6fdc68de).
Contributor guide
Research direction
Start by tracing the current local dependency installation, testing, packaging, and S3 deployment flow described in the issue, then review the linked proof-of-concept Dockerfile. Done means tests and build packaging run in an AWS Lambda-like environment, dependencies are built there, and the resulting package can be deployed without native-library incompatibilities.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, docker, python
- Domain
- build-system, cloud, devops, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100