Openshift for Continuous Integration Alex Lossent – IT/PES/IS AI meeting 1-Oct-2015 Openshift for Continuous Integration1.

Slides:



Advertisements
Similar presentations
How We Manage SaaS Infrastructure Knowledge Track
Advertisements

System Center 2012 R2 Overview
Which server is right for you? Get in Contact with us
Take your CMS to the cloud to lighten the load Brett Pollak Campus Web Office UC San Diego.
Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS PRIMERGY Servers and Windows Server® 2008 R2 Benefit from an efficient, high performance and flexible platform.
EUROPEAN UNION Polish Infrastructure for Supporting Computational Science in the European Research Space User Oriented Provisioning of Secure Virtualized.
Update on Version Control Systems: GitLab, SVN, Git, Trac, CERNforge
M.A.Doman Model for enabling the delivery of computing as a SERVICE.
MiVoice Office v MiVoice Office v6.0 is mainly a service enhancement release, rather than a user feature rich enhancement release.
Plan Introduction What is Cloud Computing?
Cloud Attributes Business Challenges Influence Your IT Solutions Business to IT Conversation Microsoft is Changing too Supporting System Center In House.
VAP What is a Virtual Application ? A virtual application is an application that has been optimized to run on virtual infrastructure. The application software.
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over the Internet. Cloud is the metaphor for.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
Windows Azure Conference 2014 Running Docker on Windows Azure.
Office 365 Platform Flexible Tools Understand different provisioning options and their advantages and disadvantages…
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
& Dev Ops. Sherwin-Williams & DevOps Introduction to Sherwin-Williams.
M.A.Doman Short video intro Model for enabling the delivery of computing as a SERVICE.
2 © 2015 Pivotal Software, Inc. All rights reserved. 2 Removing Barriers Between Dev and Ops It Takes a Platform VMworld 1 September 2015 Cornelia.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
608D CloudStack 3.0 Omer Palo Readiness Specialist, WW Tech Support Readiness May 8, 2012.
OOI CI LCA REVIEW August 2010 Ocean Observatories Initiative OOI Cyberinfrastructure Architecture Overview Michael Meisinger Life Cycle Architecture Review.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
An Agile Service Deployment Framework and its Application Quattor System Management Tool and HyperV Virtualisation applied to CASTOR Hierarchical Storage.
Windows Azure Virtual Machines Anton Boyko. A Continuous Offering From Private to Public Cloud.
Introduction To BlueMix By: Ryan
Optimal Pipeline Using Perforce, Jenkins & Puppet Nitin Pathak Works on
Paperless Timesheet Management Project Anant Pednekar.
70-412: Configuring Advanced Windows Server 2012 services
Web Technologies Lecture 13 Introduction to cloud computing.
Operating Systems & Information Services CERN IT Department CH-1211 Geneva 23 Switzerland t OIS Drupal at CERN Juraj Sucik Jarosław Polok.
CERN IT Department CH-1211 Genève 23 Switzerland t Migration from ELFMs to Agile Infrastructure CERN, IT Department.
CERN - IT Department CH-1211 Genève 23 Switzerland t Operating systems and Information Services OIS Proposed Drupal Service Definition IT-OIS.
CERN AI Config Management 16/07/15 AI for INFN visit2 Overview for INFN visit.
Cisco Consulting Services for Application-Centric Cloud Your Company Needs Fast IT Cisco Application-Centric Cloud Can Help.
RANDY MODOWSKI COSC Cloud Computing. Road Map What is Cloud Computing? History of “The Cloud” Cloud Milestones How Cloud Computing is being used.
Cloud, big data, and mobility Your phone today probably meets the minimum requirements to run Windows Server 2003 Transformational change up.
Cloud Installation & Configuration Management. Outline  Definitions  Tools, “Comparison”  References.
© 2012 Eucalyptus Systems, Inc. Cloud Computing Introduction Eucalyptus Education Services 2.
Platform & Engineering Services CERN IT Department CH-1211 Geneva 23 Switzerland t PES Agile Infrastructure Project Overview : Status and.
Software collaboration tools as a stack of services Borja Aparicio Cotarelo IT-PES-IS 2HEPiX Fall 2015 Workshop.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Structured Container Delivery Oscar Renalias Accenture Container Lead (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Commvault and Nutanix October Changing IT landscape Today’s Challenges Datacenter Complexity Building for Scale Managing disparate solutions.
Canadian Bioinformatics Workshops
Top Docker Cloud Software Hosting PaaS Providers in Australia
Prof. Jong-Moon Chung’s Lecture Notes at Yonsei University
SUSE Linux Enterprise Server for SAP Applications
Web application hosting with Openshift, and Docker images
IT Services Katarzyna Dziedziniewicz-Wojcik IT-DB.
Web application hosting with Openshift, and Docker images
Dockerize OpenEdge Srinivasa Rao Nalla.
High Availability Linux (HA Linux)
Infrastructure Orchestration to Optimize Testing
Docker Birthday #3.
Andrew McCombs March 10th, 2011
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
Kubernetes Container Orchestration
Intro to Docker Containers and Orchestration in the Cloud
Outline Virtualization Cloud Computing Microsoft Azure Platform
SpiraTest/Plan/Team Deployment Considerations
Orchestration & Container Management in EGI FedCloud
THE REALITY OF USING CONTAINERS TO BUILD PRODUCTS
Cloud Computing LegalRun Solutions Why It’s Right for You!
Introduction to Docker
OpenStack Summit Berlin – November 14, 2018
Containers and DevOps.
Presentation transcript:

Openshift for Continuous Integration Alex Lossent – IT/PES/IS AI meeting 1-Oct-2015 Openshift for Continuous Integration1

Outline Continuous Integration: context and history Platform-as-a-Service concept Docker/Kubernetes/Openshift How Openshift compares to Puppet, Heat Plans and outlook AI meeting 1-Oct-2015 Openshift for Continuous Integration2

Why a Continuous Integration platform? Concept: improve code quality by integrating code frequently and applying automatic quality control (tests etc.) Awareness of multiple CI setups for all large software projects at CERN In IT, PH, GS, EN… Using Bamboo, Jenkins, TeamCity… First experience with Jenkins in PES: AIQA Project to provide a Jenkins “platform as a service” to make it easier for developers to deploy CI AI meeting 1-Oct-2015 Openshift for Continuous Integration3

CI: current offer Since end 2014, we provide a CI “platform” Using well-established, open-source Jenkins A Java web application Request an instance from Documentation Clear interest from developers >40 instances as of September 2015 forum on September A “platform” rather than a “service” We provide the infrastructure (Puppet/Openstack) Out of scope: support for Jenkins configuration itself, integration of existing CI setups Full details presented at ITTF 5-Dec-2014ITTF 5-Dec-2014 AI meeting 1-Oct-2015 Openshift for Continuous Integration4

Significant challenges Need more flexibility Every project has specific needs No standard development platform at CERN Frequent requests for custom RPMs, libraries, OSes, plugins, integration scenarios etc. Need more automation Many changes trigger a support ticket Too much manual work for both users and ourselves Need better scaling 1..n VM per project with CI Security Team project to provide static code analysis AI meeting 1-Oct-2015 Openshift for Continuous Integration5

Towards a PaaS solution We want to provide the infrastructure for CI While giving maximum freedom to Jenkins users With minimum cost of entry and maintenance effort for users I.e. self-service, fully automated, self-repairing A good candidate for a PaaS solution AI meeting 1-Oct-2015 Openshift for Continuous Integration6

Options to deploy a web app… AI meeting 1-Oct-2015 Openshift for Continuous Integration7 Less effort Less flexibility Specific help More effort Best flexibility Unspecific help Web hosting: AFS/DFS website Middleware-on- demand SaaS: Drupal SharePoint IaaS: Openstack Puppet DNSLB PaaS: Good flexibility Limited effort “to develop, run, and manage Web applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app” [Wikipedia]Wikipedia

PaaS: useful technologies Containers Operating System-level virtualization: A host system runs several isolated user spaces on top of a single kernel Provides app isolation with less overhead than VMs Containers can be provisioned and started in seconds Allow to separate maintenance of the host OS from that of the application itself Like VMs can stop worrying about physical hardware Docker A popular container solution An application can be packaged with all its environment into an image Includes all libraries, app framework, code, configuration… Portable: can be deployed and instantiated with little constraints on a variety of hosts AI meeting 1-Oct-2015 Openshift for Continuous Integration8

PaaS: useful technologies Kubernetes Docker container orchestration system by Google Software-defined network (SDN) to provide advanced services Recent but gets a lot of traction RedHat Openshift Builds a PaaS solution on top of Kubernetes Adds user management, UI, web proxy, image registry, application templates etc. And an application lifecycle (Continuous Deployment) AI meeting 1-Oct-2015 Openshift for Continuous Integration9

What can we expect from using Openshift? Flexibility Delegate full control on the Jenkins app to users Self-service and automation (by design) Scaling Better resource-efficiency with containers Advanced level of service (from Kubernetes) Persistent storage via Ceph (RBD) Fast recovery (virtual IPs, replication controller) Good availability (container migration) AI meeting 1-Oct-2015 Openshift for Continuous Integration10

How to apply this to CI? We provide and maintain a reference Jenkins Docker image With relevant pre-configuration and integration And an Openshift application template for it Users create instances of Jenkins on our Openshift cluster (self-service via CLI/GUI) Allow user-provided Docker images for slaves Each project can have its own build environment No need to deploy and maintain dedicated VMs Fresh container for each job run AI meeting 1-Oct-2015 Openshift for Continuous Integration11

PaaS general use case Openshift interesting for general web application hosting ~1400 HTTP-related openings in the external firewall Applications currently hosted outside CERN More flexible than web hosting/MWoD Wide choice of frameworks, languages… Significantly less effort than IaaS No host OS to manage Configuration management tailored for web apps Scalability, redundancy, good availability are almost free Fills a gap in providing tools to facilitate web app deployment and upgrade AI meeting 1-Oct-2015 Openshift for Continuous Integration12

Case study: GitLab IaaS-based deployment Many VMs (dev/prod, redundancy with DNSLB) NFS filer, DBoD (single points of failure) Complex configuration management with Puppet Puppet module + tricks, custom Lemon sensors Significant work with each new version Complex, manual upgrade procedure 30 minute downtime (even for possibly online upgrades) Not doable with Puppet (lack of synchronization), even less so with migration of Puppet repos to GitLab Slow recovery in case of failure DNS update delay Can be much longer if DBoD or NFS filer fail (if possible) AI meeting 1-Oct-2015 Openshift for Continuous Integration13

Case study: what Openshift could improve Better resource efficiency: a lot less VMs Direct use of Ceph (RBD) volume for storage Single GitLab instance (“pod”) at any given time Faster recovery Takes seconds to reschedule a container, reconnect to storage, reassign virtual IP SPoF (and dependency loop) removal: NFS filer possibility to host database in Openshift as well Considerably simplified management and procedures Apps are described in terms of how to generate a Docker image from source code and a deployment configuration Openshift designed to facilitate Continuous Delivery Automation of building Docker images, deploying new app versions (and rollback) Can leverage standard RoR migration/upgrade procedure AI meeting 1-Oct-2015 Openshift for Continuous Integration14

Caveat: security updates App owners responsible for maintaining their apps… and all their dependencies Security fixes! Openshift provides an (optional) workflow whereby a base image can be updated and app rebuilt on top of it Mostly appropriate for apps with a Continuous Deployment model Frequent integration, updates and redeployment AI meeting 1-Oct-2015 Openshift for Continuous Integration15

An interesting complement to existing web app hosting offer AI meeting 1-Oct-2015 Openshift for Continuous Integration16 Less effort Less flexibility Specific help More effort Best flexibility Unspecific help Web hosting: AFS/DFS website Middleware-on- demand SaaS: Drupal SharePoint IaaS: Openstack Puppet DNSLB PaaS: Good flexibility Limited effort

What about Heat? Openstack Heat was also considered as a way to address current challenges with CI Heat = orchestration for Openstack Can be used to provide a Jenkins “application template” Improvements regarding automation, self-service, flexibility This option would have been fantastic if available end 2014 when CI project started But now suffers from availability of a solution like Openshift Non-trivial work required: integration of Heat with Puppet to maintain long-lived VMs complete refactor of how Jenkins is managed by Puppet Resource efficiency “level of service” (recovery etc.) AI meeting 1-Oct-2015 Openshift for Continuous Integration17

Where are we now? Prototype Openshift cluster was relatively easy to deploy Hosts managed with Puppet (+Ansible) Polishing to do but no blocker in sight Work on a preconfigured Jenkins image in progress With SSO, GitLab integration, etc. Production status before end of the year is still realistic AI meeting 1-Oct-2015 Openshift for Continuous Integration18

Collaboration opportunities? Docker has been lurking around for some time, but no well-defined strategy yet In particular, no official SLC5/6 or CC7 images A new type of resource to manage Reassign when users leave CERN, etc. Integration with existing services? New technologies to master Docker, Kubernetes are definitely technologies that will play a major role in the coming years AI meeting 1-Oct-2015 Openshift for Continuous Integration19

Do you want to know more? Openshift 3 Roadshow: free workshop in Geneva on October 22ndfree workshop in Geneva on October 22nd AI meeting 1-Oct-2015 Openshift for Continuous Integration20

Case study: GitLab IaaS-based deployment Cluster of 2 large VMs for web frontend Cluster of 2 small VMs for state (redis) DNSLB aliases for cluster management (active/standby in both case) NFS filer for storage (single point of failure) Postgres DBoD (some redundancy) Complex configuration management with Puppet Custom Lemon sensors for DNSLB selection Upstream Puppet module to deploy GitLab “from source”, many contributions from CERN Significant work with each new version Various tricks to integrate upstream module with Teigi secrets and other CERN specificities AI meeting 1-Oct-2015 Openshift for Continuous Integration22

Case study: GitLab (2) Complex, manual upgrade procedure Virtually impossible to automate upgrade via Puppet (lack of coordination) Ballet with puppet agent, services, git repos around the core RoR upgrade process 30 minute downtime (even for possibly online upgrades) Getting worse as repos hosting the Puppet code for GitLab configuration move… to GitLab Slow recovery in case of failure DNS update delay if it can be detected by custom Lemon sensors Possibly much longer if DBoD or NFS filer fail With Puppet code hosted on GitLab (so no change possible while GitLab down), can they even be restored? AI meeting 1-Oct-2015 Openshift for Continuous Integration23