Jenkins User Conference Jenkins User Conference New York, May 17 2012 #jenkinsconf Yale Build and Deploy E Camden Fisher Yale University ITS.

Slides:



Advertisements
Similar presentations
Agile Software Distribution
Advertisements

Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
Modern app development Continuous value delivery and rapid response to change.
Visual Studio Online. What it Provides Visual Studio Online, based on the capabilities of Team Foundation Server with additional cloud services, is the.
Jenkins User Conference Jenkins User Conference San Francisco, Sept #jenkinsconf Using Jenkins in the Enterprise and the Cloud Mark Prichard Kohsuke.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
A simpler way to manage identities across multiple services Aldo Zanoni, CEO ext. 232
Improving Software Quality with Continuous Integration
Deployment and Configuration Management Solution
Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK Continuous Integration 0.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
DNN LOVES JENKINS FOR CONTINUOUS INTEGRATION
Automating Drupal Deployment Dominique De Cooman.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Achieving Agility with WSO2 App Factory S. Uthaiyashankar Director, Cloud Solutions WSO2 Inc. Dimuthu Leelarathne Software Architect WSO2 Inc.
The powerful capabilities of JBoss Middleware as cloud based services on OpenShift. Build applications. Integrate with other systems Orchestrate using.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
Windows Azure Conference 2014 Running Docker on Windows Azure.
Continuous Integration and Testing
Creating a Maintainable Software Ecosystem Jeremy D. Miller November 27th, 2007.
AUTOBUILD Build and Deployment Automation Solution.
Using the ALM Module Fully Automated Deployments in Stack 3.2.
AppManager Product Status Update David Mount Technical Manager – UK, Ireland & Middle East David Mount Technical Manager – UK, Ireland & Middle East.
MAE Continuous Integration Administration guide July 8th, 2013.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Development Environment Matthew Sell, CSSE Student MASS Research Participant, October 2014.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Optimal Pipeline Using Perforce, Jenkins & Puppet Nitin Pathak Works on
The Road to Continuous Delivery at Perforce Jonathan Thorpe Technical Marketing Manager Perforce Laurette Cisneros Build & Release Engineering Manager.
Stairway to the cloud or can we take the highway? Taivo Liik.
Maven for building Java applications By Nalin De Zoysa
Continuous Integration CruiseControl.Net. Best Practices Use version control; Automate the build; Build should be self tested; Developers must commit.
Lecture XIII: Continuous Integration CS 4593 Cloud-Oriented Big Data and Software Engineering.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Software Deployment & Release 26/03/2015 1EN-ICE.
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Cruise Training Introduction of Continuous Integration.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
© 2013 IBM Corporation Accelerating Product and Service Innovation Service Virtualization Testing in Managed Environments Michael Elder, IBM Senior Technical.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Appium Studio Appium testing made easy at any scale.
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Process improvements for better quality
E Camden Fisher Yale University ITS
Continuous Integration (CI)
Version Control with Subversion
External Web Services Quick Start Guide
Docker Birthday #3.
Continuous Integration and Testing
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
DevOps in an Embedded Environment
LECTURE 3: Software Configuration Management
X in [Integration, Delivery, Deployment]
Simplified Development Toolkit
Continuous deployment best practices, methods and tools.
JENKINS TIPS Ideas for making your life with Jenkins easier
Last.Backend is a Continuous Delivery Platform for Developers and Dev Teams, Allowing Them to Manage and Deploy Applications Easier and Faster MICROSOFT.
Node.js Test Automation using Oracle Developer Cloud- Simplified
Erik Vollebekk Application Architect
Azure DevOps Simplified with Production Data
Presentation transcript:

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Yale Build and Deploy E Camden Fisher Yale University ITS

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Who am I? E Camden Fisher Technical Lead Unix Infrastructure and

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf What is Jenkins? Jenkins is an application and a framework that manages and monitors the execution of repeated tasks.

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Who Uses

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Overview Before Jenkins After Jenkins "fire and forget", consistent! Testing is automated! Code coverage is easy! Bugs caught early and often! Devs worry about code! Change control in the right places for deployments! Rapid progress! Agility! Identical artifact per environment! Identical configuration per environments! Deployments are “click” easy Integration Nirvana Building is slow, error prone Testing is onerous Code coverage is onerous Bugs caught later Devs worry about servers No change control for deployments Slow progress Different artifact per environment Inconsistent configuration per environment Deployments are "hard" Integration Hell

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Let’s Not Forget Continuous Integration! Maintain a Single Source Repository Automate the Build Make Your Build Self-Testing Every Commit Should Build the Mainline on an Integration Machine Keep the Build Fast Test in a Clone of the Production Environment Make it Easy for Anyone to Get the Latest Executable Everyone can see what's happening Automate Deployment Avoid "Integration Hell!!”

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Why did we chose Jenkins? Easy! Extensible Scalable Flexible Open Source Supported!

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Yale History Lesson Application lifecycle is a progression Source Code Management Maven and Artifactory Building and Testing with Jenkins Container Configurable artifacts Runtime Configurable Containers Managed deployments with Jenkins

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf SCM Subversion SCCS RCS VSSCVS cp –pr

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf MVN Maven Project Object Model (POM) Simplifies dependency resolution ("oops I forgot that.jar!") Makes the build process easy and uniform Artifactory (Maven Repository) Where do I put my built artifacts? Makes it easy for everyone to get the latest build!

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Builds: Before Jenkins We have a single source repo + a place to store built artifacts, but….. – Builds still take a long time – Testing takes longer! – Code coverage take even longer! – Build environments are not standardized – Mistakes are caught later, hard to debug

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Builds: Enter Jenkins SCM commits automatically kick off a build Testing and code coverage is automated and is run on every commit. Broken builds immediately notify the team and the committer Tests run in a Clone of the Production Environment! Everyone can easily see what's happening! Developers can get back to coding instead of building and testing. Releases are quick and easy

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Deployment: The problem. Configuration must be different per environment Choice between loss of control or loss of agility – Often devs configure the container – Either devs can edit deployables or they can't If they can... things are bad – Code is deployed, edited and removed w/out Change Control – Moving quickly… "I'll clean it up later!" – Dev environments quickly diverge from Production – Security is compromised If they can't... things are worse – Change requests are "slow” – Systems groups must do everything

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Deployments: How do we fix them? Standardize the process! Promote SANE change control Normalize deployables/artifacts Single location for app configuration data Standardize the container Externalize what makes an environment unique and special

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Yale Application Installer Plugin Standardize the process! Why? – SSH creds + Delegation – Manage keys outside – Node name substitution How? – Installer is co’d, scp’d – install.properties on dest – Pre-Install – SSH exec installer – Post-Install

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Container Configurable Artifacts Artifacts were built with embedded configuration. – ie. datasources, CAS service endpoints, etc – Artifacts are different per environment! What!? – "Oops, I forgot to update that parameter!" Externalization of configuration parameters – deployable XML – Apps self configure with JNDI Now we have Container Configurable artifacts – The SAME artifact migrates between environments – XML configuration data (stored as build parameters in Jenkins) is all that differentiates environments

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Yale Standard Java Container JBoss EAP (5.1 now) Minimal customization to externalize configuration into runtime Packaged in RPM Configuration Management to install + manage what’s “special” Meets 100% of use cases (so far) Runtime configurable container is key!

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Yale Standard Java Container $JBOSS_HOME/deploy/jbossweb.sar/server.xml <Connector protocol="HTTP/1.1" SSLEnabled="true" port="${jboss.bind.httpsport}" address="${jboss.bind.address}” secure="true" clientAuth="false" scheme="https” proxyName="${jboss.proxyname}" proxyPort="${jboss.proxyport}” SSLCertificateFile="${jboss.server.home.dir}/conf/server.crt" SSLCertificateKeyFile="${jboss.server.home.dir}/conf/server.pem” URIEncoding="UTF-8” SSLProtocol="TLS”> /etc/init.d/jboss_nodexx # JBoss variables export JBOSS_OPTS=“-Djboss.bind.httpport=${HTTPPORT} \ -Djboss.bind.httpsport=${HTTPSPORT} ${ADDLJBOPTS}” ${JBOSS_HOME}/bin/run.sh ${JBOSS_OPTS} -c ${JBOSS_NODE} -g ${JBOSS_PARTITION} -b ${JBOSS_BIND} -u ${CLSTR_ADDR}

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Deployments: The result. Consistency! Jenkins writes configuration XML: $human_error-- Eliminate shells, and elevated privileges on servers Container is managed by infrastructure with the O/S Developers can deploy to DEV at will Empowers developers to GTD Puts gates at appropriate places Changes to the Jenkins jobs, containers + deploys to Test/Prod require change control Frees Systems folks to work on more interesting things Standard Container + Cloudy IaaS + Container Configurable artifacts = Vendor-lock-in-less PaaS!

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Drupal Continuous Deployment Yale has a large shared Drupal infrastructure Shared = needs change control Migration process looks similar to Java Some end users want to edit themes! Jenkins to the rescue!

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf What’s New? Workflow integration through web services Build + Release of Apache Servicemix bundles and “features” Spawning and Destroying Servicemix child instances Deployment of Features and OSGI bundles to Apache Servicemix Deploying Drupal 7 – git + pull

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Other Languages Php – Code coverage and unit testing available Ruby – Automated unit testing – Automated code coverage – Automated deployment coming soon.Net – Build, unit test, archive creation

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf The Future RBAC + folders – delegate responsibility to other systems groups More ruby – unit testing and code coverage – deployments Enterprise Service Bus Centralized SSH mangagement – the tools are better now Managing/Provisioning with cfg mgmt Cloud deployments

Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Questions? E Camden