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

KubeCon EU 2018: Write Less Code, Use More Tools

KubeCon EU 2018: Write Less Code, Use More Tools

Danielle Tomlinson

May 02, 2018
Tweet

More Decks by Danielle Tomlinson

Other Decks in Technology

Transcript

  1. Write Less Code,
    Use More Tools
    @dantoml
    1 — KubeCon EU - @dantoml [she/her] !

    View Slide

  2. $ whoami
    2 — KubeCon EU - @dantoml [she/her] !

    View Slide

  3. 3 — KubeCon EU - @dantoml [she/her] !

    View Slide

  4. What am I covering?
    4 — KubeCon EU - @dantoml [she/her] !

    View Slide

  5. What am I covering?
    → Why we replatformed
    4 — KubeCon EU - @dantoml [she/her] !

    View Slide

  6. What am I covering?
    → Why we replatformed
    → Why we chose to run Kubernetes and Nomad
    4 — KubeCon EU - @dantoml [she/her] !

    View Slide

  7. What am I covering?
    → Why we replatformed
    → Why we chose to run Kubernetes and Nomad
    → How our deployment has evolved
    4 — KubeCon EU - @dantoml [she/her] !

    View Slide

  8. CircleCI 2.0
    5 — KubeCon EU - @dantoml [she/her] !

    View Slide

  9. Why 2.0?
    6 — KubeCon EU - @dantoml [she/her] !

    View Slide

  10. The industry was
    changing
    7 — KubeCon EU - @dantoml [she/her] !

    View Slide

  11. !
    8 — KubeCon EU - @dantoml [she/her] !

    View Slide

  12. Requirements
    9 — KubeCon EU - @dantoml [she/her] !

    View Slide

  13. Build Infrastructure
    10 — KubeCon EU - @dantoml [she/her] !

    View Slide

  14. LXC
    11 — KubeCon EU - @dantoml [she/her] !

    View Slide

  15. Scheduling
    12 — KubeCon EU - @dantoml [she/her] !

    View Slide

  16. Operational Simplicity
    13 — KubeCon EU - @dantoml [she/her] !

    View Slide

  17. Service orchestration
    14 — KubeCon EU - @dantoml [she/her] !

    View Slide

  18. Mesos
    15 — KubeCon EU - @dantoml [she/her] !

    View Slide

  19. Not right for us
    16 — KubeCon EU - @dantoml [she/her] !

    View Slide

  20. 17 — KubeCon EU - @dantoml [she/her] !

    View Slide

  21. Fast Scheduling
    18 — KubeCon EU - @dantoml [she/her] !

    View Slide

  22. Nomad
    Pluggable
    19 — KubeCon EU - @dantoml [she/her] !

    View Slide

  23. Nomad
    Cooperative API
    20 — KubeCon EU - @dantoml [she/her] !

    View Slide

  24. Nomad
    Still Evolving
    21 — KubeCon EU - @dantoml [she/her] !

    View Slide

  25. Nomad
    Great for our jobs, but...
    22 — KubeCon EU - @dantoml [she/her] !

    View Slide

  26. One size doesn't fit all?
    23 — KubeCon EU - @dantoml [she/her] !

    View Slide

  27. 24 — KubeCon EU - @dantoml [she/her] !

    View Slide

  28. Kubernetes
    Community
    25 — KubeCon EU - @dantoml [she/her] !

    View Slide

  29. Kubernetes
    Rolling Updates and
    Readiness Checks
    26 — KubeCon EU - @dantoml [she/her] !

    View Slide

  30. Kubernetes
    Extensibility
    27 — KubeCon EU - @dantoml [she/her] !

    View Slide

  31. Nomad is part of our
    product
    28 — KubeCon EU - @dantoml [she/her] !

    View Slide

  32. Kubernetes is for scaling
    our product
    29 — KubeCon EU - @dantoml [she/her] !

    View Slide

  33. 30 — KubeCon EU - @dantoml [she/her] !

    View Slide

  34. What is nomad?
    31 — KubeCon EU - @dantoml [she/her] !

    View Slide

  35. nomad-server
    32 — KubeCon EU - @dantoml [she/her] !

    View Slide

  36. Nomad
    Persistence
    33 — KubeCon EU - @dantoml [she/her] !

    View Slide

  37. Nomad
    Service Discovery
    34 — KubeCon EU - @dantoml [she/her] !

    View Slide

  38. Consul
    35 — KubeCon EU - @dantoml [she/her] !

    View Slide

  39. Multiple clusters
    36 — KubeCon EU - @dantoml [she/her] !

    View Slide

  40. Kubernetes + StatefulSet
    37 — KubeCon EU - @dantoml [she/her] !

    View Slide

  41. nomad-clients
    38 — KubeCon EU - @dantoml [she/her] !

    View Slide

  42. Scaling Clients
    39 — KubeCon EU - @dantoml [she/her] !

    View Slide

  43. Draining Clients
    40 — KubeCon EU - @dantoml [she/her] !

    View Slide

  44. Health Checks
    41 — KubeCon EU - @dantoml [she/her] !

    View Slide

  45. Multi-Cluster
    42 — KubeCon EU - @dantoml [she/her] !

    View Slide

  46. Terraform, terraform,
    terraform
    43 — KubeCon EU - @dantoml [she/her] !

    View Slide

  47. Helm
    44 — KubeCon EU - @dantoml [she/her] !

    View Slide

  48. Namespaces
    45 — KubeCon EU - @dantoml [she/her] !

    View Slide

  49. Service Discovery
    46 — KubeCon EU - @dantoml [she/her] !

    View Slide

  50. !"✨
    47 — KubeCon EU - @dantoml [she/her] !

    View Slide

  51. Managing outages
    48 — KubeCon EU - @dantoml [she/her] !

    View Slide

  52. The Symptoms
    49 — KubeCon EU - @dantoml [she/her] !

    View Slide

  53. !
    50 — KubeCon EU - @dantoml [she/her] !

    View Slide

  54. Declaring Bankruptcy
    51 — KubeCon EU - @dantoml [she/her] !

    View Slide

  55. Follow up
    52 — KubeCon EU - @dantoml [she/her] !

    View Slide

  56. The next day
    53 — KubeCon EU - @dantoml [she/her] !

    View Slide

  57. Analysis
    54 — KubeCon EU - @dantoml [she/her] !

    View Slide

  58. for _, job := range gcJob {
    req := structs.JobDeregisterRequest{
    JobID: job.ID,
    Purge: true,
    }
    ...
    }
    55 — KubeCon EU - @dantoml [she/her] !

    View Slide

  59. !
    56 — KubeCon EU - @dantoml [she/her] !

    View Slide

  60. nomad-gc
    57 — KubeCon EU - @dantoml [she/her] !

    View Slide

  61. Nomad 0.8
    58 — KubeCon EU - @dantoml [she/her] !

    View Slide

  62. !
    59 — KubeCon EU - @dantoml [she/her] !

    View Slide

  63. thank you.
    @dantoml
    60 — KubeCon EU - @dantoml [she/her] !

    View Slide