Bud Siddhisena
E: bud@topsteptrader.com , bud@geekaholic.org
L: https://www.linkedin.com/in/budsiddhisena
GH: https://github.com/geekaholic
BL: http://www.geekaholic.org
Platform Engineer, TopStepTrader - Funding traders to trade safely
without risking their own capital!
Enjoys working on ideas with potential for positive change.
Encouraged to think of functionality in a deeper realm of UX. 22+ yrs
of experience at many startups. Ready to contribute to any aspect of
product life-cycle and willing to learn what is needed to accomplish it.
Creating JIT QA Environments
What we’re trying to solve...
“Provide on demand infrastructure to parallelly test
different feature branches while isolating resources
and automating redeploys in order to enable
develop-test(-develop) lifecycle”
High-level solution
Our solution
Grand tour ...
Visit CodeBuild Project
Enter branch name
Watch the pipeline
Access QA instance
Deployed to ECS
Finally destroy ...
Key building blocks (i.e stack)
● Make App
configurable via
environment
variables
● Dockerize App
● Local testing via
docker-compose
● IaC Build / Pipeline
● IaC ECS Cluster +
Traefik
● IaC of creation and
deletion of QA ECS
container instances
● Terraform
workspaces +
remote state
● ECR build script,
configurable via
docker build args.
● ECS task definition
with CPU/RAM
consideration
● ECS service
definition
● Dynamic config via
docker labels
● Handles routing
http/https requests
● Powerful
middleware if
needed
Questions & Keep in
touch
E: bud@topsteptrader.com , bud@geekaholic.org
L: https://www.linkedin.com/in/budsiddhisena
GH: https://github.com/geekaholic
BL: http://www.geekaholic.org

JIT qa-docker

  • 1.
    Bud Siddhisena E: bud@topsteptrader.com, bud@geekaholic.org L: https://www.linkedin.com/in/budsiddhisena GH: https://github.com/geekaholic BL: http://www.geekaholic.org Platform Engineer, TopStepTrader - Funding traders to trade safely without risking their own capital! Enjoys working on ideas with potential for positive change. Encouraged to think of functionality in a deeper realm of UX. 22+ yrs of experience at many startups. Ready to contribute to any aspect of product life-cycle and willing to learn what is needed to accomplish it.
  • 2.
    Creating JIT QAEnvironments
  • 3.
    What we’re tryingto solve... “Provide on demand infrastructure to parallelly test different feature branches while isolating resources and automating redeploys in order to enable develop-test(-develop) lifecycle”
  • 4.
  • 5.
  • 6.
    Grand tour ... VisitCodeBuild Project
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
    Key building blocks(i.e stack) ● Make App configurable via environment variables ● Dockerize App ● Local testing via docker-compose ● IaC Build / Pipeline ● IaC ECS Cluster + Traefik ● IaC of creation and deletion of QA ECS container instances ● Terraform workspaces + remote state ● ECR build script, configurable via docker build args. ● ECS task definition with CPU/RAM consideration ● ECS service definition ● Dynamic config via docker labels ● Handles routing http/https requests ● Powerful middleware if needed
  • 13.
    Questions & Keepin touch E: bud@topsteptrader.com , bud@geekaholic.org L: https://www.linkedin.com/in/budsiddhisena GH: https://github.com/geekaholic BL: http://www.geekaholic.org