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

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

Ladislav Prskavec

January 09, 2019
Tweet

More Decks by Ladislav Prskavec

Other Decks in Technology

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