• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Software Factory in a Box
 

Software Factory in a Box

on

  • 3,158 views

Are we not lucky enough to enjoy a proper software development process in our team? We can try to improve our working environment with a setup on our local machine of a virtualized "software factory ...

Are we not lucky enough to enjoy a proper software development process in our team? We can try to improve our working environment with a setup on our local machine of a virtualized "software factory in a box" based on opensource tools (Maven/Redmine/Artifactory/Subversion/Jenkins). Following this approach We'll see how we can experiment on ourselves some integration best practices for these tools and easily introduce them into our company later.

Statistics

Views

Total Views
3,158
Views on SlideShare
2,927
Embed Views
231

Actions

Likes
3
Downloads
73
Comments
0

7 Embeds 231

http://www.codemotion.it 153
http://2011.codemotion.it 54
http://codemotion.it 11
http://codemotion.macaronilab.com 8
http://www.linkedin.com 3
http://translate.googleusercontent.com 1
http://www.slashdocs.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Software Factory in a Box Software Factory in a Box Presentation Transcript

    • Software Factory in a Box Marcello Teodori JUG Milano Marcello Teodori - marcello.teodori@gmail.com – JUG Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • But inside the factory truth was more often... Like having a cat in the waste bin... Marcello Teodori - marcello.teodori@gmail.com – JUG Milanodomenica 6 marzo 2011
    • Hang on! It’s never too late to... Marcello Teodori - marcello.teodori@gmail.com – JUG Milanodomenica 6 marzo 2011
    • First get 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 Milanodomenica 6 marzo 2011
    • And the lesson we can learn is... Marcello Teodori - marcello.teodori@gmail.com – JUG Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • What can we do...? Software Factory in a Box! - a Virtual Machine with an OSS OS (Ubuntu Server 10.04 LTS) - implementing a software factory - for Maven/Java projects (mostly...) - built on OSS tools - we can experiment best practices with Marcello Teodori - marcello.teodori@gmail.com – JUG Milanodomenica 6 marzo 2011
    • 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) all configured using PostgreSQL as database with the same identity across all systems provided by OpenLDAP (directory server) Marcello Teodori - marcello.teodori@gmail.com – JUG Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011
    • 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 Milanodomenica 6 marzo 2011