-
Notifications
You must be signed in to change notification settings - Fork 0
/
params.json
1 lines (1 loc) · 6.45 KB
/
params.json
1
{"name":"Crpeck.github.io","tagline":"","body":"##Materials for MABUG 2014 Presentation\r\n\r\n###Title: Automated Build and Deployment of Tomcat Apps, ~~or, How Ops can get out of the way of development~~\r\n\r\n* Chris Peck\r\n* College of William and Mary\r\n* Date: 9/29/2014\r\n* Session ID: 8743\r\n\r\n\r\n####Intro\r\nLast Fall, the IT Unix \"Ops\" team at William and Mary implemented a new tool named Jenkins for managing software projects. Eventually, we were able to to talk some Developers into using this tool for the development of their Grails Apps. I’ll briefly discuss what Jenkins is and how to get it (it’s free as in beer), as well as what the IT Unix Team uses it for, then I’ll take a deep-dive into using it for developing and deploying Apps to Tomcat Servers.\r\n\r\nThis presentation will describe the journey to a faster, less-painful deployment process for Grails (or any other) Apps to a Tomcat server. I will describe the processes in place before, how we got to where we are, and the tools we used to implement the current environment.\r\n\r\nAs I began developing this presentation, our team was informed that Banner XE would be deployed to Linux servers (which is what our team “does”). I had attended MABUG last Fall to learn more about what XE was, the development strategy and had read how Ellucian appeared to be using technologies similar to what we had focused on using as we began to rollout our “next-generation” of servers & services in *nixland*. I was intrigued to say the least. I had a talk over some beers at the pig roast with Ed Hauser & a “tech” person from Ellucian, and, we seemed in sync conceptually on this. We are planning on using the same processes described here to deploy Banner XE Apps as they become available.\r\n\r\n####Pre-Jenkins\r\nIn the pre-Jenkins world, Grails warfiles were built on the developers desktop, then copied to a network \"drive\". They would then contact the Ops team who would copy it from the network drive to the Tomcat server, put it in place and restart the service. This led to a lot of pain points, what version of grails and java was being used, etc. The age-old \"Well, it worked on my Desktop\" statement was rather common. Since so much of this was manual, this process was fragile, with many points of possible failure. Since Developers depended on Ops for deployment it was a very slow process\r\n\r\n####Post-Jenkins\r\nIn the post-Jenkins world, well, Jenkins does it all for us, with some help from some other tools. When code is committed to our local source code repository, Jenkins will automatically build the War files (in the same environment as the Tomcat servers). If Jenkins can build the App successfully, the following occurs:\r\nFor the Development Environment the WAR file is automatically deployed to the Tomcat server. \r\nFor the Production Environment, since Ops are the only ones allowed to deploy to PROD, then someone from Ops tells Jenkins to deploy the App. \r\nSince the process is automated, the chance of failure is minimized. Developers are happy, and, Ops are ecstatic.\r\n\r\n\r\n####Demonstration\r\nDuring the creation of this presentation, I created a \"Vagrantfile\" for demonstrating how this is done. This Vagrantfile will spin up an Ubuntu 14.04 server VM running Tomcat and Jenkins. It also installs a simple source tree using git to use as an example. This git source tree contains a post-commit hook into Jenkins to kick off the building of a warfile based on it, and, then auto-reploying it to the Tomcat server.\r\n\r\nIf you would like to use this Vagrantfile to play with, head on over to https://github.com/crpeck/vagrant-mabug and *git* it.\r\n\r\nI also created a real simple sourcetree that prints out *hello world* and get's installed into /usr/local/src/hello-world on the Vagrantbox VM. This is the source tree mentioned above, it's located at https://github.com/crpeck/hello-world\r\n\r\n####Running the Demonstration\r\nRunning through this assumes the following:\r\n* You've installed VirtualBox\r\n* You've installed Vagrant\r\n* You've installed git\r\nOnce you have those requirements out of the way, here's a quick walk through.\r\n```\r\nOpen a terminal window\r\nmkdir mabugdemo\r\ncd mabugdemo\r\ngit clone https://github.com/crpeck/vagrant-mabug.git\r\ncd vagrant-mabug\r\nvagrant up\r\n\r\nAssuming all went as planned, you should see this as Vagrant brings up the machine - before the \"Provisioning\" section:\r\n default: Adapter 1: nat\r\n==> default: Forwarding ports...\r\n default: 8080 => 8080 (adapter 1)\r\n default: 8090 => 8090 (adapter 1)\r\n default: 22 => NNNN (adapter 1) (this doesn't matter)\r\n\r\nand, this at the end:\r\n\r\nJenkins is available at http://localhost:8090\r\nTomcat manager at http://localhost:8080/manager\r\n user=manager, password=12345\r\n```\r\n\r\nAt this point if you bring up a browser and point it at http://localhost:8090 you should see the Jenkins Main Screeen.\r\nThe first thing we need to do is build the hello-world warfile and install it in Tomcat. Go ahead and Click on the *hello-world* listed under Name in the middle of the screen.\r\nClick on *Build Now* in the Left Column, this will build the warfile and install it. Assuming it went ok (you do have a Blue Ball and not a Red one, right? Click on http://localhost:8080 and you should see:\r\n```\r\nIt works !\r\n\r\nClick here to see the hello-world example\r\n```\r\n\r\n####Links to Tools Used\r\n* Jenkins https://jenkins-ci.org\r\n* git https://git-scm.org\r\n* Vagrant https://www.vagrantup.com \r\n* VirtualBox https://www.virtualbox.org\r\n* Puppet: http://puppetlabs.com Configuration Management\r\n* Packer http://www.packer.io/ We use it to build our VM images\r\n\r\n####Links to Other Great Stuff\r\n* U.S. Digital Services Playbook https://playbook.cio.gov/\r\n* DevOps http://devops.com\r\n* FlowCon Conference http://http://flowcon.org/\r\n* O'Reilly Conference http://velocityconf.com/\r\n* IT Revolution Press http://itrevolution.com/\r\n\r\n####Written Material aka Books\r\n* The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win, Gene Kim, Kevin Behr, George Spafford\r\n* Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, Jez Humble and David Farley\r\n\r\n####Links to Ellucian Sites\r\n* Demo of Using Ellucian's git repo http://udca.sungardhe.com/cps/WBT/XE_Webinars/using_git_repos_screencast.mov\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}