Building a Cloud Native Platform
to Provide Lab Instances at
CloudBees University
Our journey, choices, tech, practices...
Romén Rodríguez-Gil, CloudBees
Joost van der Griendt, CloudBees
About us
Romén Rodríguez-Gil & Joost van der Griendt
© 2020 All Rights Reserved. 3
Romén (@romenrg)
Software engineering, leading startups, building digital products, lecturing,...
© 2020 All Rights Reserved. 4
Joost (@joost_vdg)
Consultant, Software Engineer, OpenSource Contributor
Building a Cloud Native Platform
to Provide Lab Instances at
CloudBees University
Our journey, choices, tech, practices...
Romén Rodríguez-Gil, CloudBees
Joost van der Griendt, CloudBees
© 2020 All Rights Reserved. 6
Index
• What is CloudBees University
– What we offer
– Content and labs
– Our previous lab infrastructure
• Our new cloud-native platform
– Goals and use-cases
– Tech, concepts, and practices applied
• Demo
– Creating instances via UI
• Technical details
– What is happening behind the scenes
– Architecture and components
• Key gains
• Future
What is CloudBees University
What we offer
Content and labs ; previous lab infrastructure
© 2020 All Rights Reserved. 8
What is CloudBees University
cloudbees.com/cloudbees-university
© 2020 All Rights Reserved. 9
What is CloudBees University
CloudBees University Community
© 2020 All Rights Reserved. 10
• Self-paced training
– Jenkins, DevOps, ARO, SDM,...
– Multiple levels (fundamentals, intermediate, shorter modules,...)
• Labs
– Hands-on, with pre-configured tools:
• Jenkins (& agents)
• Gitea
• LDAP
• Web terminal
• Jenkins & CloudBees Certifications
What is CloudBees University
What we offer
© 2020 All Rights Reserved. 11
What is CloudBees University
Content
© 2020 All Rights Reserved. 12
What is CloudBees University
Labs (1)
© 2020 All Rights Reserved. 13
What is CloudBees University
Labs (2)
© 2020 All Rights Reserved. 14
What is CloudBees University
Our previous lab infrastructure (1)
Infrastructure as-code but
human-operated; & focused
on instructor-led
slides.html
VM.zip
CloudDelivery
SlidesandVMs
© 2020 All Rights Reserved. 15
• It has become stale
– Built in 2016, its technology is outdated in today’s world
– Difficult to maintain & enhance
– Highly coupled to AWS
– Maintaining two delivery methods (portable VMs + cloud)
• Cannot fulfill all our current needs
– Not build for self-service
– Not manageable by others (e.g. via UI)
– Not Kubernetes ready
What is CloudBees University
Our previous lab infrastructure (2)
Our new cloud-native platform
Goals and use-cases
Tech, concepts, and practices applied
© 2020 All Rights Reserved. 17
• Goals
– Kubernetes-ready (e.g. support CBs CI modern)
– Apply today’s practices
– Self-service
– Switch to GCP & < Total Cost of Ownership
• Use cases
– Support existing labs & K8s-based courses (and products)
– Self-service (students, instructors, others)
– Administration by non-team members
• Modern tools & UI (for lower barrier of entry)
• Enable more people to troubleshoot, create & destroy environments
Our new cloud-native platform
Goals and use-cases
© 2020 All Rights Reserved. 18
• Tech used
– Version 1: Go backend run K8s commands
• Handle everything in our backend
• Used Jenkins X for CI & CD (of our applications)
– Version 2: Leveraged Jenkins X as our provisioning engine
• Automated provisioning of environments for students
• And Helm, Vault, GitHub, Sentry, Datadog
• Concepts and practices
– Configuration and Infrastructure as Code
– 12-factor app
– GitOps
Our new cloud-native platform
Tech, concepts, and practices applied
Demo!
...This is where it fails...
Technical details
Architecture and components
What is happening behind the scenes
© 2020 All Rights Reserved. 21
• Jenkins X
– Pipelines
– GitOps Environments
– Chart installations
• Namespaces, deployments, pod creations,...
• Platform
– Frontend
– Engine
– Env Controller
• Git repo
• Jenkins X Pipeline
• Env Helper
Technical details
• Lab environment definitions
– Helm charts
– Values template
© 2020 All Rights Reserved. 22
Technical details
Architecture and components
© 2020 All Rights Reserved. 23
Technical details
What is happening behind the scenes
CBU Engine
(backend)
GitOps
repository
Key gains
How is this making our lives any better?
© 2020 All Rights Reserved. 25
• Everything as code
– Disaster recovery
• Cluster re-creation:
– Terraform + jx boot
• Known instances states:
– Env controller GitOps repo
– Troubleshooting
• Easier to explore
• No unknown manual changes
Key gains
How is this making our lives any better?
© 2020 All Rights Reserved. 26
• Standardization
– Practices & tools
• Modularization
– Separation of concerns
– Easier to replace components
• Extensibility
– Inner sourcing
Key gains
How is this making our lives any better?
Future
What are we planning to work on next?
© 2020 All Rights Reserved. 28
• Integrate with CloudBees University
– SSO
– Seamless self-service labs
• Multi-cluster support
– Scalability & performance
– Enable further separation of environments
– Becoming a wider provisioning engine for CloudBees
• Not just training instances
– e.g. demo environments
Future
Building a Cloud Native Platform
to Provide Lab Instances at
CloudBees University
Our journey, choices, tech, practices...
Romén Rodríguez-Gil, CloudBees
Joost van der Griendt, CloudBees

