airbnb / airbnb/streamalert

Improvement: Use Docker or Packer for tests and creating build package

Open
#487 0 comments 0 reactions 0 assignees View on GitHub
deployment improvement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.