Upgrade to Pro — share decks privately, control downloads, hide ads and more …

My DevOps toolsets

My DevOps toolsets

JAWS-UG Yokohama #16
May 21, 2019

Introduction to some of my DevOps toolsets

C21584e232717e771226626c0bc2f30c?s=128

Michael H. Oshita

May 21, 2019
Tweet

Transcript

  1. My DevOps toolsets @ijin May 21, 2019 JAWS-UG Yokohama #16

  2. Michael H. Oshita (@ijin) • Cloud Engineer/ Architect • From

    Japan/US • AWS community • Serverless community • https://ijin.github.io
  3. AGENDA • Infrastructure as Code • Continuous Integration • Continuous

    Testing • Process Automation
  4. Infrastructure as Code

  5. Terraform • Common - common infra like rds parameter groups,

    IAM service roles, CircleCI users, etc. • Modules - modules based by service • Main - simply call modules
  6. Terraform • Retreive variables from common state file • Use

    terraform workspace for env (stg/prd) • Pass variables from module outputs
  7. Terraform • Retreive variables from common state file or ssm

    parameter store • Use terraform workspace for env (stg/prd) • Pass variables from module outputs
  8. Terraform SSM parameter store Chamber - CLI to manage secrets

    (https://github.com/segmentio/chamber)
  9. Continuous Integration

  10. CircleCI

  11. CircleCI

  12. .circleci/config.yml

  13. .circleci/config.yml

  14. ecspresso a deployment tool for Amazon ECS (https://github.com/kayac/ecspresso)

  15. Continuous Integration

  16. Continuous Integration

  17. Continuous Integration

  18. Continuous Testing Test environments per git branch!

  19. On-Demand ECS environments

  20. Branch A

  21. Branch B

  22. Branch C

  23. Create env • Create target group • Create ALB listener

    • Create ECS service • Deploy if necessary
  24. Create env (reality) • Create target group • Create ALB

    listener • Create ECS service…….wait • Deploy if necessary
  25. Destroy env • Stop tasks • Delete service • Delete

    listener • Delete target group
  26. Destroy env (reality) • Stop tasks…wait…wait…. • Delete service…..wait •

    Delete listener • Delete target group
  27. Create env w/ step fns

  28. Destroy env w/ step fns

  29. Step Functions Serverless Step Functions plugin by @horike37 https://github.com/horike37/serverless-step-functions sls

    plugin install -n serverless-step-functions
  30. Step Functions JSON =( Not something a human should touch

  31. Step Functions YAML =) Somewhat better… ..

  32. On-Demand env!! • Devs Happy :D • Ops Happy :D

  33. Why Serverless (Framework)? • Concurrency • Scalability • Less maintenance,

    more coding • Easy deployments (w/ frameworks)
  34. Process Automation Using chat bots to create release pull requests!

  35. Create pull request

  36. Pull request

  37. Deploy!

  38. ruboty-github_pr_release Sample on github: https://github.com/ijin/ruboty- github_pr_release

  39. Thanks!