Building a Cloud Native Platform to Provide Lab Instances at CloudBees University

  • 1.
    Building a CloudNative Platform to Provide Lab Instances at CloudBees University Our journey, choices, tech, practices... Romén Rodríguez-Gil, CloudBees Joost van der Griendt, CloudBees
  • 2.
    About us Romén Rodríguez-Gil& Joost van der Griendt
  • 3.
    © 2020 AllRights Reserved. 3 Romén (@romenrg) Software engineering, leading startups, building digital products, lecturing,...
  • 4.
    © 2020 AllRights Reserved. 4 Joost (@joost_vdg) Consultant, Software Engineer, OpenSource Contributor
  • 5.
    Building a CloudNative Platform to Provide Lab Instances at CloudBees University Our journey, choices, tech, practices... Romén Rodríguez-Gil, CloudBees Joost van der Griendt, CloudBees
  • 6.
    © 2020 AllRights Reserved. 6 Index • What is CloudBees University – What we offer – Content and labs – Our previous lab infrastructure • Our new cloud-native platform – Goals and use-cases – Tech, concepts, and practices applied • Demo – Creating instances via UI • Technical details – What is happening behind the scenes – Architecture and components • Key gains • Future
  • 7.
    What is CloudBeesUniversity What we offer Content and labs ; previous lab infrastructure
  • 8.
    © 2020 AllRights Reserved. 8 What is CloudBees University cloudbees.com/cloudbees-university
  • 9.
    © 2020 AllRights Reserved. 9 What is CloudBees University CloudBees University Community
  • 10.
    © 2020 AllRights Reserved. 10 • Self-paced training – Jenkins, DevOps, ARO, SDM,... – Multiple levels (fundamentals, intermediate, shorter modules,...) • Labs – Hands-on, with pre-configured tools: • Jenkins (& agents) • Gitea • LDAP • Web terminal • Jenkins & CloudBees Certifications What is CloudBees University What we offer
  • 11.
    © 2020 AllRights Reserved. 11 What is CloudBees University Content
  • 12.
    © 2020 AllRights Reserved. 12 What is CloudBees University Labs (1)
  • 13.
    © 2020 AllRights Reserved. 13 What is CloudBees University Labs (2)
  • 14.
    © 2020 AllRights Reserved. 14 What is CloudBees University Our previous lab infrastructure (1) Infrastructure as-code but human-operated; & focused on instructor-led slides.html VM.zip CloudDelivery SlidesandVMs
  • 15.
    © 2020 AllRights Reserved. 15 • It has become stale – Built in 2016, its technology is outdated in today’s world – Difficult to maintain & enhance – Highly coupled to AWS – Maintaining two delivery methods (portable VMs + cloud) • Cannot fulfill all our current needs – Not build for self-service – Not manageable by others (e.g. via UI) – Not Kubernetes ready What is CloudBees University Our previous lab infrastructure (2)
  • 16.
    Our new cloud-nativeplatform Goals and use-cases Tech, concepts, and practices applied
  • 17.
    © 2020 AllRights Reserved. 17 • Goals – Kubernetes-ready (e.g. support CBs CI modern) – Apply today’s practices – Self-service – Switch to GCP & < Total Cost of Ownership • Use cases – Support existing labs & K8s-based courses (and products) – Self-service (students, instructors, others) – Administration by non-team members • Modern tools & UI (for lower barrier of entry) • Enable more people to troubleshoot, create & destroy environments Our new cloud-native platform Goals and use-cases
  • 18.
    © 2020 AllRights Reserved. 18 • Tech used – Version 1: Go backend run K8s commands • Handle everything in our backend • Used Jenkins X for CI & CD (of our applications) – Version 2: Leveraged Jenkins X as our provisioning engine • Automated provisioning of environments for students • And Helm, Vault, GitHub, Sentry, Datadog • Concepts and practices – Configuration and Infrastructure as Code – 12-factor app – GitOps Our new cloud-native platform Tech, concepts, and practices applied
  • 19.
  • 20.
    Technical details Architecture andcomponents What is happening behind the scenes
  • 21.
    © 2020 AllRights Reserved. 21 • Jenkins X – Pipelines – GitOps Environments – Chart installations • Namespaces, deployments, pod creations,... • Platform – Frontend – Engine – Env Controller • Git repo • Jenkins X Pipeline • Env Helper Technical details • Lab environment definitions – Helm charts – Values template
  • 22.
    © 2020 AllRights Reserved. 22 Technical details Architecture and components
  • 23.
    © 2020 AllRights Reserved. 23 Technical details What is happening behind the scenes CBU Engine (backend) GitOps repository
  • 24.
    Key gains How isthis making our lives any better?
  • 25.
    © 2020 AllRights Reserved. 25 • Everything as code – Disaster recovery • Cluster re-creation: – Terraform + jx boot • Known instances states: – Env controller GitOps repo – Troubleshooting • Easier to explore • No unknown manual changes Key gains How is this making our lives any better?
  • 26.
    © 2020 AllRights Reserved. 26 • Standardization – Practices & tools • Modularization – Separation of concerns – Easier to replace components • Extensibility – Inner sourcing Key gains How is this making our lives any better?
  • 27.
    Future What are weplanning to work on next?
  • 28.
    © 2020 AllRights Reserved. 28 • Integrate with CloudBees University – SSO – Seamless self-service labs • Multi-cluster support – Scalability & performance – Enable further separation of environments – Becoming a wider provisioning engine for CloudBees • Not just training instances – e.g. demo environments Future
  • 29.
    Building a CloudNative Platform to Provide Lab Instances at CloudBees University Our journey, choices, tech, practices... Romén Rodríguez-Gil, CloudBees Joost van der Griendt, CloudBees