1 of 19

Jenkins Infra

2 of 19

Partnership with Microsoft

3 of 19

Partnership with Microsoft

  • A 3 year partnership
  • Distribution of Jenkins via the Azure CDN
  • Budget allotted for all Azure services, e.g.
    • Azure Compute
    • Azure Container Service
    • Azure Blob Storage
    • etc

4 of 19

The Scope

5 of 19

Existing Services

  • JIRA
  • Confluence
  • mirrors.jenkins.io / Jenkins distribution
  • ci.jenkins.io
  • Puppet Enterprise
  • Census / Usage Data Collection
  • Rating
  • Account Management / LDAP
  • plugins.jenkins.io
  • DNS

6 of 19

Existing Services

  • ???
  • Other things I am forgetting
  • ???

7 of 19

Expansion of Services

  • Growth of ci.jenkins.io
    • New Azure capacity means consolidation is now possible
  • trusted.ci.jenkins.io
    • Hiding!
    • Enables better automation of Jenkins core releases
  • Operations Management Suite
    • Log aggregation
    • Operational Metrics
  • Azure Container Service
    • Containerize all the things

8 of 19

Expansion of Services - Containerize Things

  • Azure Container Service
    • Which apps should be containers?
  • Managing Stateful Applications
    • Kubernetes Persistent Volumes
  • Delivery process for containerized apps
    • Jenkins-based Orchestration

9 of 19

Expansion of Services - Containerize Things

  • JIRA
  • Confluence
  • mirrors.jenkins.io / Jenkins distribution
  • ci.jenkins.io
  • Puppet Enterprise
  • Census / Usage Data Collection
  • Rating
  • Account Management / LDAP
  • plugins.jenkins.io
  • DNS

10 of 19

The Plan

11 of 19

The Plan

12 of 19

The Progress

13 of 19

The Progress

  • Dynamic Jenkins agents provisioned from ci.jenkins.io
  • Partial delivery of Jenkins core via Azure Storage
    • Debian
    • Red Hat
    • openSUSE
  • Preparing production Kubernetes service
  • Terraforming infrastructure

14 of 19

Terraform Pipeline

15 of 19

Terraform Pipeline

Plan: 0 to add, 5 to change, 0 to destroy.�[Pipeline] }�[Pipeline] // ansiColor�[Pipeline] }�[Pipeline] // withCredentials�[Pipeline] }�[Pipeline] // node�[Pipeline] }�[Pipeline] // stage�[Pipeline] stage�[Pipeline] { (Review)�[Pipeline] timeout�Timeout set to expire in 30 min�[Pipeline] {�[Pipeline] input�Apply the planned updates to prod?�Apply or Abort�Cancelling nested steps due to timeout�[Pipeline] }�[Pipeline] // timeout�[Pipeline] }�[Pipeline] // stage�[Pipeline] End of Pipeline�Rejected by SYSTEM�Finished: ABORTED

16 of 19

The Challenges

17 of 19

The Challenges

  • Azure is different
    • Some words are different
    • Some tools are different
  • Classic “to the cloud” migration challenges
    • What stays as “infrastructure” vs. “platform as a service”
    • Balancing control versus convenience
  • Security - New Authentication / Authorization practices
  • Last little bits of ASM vs. ARM

18 of 19

Outstanding Issues

  • Staffing/timing
    • Most of our effort is in maintenance not new services
    • Migration to Azure is important, but mostly under the covers
      • Some key fundamental pieces need a hard cutover which can be disruptive
  • LDAP bridging into Azure Active Directory

19 of 19

Questions?