Introduction to Spinnaker Managed Pipeline Templates

46fdd2ebc85d68659b83d5eb5c6a49aa?s=47 Keke
February 18, 2020

Introduction to Spinnaker Managed Pipeline Templates

Hey, brief introduction of Spinnaker Managed Pipeline Templates to enhance your CI/CD quality

46fdd2ebc85d68659b83d5eb5c6a49aa?s=128

Keke

February 18, 2020
Tweet

Transcript

  1. Introduction to Spinnaker Pipeline Templates Presented by Keisuke Yamashita Merpay

    SRE In team knowledge-share
  2. About me Keisuke Yamashita(Slack:@keke) Hello. I'm from new grad Merpay

    SRE Introducing Spinnaker Pipeline Template | KeisukeYamashita
  3. Introducing Spinnaker Pipeline Template | KeisukeYamashita Outline TODAY'S TOPICS What's

    Spinnaker? Spinnaker Architecture and how it works Spinnaker Managed Pipeline Template(MPT) The pros/cons of MPT How to create Spinnaker Pipeline Template MPT Tips 1. 2. 3. 4. 5. 6.
  4. What's Spinnaker? IT'S A MICROSERVICE

  5. What's Spinnaker Spinnaker is an open-source, multi-cloud continuous delivery platform

    that helps you release software changes with high velocity and confidence. Introducing Spinnaker Pipeline Template | KeisukeYamashita
  6. Management VISUALIZE CLUSTER Two features Deployment CI/CD

  7. Management VISUALIZE CLUSTER Two features Deployment CI/CD Today's topic

  8. Spinnaker Architecture Introducing Spinnaker Pipeline Template | KeisukeYamashita

  9. Spinnaker Architecture spin-gate orca clouddriver echo igor front50 rosco fiat

    spin-deck Introducing Spinnaker Pipeline Template | KeisukeYamashita
  10. Spinnaker Architecture spin-gate orca clouddriver echo igor front50 rosco fiat

    spin-deck Introducing Spinnaker Pipeline Template | KeisukeYamashita
  11. Spinnaker Architecture spin-gate orca clouddriver echo igor front50 rosco fiat

    spin-deck Exposed to Internet Has Ingress Has Ingress Introducing Spinnaker Pipeline Template | KeisukeYamashita
  12. Spinnaker Architecture spin-gate orca clouddriver echo igor front50 rosco fiat

    spin-deck UI that the developer is using. Written in Angular + React. You can also extend the UI with a customize deck WEB UI Introducing Spinnaker Pipeline Template | KeisukeYamashita
  13. Spinnaker Architecture orca clouddriver echo igor front50 rosco fiat spin-gate

    spin-deck All requests are first handled to this API gateway. I has logics in here. Written by Java. API GATEWAY Introducing Spinnaker Pipeline Template | KeisukeYamashita
  14. Spinnaker Architecture clouddriver echo igor front50 rosco fiat spin-gate spin-deck

    orca Manages the pipeline execution's consistency even in distributed system like Spinnaker on Kubernetes. Written in JAVA. Stateless. ORCHESTRATION ENGINE Introducing Spinnaker Pipeline Template | KeisukeYamashita
  15. Spinnaker Architecture clouddriver echo igor front50 rosco fiat spin-gate spin-deck

    orca Echo handles the event for sending the events and handling the webhooks from Github MESSAGING BUS Introducing Spinnaker Pipeline Template | KeisukeYamashita
  16. echo front50 rosco fiat spin-gate orca igor Spinnaker Architecture clouddriver

    spin-deck Igor is in charge for handling trigger events from Travis or Jenkins TRIGGER PIPELINE Introducing Spinnaker Pipeline Template | KeisukeYamashita
  17. echo front50 rosco fiat spin-gate orca igor Spinnaker Architecture clouddriver

    spin-deck Clouddriver calls the cloud provider(e.g. Kubernetes, GCE) CALL CLOUD PROVIDER Introducing Spinnaker Pipeline Template | KeisukeYamashita
  18. Spinnaker Architecture clouddriver echo front50 rosco fiat spin-gate spin-deck orca

    igor Fiat is a authentication service. AUTHENTICATION
  19. Spinnaker Architecture clouddriver echo front50 rosco fiat spin-gate spin-deck orca

    igor Creats artifacts BAKERY
  20. echo front50 rosco fiat spin-gate orca igor Spinnaker Architecture clouddriver

    spin-deck Responsible for storing metadata & configs METADATA STORAGE
  21. How it works Introducing Spinnaker Pipeline Template | KeisukeYamashita

  22. Save a pipeline How it works 1. Introducing Spinnaker Pipeline

    Template | KeisukeYamashita
  23. echo front50 rosco fiat spin-gate orca igor How it works

    clouddriver spin-deck Save the pipeline 1.
  24. echo front50 rosco fiat spin-gate orca igor How it works

    clouddriver spin-deck Save the pipeline 1.
  25. echo front50 rosco fiat spin-gate orca igor How it works

    clouddriver spin-deck Save the pipeline 1.
  26. echo front50 rosco fiat spin-gate orca igor How it works

    clouddriver spin-deck 2. Execute the pipeline front50 Save application config
  27. How it works 2. Execute a pipeline Introducing Spinnaker Pipeline

    Template | KeisukeYamashita
  28. echo front50 rosco fiat spin-gate orca igor How it works

    clouddriver spin-deck 2. Execute the pipeline ① Invoke a pipeline exection
  29. front50 rosco fiat spin-gate orca How it works clouddriver spin-deck

    2. Execute the pipeline ② Gets application config echo igor
  30. front50 rosco fiat spin-gate orca How it works clouddriver spin-deck

    2. Execute the pipeline ③ Trigger pipeline echo igor
  31. front50 rosco fiat spin-gate orca How it works clouddriver spin-deck

    2. Execute the pipeline ④ Request for k8s echo igor
  32. front50 rosco fiat spin-gate orca ⑤ kubectl apply How it

    works clouddriver spin-deck 2. Execute the pipeline echo igor
  33. Spinnaker Managed PipelineTemplate(MPT)?

  34. Spinnaker Pipeline Spinnaker Pipeline defines a deployment pipeline Introducing Spinnaker

    Pipeline Template | KeisukeYamashita
  35. Spinnaker Pipeline(JSON) Spinnaker Pipeline is defined by JSON Introducing Spinnaker

    Pipeline Template | KeisukeYamashita
  36. Spinnaker Pipeline(JSON) Introducing Spinnaker Pipeline Template | KeisukeYamashita

  37. Spinnaker Pipeline Template Pipeline Template + Pipeline = { "service":

    "nginx" } Pipeline variables Introducing Spinnaker Pipeline Template | KeisukeYamashita
  38. + Spinnaker Managed Pipeline Template Pipeline Template v1 Pipeline v1

    = { "service": "nginx" } Pipeline variables Pipeline Template v1 Introducing Spinnaker Pipeline Template | KeisukeYamashita
  39. + Spinnaker Managed Pipeline Template Pipeline Template v1 Pipeline v1

    = { "service": "nginx" } Pipeline variables Pipeline Template v1 Pipeline v2 Automatically updates the pipelines Introducing Spinnaker Pipeline Template | KeisukeYamashita
  40. + Spinnaker Managed Pipeline Template Pipeline Template v1 Pipeline v1

    = { "service": "nginx" } Pipeline variables Pipeline Template v1 Pipeline v2 Automatically updates the pipelines Sync Introducing Spinnaker Pipeline Template | KeisukeYamashita
  41. Spinnaker Managed Pipeline Template In application dashboard(after enabling v2 UI)

    Introducing Spinnaker Pipeline Template | KeisukeYamashita
  42. Spinnaker Managed Pipeline Template Choose pipeline template Introducing Spinnaker Pipeline

    Template | KeisukeYamashita
  43. Spinnaker Managed Pipeline Template Configure pipeline variables Introducing Spinnaker Pipeline

    Template | KeisukeYamashita
  44. Spinnaker Managed Pipeline Template Pipeline make :) Introducing Spinnaker Pipeline

    Template | KeisukeYamashita
  45. How to create MPT

  46. Spin, Spinnaker CLI tool Introducing Spinnaker Pipeline Template | KeisukeYamashita

  47. Spin, Spinnaker CLI tool Download Spinnaker Pipeline $ spin pipeline

    get \ --name <PIPELINE_NAME> \ --application <APPLICATION_NAME> Introducing Spinnaker Pipeline Template | KeisukeYamashita
  48. Spin, Spinnaker CLI tool Create Pipeline Template JSON { "schema":

    "v2", "application: "<APPLICATION_NAME>", "pipeline": <PASTE_DOWNLOADED_PIPELINE>, "triggers: "<PIPELINE_TRIGGER_CONFIG>", "variables": [<PIPELINE_VARIABLES>] } Introducing Spinnaker Pipeline Template | KeisukeYamashita
  49. Spin, Spinnaker CLI tool Upload Pipeline Template JSON $ spin

    pipeline-template save \ --file <PATH_TO_PIPELINE_TEMPALTE> Introducing Spinnaker Pipeline Template | KeisukeYamashita
  50. Demo

  51. Pros of MPT

  52. Pros MPT Introducing Spinnaker Pipeline Template | KeisukeYamashita

  53. Pros MPT Reuseability Introducing Spinnaker Pipeline Template | KeisukeYamashita

  54. Pros REUSABILITY Pipeline Template Deploy Nginx Pipeline { "image": "nginx"

    } Pipeline variables { "image": "redis" } Pipeline variables { "image": "apache hive" } Pipeline variables Deploy Redis Pipeline Deploy Hive Pipeline
  55. Pros MPT Reuseability Immutable Introducing Spinnaker Pipeline Template | KeisukeYamashita

  56. Pros IMMUTABLE Can't change anything :D Introducing Spinnaker Pipeline Template

    | KeisukeYamashita
  57. Pros MPT Reuseability Immutable Managed Introducing Spinnaker Pipeline Template |

    KeisukeYamashita
  58. + Pipeline Template v1 Pipeline v1 = { "service": "nginx"

    } Pipeline variables Pipeline Template v1 Pipeline v2 Automatically updates the pipelines Sync Pros MANAGED
  59. Pros MANAGED https://blog.spinnaker.io/managed-delivery-evolving-continuous-delivery-at-netflix-eb74877fb33c

  60. Thank you Have a nice journey with Spinnaker

  61. All pictures are from Upslash https://unsplash.com/