Jenkins, jclouds, CloudStack, and CentOS by David Nalley

Embed Size (px)

Citation preview

  1. 1. Jenkins, jclouds, CloudStack, and CentOS David Nalley @ke4qqq [email protected] 10 November 2014
  2. 2. #whoami Recovering sysadmin Former server hugger, now cloud addict Contributor to a few open source projects: Fedora, Zenoss, CloudStack, jclouds VP, Infrastructure for the Apache Software Foundation Employed by Citrix in the Open Source Business Office Jenkins + jclouds + Centos + CloudStack
  3. 3. Background: Jenkins Continuous Integration Server Formerly Hudson community forked Written in Java MIT-Licensed Lots of plugins Jenkins + jclouds + Centos + CloudStack
  4. 4. Background: Apache jclouds Cloud Abstraction Library Written in Java ASLv2 License Jenkins + jclouds + Centos + CloudStack
  5. 5. Background: Apache CloudStack Formerly from Cloud.com Compute- focused IaaS management solution. Started in 2008 Now a top level project at the ASF Written in Java ASLv2 Jenkins + jclouds + Centos + CloudStack
  6. 6. The Problem Lots of different testing needs multiple platforms, multiple versions, multiple versions of software. Jenkins + jclouds + Centos + CloudStack
  7. 7. The Problem at scale We have nearly 200 software projects each with their own set of needs, distinct platforms. Some want CentOS 5, 6, or 7; others want OSX, Win 2012, Ubuntu, FreeBSD, or Solaris. Demand varies widely projects getting closer to release test more; some days we had hundreds of jobs in the queue, other days we had 20 or 30 Jenkins + jclouds + Centos + CloudStack
  8. 8. The transition for monolith to scalable. Jenkins + jclouds + Centos + CloudStack
  9. 9. Where we were Dedicated Jenkins master Esoteric things had VMs ~30 dedicated machines, strewn across multiple datacenters. Jenkins + jclouds + Centos + CloudStack
  10. 10. How we started our move Defining what a build slave needs Make sure that Jenkins is working efficiently (Misconfigured jobs are a huge drain) Adopted a LTS version of Jenkins Jenkins + jclouds + Centos + CloudStack
  11. 11. Building images Packer building images Start with JeOS declare everything else in puppet, run puppet as a job. Create a jenkins job for this everytime a job changes rebuild, reupload. Jenkins + jclouds + Centos + CloudStack
  12. 12. How you plan to use Cloud Server huggers wanted to use fixed VMs (deploy fixed machines) Jenkins + jclouds + Centos + CloudStack
  13. 13. How you want to use cloud Fresh, dynamically provisioned VM for each build Jenkins + jclouds + Centos + CloudStack
  14. 14. The right answer Jenkins + jclouds + Centos + CloudStack
  15. 15. The right answer (for us) Spin up build slaves in response to demand. Leave the machine up for 30 minutes after demand subsides to keep from flapping. Jenkins + jclouds + Centos + CloudStack
  16. 16. Make it all work Jenkins + jclouds + Centos + CloudStack
  17. 17. Install the jclouds plugin Jenkins + jclouds + Centos + CloudStack
  18. 18. Choose a cloud provider Jenkins + jclouds + Centos + CloudStack
  19. 19. Configure Jenkins + jclouds + Centos + CloudStack
  20. 20. Configure Jenkins + jclouds + Centos + CloudStack
  21. 21. Profit? Jenkins + jclouds + Centos + CloudStack
  22. 22. Bonus Jenkins + jclouds + Centos + CloudStack
  23. 23. Get Involved Web: http://cloudstack.apache.org/ Mailing Lists: cloudstack.apache.org/mailing-lists.html IRC: irc.freenode.net: 6667 #cloudstack Twitter: @cloudstack LinkedIn: www.linkedin.com/groups/CloudStack-Users-Group-3144859 If it didnt happen on the mailing list, it didnt happen. Jenkins + jclouds + Centos + CloudStack