A software factory in a box

3,073 views

Published on

Il talk di Marcello Teodori al Codemotion di Roma 2011.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,073
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
46
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

A software factory in a box

  1. 1. Software Factory in a Box Marcello Teodori JUG Milano Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  2. 2. A few words about the speaker - one of the JUG Leaders for JUG Milano - moderator for SpringFramework-IT and Groovy Italian User Group mailing lists - owner and CTO in ExcogitaNet - owner, developer and pitcher for Git Enterprise - now based in London, working as freelancer tech lead for various enterprises and startups - somewhat twitterer: http://twitter.com/magomarcelo and blogger: http://magomarcelo.blogspot.com Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  3. 3. Let’s define a Software Factory Once upon a time there was a little factory who was able to turn ideas into code... ...and make everyone happy! Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  4. 4. But inside the factory truth was more often... Like having a cat in the waste bin... Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  5. 5. It’s never too late to... Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  6. 6. The state we’re in... the Joel test Let’s assess the status of our working environment using the test of Joel Spolsky: 12 Steps to Better Code (2000) http://www.joelonsoftware.com/articles/fog0000000043.html Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  7. 7. And the lesson we can learn is... Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  8. 8. But trying to introduce tools can lead to some objections... SOFTWARE FACTORY TOOLS ARE EXPENSIVE LOTS OF THEM ARE OSS AND ACTUALLY VERY GOOD TOO SETUP IS COMPLICATED I COULD TRY AND INSTALL IN A VM WHAT ABOUT TRAINING? WE NEED TO DEFINE WORKFLOWS AND PROCEDURES WELL... Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  9. 9. What can we do...? Software Factory in a Box! - a Virtual Machine with an OSS OS (Ubuntu Server 10.04 LTS) - built on OSS tools - implementing a software factory - for Maven/Java projects (mostly...) - we can experiment best practices with Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  10. 10. What’s inside the Software Factory in a Box... The VM contents: - redmine (issue tracker & wiki) - subversion edge (scm + management tools) - jenkins (continuous integration) - artifactory (maven repository) - sonar (source code reporting) with the same identity across all systems provided by OpenLDAP (directory server) Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  11. 11. Redmine http://www.redmine.org/ - wiki with markdown syntax - multi-project issue tracker with customizable workflow - milestone planning - integration with subversion and many more SCM... - notifications - GPLv3 license, built on Ruby and Rails Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  12. 12. Jenkins http://jenkins-ci.org/ - possibly the most widely used OSS continuous integration server - can ran as job scripts, ant/maven builds triggered on specific conditions - integration with subversion and many more SCM... - extensible via plugins with rich directory: - sonar plugin - promotion plugin - artifactory plugin - MIT licensed, built on Java Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  13. 13. Subversion Edge http://www.open.collab.net/go/csvne2_r2a/ - distribution of Subversion with tools provided by CollabNet - web-based repository management - web configurable LDAP integration - basic web permission editing - includes ViewVC repository viewer - AGPL licensed, built in Java (excluding Subversion and ViewVC) Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  14. 14. Artifactory http://www.jfrog.com/products.php - a generic repository manager can host artifacts and dependencies - built for Maven but supporting also Ivy and Gradle - remote REST APIs supports publishing via POST of generic files - cache for external repositories, pre-configured with most used ones: (Maven Central, Codehaus, JBoss, Spring...) - LDAP support - LGPLv3 licensed, built on Java Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  15. 15. Sonar http://www.sonarsource.org/ - static code analysis and reporting - statistics on code health - plugin system to support many languages beyond Java - integrates well known tools: FindBugs, CheckStyle, PMD, Cobertura... - LGPL licensed, built on Java and JRuby Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  16. 16. OpenLDAP + web management provided by Zentyal http://www.zentyal.org/ - web interface for Small Business Server - based on Ubuntu Server 10.04 LTS - all the configuration is on OpenLDAP http://www.openldap.org/ - we’re using just its user and group module - can sync to external LDAP server even Active Directory with password sync! - provides self-service change password web Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  17. 17. Let’s experiment with some best practices... ...and check if they’re fit for us! Let’s see some possible examples... - use a wiki as project knowledge base - slice requirement documents in issues and track them - avoid “downloading the internet” with maven - build project with dedicated maven repository - one repository per project with standard trunk/tags/branches layout on subversion - promote and release projects from the CI server - share common project properties using a parent POM - publish a documentation site for a project with maven - monitor health state of source code through static analysis - create our custom maven archetypes and publish them on artifactory Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  18. 18. What’s next... We can move our Software Factory in a Box VM in the virtualized infrastructure of our company datacenter! Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  19. 19. What’s next too... If we don’t want to host some of these tools... many of them offer a cloud service version... - DEV@cloud by CloudBees for Jenkins - Artifactory Online by JFrog - many more for Redmine and Subversion ...but don’t forget to manage identityacross all services! Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  20. 20. Or yet what’s next again... We can switch from Subversion to a more advanced SCM... ..like Git for example! And use instead of Subversion Edge as a distribution of Git with web management for user, repositories and permissions available as service and packaged... http://www.gitenterprise.com Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  21. 21. SFBOX - The Project Some references: - http://tinyurl.com/sfbox - the Software Factory in a Box in OVA format (Open Virtualization Format Archive, runnable on VirtualBox, VMWare Player/ Workstation and possibly others...) - login account with sudo privileges is: user/password - hostname is sfbox.local published via DNS-SD - https://github.com/mteodori/sfbox - the Software Factory in a Box project on GitHub to collect feedback, input and share install scripts... Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011
  22. 22. Q&A &... thanks! - http://www.jugmilano.it/ - JUG Milano & endless discussions on tools and best practices on our mailing list! - http://www.liludori.com/ - the wonderful world of Liludori providing the pictures in this presentation, courtesy of Mauro Gandini and Eloisa Scichilone Marcello Teodori - marcello.teodori@gmail.com – JUG Milanosabato 5 marzo 2011

×