CIE as SaaS. Why is Apiary using CircleCI?

CIE as SaaS. Why is Apiary using CircleCI?

# What do you need from your CIE?

1. Fast
2. Reliable
3. Scalable
4. Maintenance costs
5. Monitoring

55d57afc217d360cd3aad3e2a8d4e5a0?s=128

Ladislav Prskavec

January 09, 2019
Tweet

Transcript

  1. CIE as SaaS Why is Apiary using CircleCI? Ladislav Prskavec

    - HiveTalks, 9.1. 2019 1
  2. Apiary 4 CircleCI, TravisCI, AppVeyor and Wercker Ladislav Prskavec -

    HiveTalks, 9.1. 2019 2
  3. Timeline 4 2012 Started using CircleCI 4 2015 Parallel testing

    (initially 2, now 8 nodes) 4 2016 Docker 4 2017 CircleCI 2.0 (docker native) Ladislav Prskavec - HiveTalks, 9.1. 2019 3
  4. What do you need from your CIE? Ladislav Prskavec -

    HiveTalks, 9.1. 2019 4
  5. What do you need from your CIE? 1. Fast 2.

    Reliable 3. Scalable 4. Maintenance costs Ladislav Prskavec - HiveTalks, 9.1. 2019 5
  6. 1. Fast Ladislav Prskavec - HiveTalks, 9.1. 2019 6

  7. Fast 4 Do you know your time to deploy? 4

    Do you know how much time is spent in queue? 4 What is the maximum acceptable time for your build (5, 15, 30 min, 4h)? 4 Do you monitor those times or just guessing? Ladislav Prskavec - HiveTalks, 9.1. 2019 7
  8. Ladislav Prskavec - HiveTalks, 9.1. 2019 8

  9. How we solved this problem? Ladislav Prskavec - HiveTalks, 9.1.

    2019 9
  10. 4 Awareness (dashboards, metrics) 4 Groups (master, nightly) 4 Parallelism

    (speedup tests) Ladislav Prskavec - HiveTalks, 9.1. 2019 10
  11. Ladislav Prskavec - HiveTalks, 9.1. 2019 11

  12. Ladislav Prskavec - HiveTalks, 9.1. 2019 12

  13. Ladislav Prskavec - HiveTalks, 9.1. 2019 13

  14. Ladislav Prskavec - HiveTalks, 9.1. 2019 14

  15. Ladislav Prskavec - HiveTalks, 9.1. 2019 15

  16. 2. Reliable Ladislav Prskavec - HiveTalks, 9.1. 2019 16

  17. 4 Detect flaky tests (2 builds with 1 git hash)

    4 Awareness (dashboards, metrics) 4 Process 4 Consistency Ladislav Prskavec - HiveTalks, 9.1. 2019 17
  18. Retries in 2018 Ladislav Prskavec - HiveTalks, 9.1. 2019 18

  19. Ladislav Prskavec - HiveTalks, 9.1. 2019 19

  20. Process Ladislav Prskavec - HiveTalks, 9.1. 2019 20

  21. 1. Responsibility Every test and helper needs to be clearly

    assigned to some team so in case of issues the team can be reached. Ladislav Prskavec - HiveTalks, 9.1. 2019 21
  22. 2. Maintenance There's a team responsible for every test, so

    flaky and long running tests can and should be a part of the sprint work. Ladislav Prskavec - HiveTalks, 9.1. 2019 22
  23. Consistency Ladislav Prskavec - HiveTalks, 9.1. 2019 23

  24. Ladislav Prskavec - HiveTalks, 9.1. 2019 24

  25. 3. Scalable Ladislav Prskavec - HiveTalks, 9.1. 2019 25

  26. 4 How long are people waiting for CI results? 4

    Can you run your tests in parallel? 4 Can you add 10 developers into team and time to deploy will stay the same? 4 How much does your build infrastructure cost? 4 Do you have budget for build/test infrastructure? Ladislav Prskavec - HiveTalks, 9.1. 2019 26
  27. Ladislav Prskavec - HiveTalks, 9.1. 2019 27

  28. Ladislav Prskavec - HiveTalks, 9.1. 2019 28

  29. Ladislav Prskavec - HiveTalks, 9.1. 2019 29

  30. 4. Maintenance costs Ladislav Prskavec - HiveTalks, 9.1. 2019 30

  31. Operations costs 4 SaaS (Circle, flat fee: $50 per container,

    dedicated support) 4 OnPremise (Jenkins master + workers) 4 Hybrid (Wercker, use managed K8S cluster for workers) 4 Combinations (JenkinsX, Gitlab, ...) Ladislav Prskavec - HiveTalks, 9.1. 2019 31
  32. Summary 1. Fast 2. Reliable 3. Scalable 4. Maintenance costs

    5. Monitoring Ladislav Prskavec - HiveTalks, 9.1. 2019 32
  33. Q & A Ladislav Prskavec - HiveTalks, 9.1. 2019 33