FreeNest’s internal development process changes 2006-2013 Presentation 2013 Marko Rintamäki

Embed Size (px)

Citation preview

  • Slide 1
  • FreeNests internal development process changes 2006-2013 Presentation 2013 Marko Rintamki
  • Slide 2
  • Agenda Original Idea Virtualization ? Development History of The FreeNest Product How development methods has been evolving done during a product lifetime Challenges with product development FreeNest as a service?
  • Slide 3
  • Idea?
  • Slide 4
  • Original Idea 2006 TWIKI Bugzilla Testlink ++ www.twiki.net http://www.teamst.orgwww.teamst.org http://www.bugzilla.org/
  • Slide 5
  • Virtualization as technology Virtualization, in computing, is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system, a storage device or network resources. [1] [1] Virtualization can be viewed as part of an overall trend in enterprise IT that includes autonomic computing, a scenario in which the IT environment will be able to manage itself based on perceived activity, and utility computing, in which computer processing power is seen as a utility that clients can pay for only as needed. The usual goal of virtualization is to centralize administrative tasks while improving scalability and overall hardware-resource utilization. [1]autonomic computing [1] 1970 VAX 1980 IBM PC 2000 2020
  • Slide 6
  • Virtualization solutions VMWARE http://www.vmware.com/ KVM http://www.linux-kvm.org/page/Main_Page XEN http://en.wikipedia.org/wiki/Xenhttp://en.wikipedia.org/wiki/Xen Windows Image File 1 Virtualization SW Emulated HW with SW RAW copy http://en.wikipedia.org/wiki/Hypervisor Image File 2 Server HW
  • Slide 7
  • First Image! CENTOS 3.x PC VMWARE
  • Slide 8
  • 2012 Time goes by 2013 v. 1.3 v. 1.4 V 1.0 V 1.1 V 1.2 V 1.2 rebrand
  • Slide 9
  • Tasks Defects Knowledge Change Service Desk Project Management Project Management Communication Inventory Reporting Brain storming User Management User Management Risks Survey Testing Database system Database system Version control Customer Dev Team Misc Team More Domains added
  • Slide 10
  • FreeNest Product Structure
  • Slide 11
  • TOOL2 Ver X TOOL2 Ver X Integration Operation System Version Integration TOOL4 Ver TOOL4 Ver TOOL1 Ver Y TOOL1 Ver Y Integration TOOL3 Ver Z TOOL3 Ver Z FreeNest service Look And Feel FreeNest tool/install/backup scripts Feature x1 IMAGE FILE
  • Slide 12
  • Dog Food Model http://en.wikipedia.org/wiki/Eating_your_own_dog_food 1.0 1.1 1.2 1.3 1.0 1.1 1.0 1.2 1.1 1.3 1.4
  • Slide 13
  • FreeNest Main Components TWIKI 4 Testlink 1.6.3 TRAC 0.11.x TWIKI 3 FOSWIKI 1.1.5 TRAC 0.12.x Testlink 1.7.4 Testlink 1.9.4 Testlink 1.9.3 Bugzilla 2.x Bugzilla 3.x Bugzilla 4.x CENTOS 4.4 Ubuntu 9.04 Ubuntu 10.04LTS FreeNest 1.0-1.2 FreeNest 1.2+enhanced FreeNest 1.3 FreeNest 1.4 Ubuntu 12.04LTS FOSWIKI 1.1.3 TRAC 0.12.2 Bugzilla 4.0.2 2006 20082009 2012 PhpBB 2.0 PhpBB 3.x Agilo 0.8.5 Agilo 0.9.x Agilo 0.9.5 X X
  • Slide 14
  • Process Support Knowledge Management Error Management Error Management Test Management Test Management Release Planning Release Planning Agile Project Management Agile Project Management Change Management Change Management 20062007200820092012 ***** ***** **** ** ***** ** *** *** Training Environment Training Environment Version Control
  • Slide 15
  • Service Cloud? Service Cloud
  • Slide 16
  • Security?
  • Slide 17
  • Security?? Identification Authentication Identification Authentication SANDBOX http://en.wikipedia.org/wiki/DevOps
  • Slide 18
  • Security - Sandboxing SANDBOX1SANDBOX2SANDBOX3 SANDBOX4SANDBOX5SANDBOX6
  • Slide 19
  • Separated Service Cloud? Service Cloud (Private/Public) Service Cloud (Private/Public) Company Core Infra Identification Authientication Identification Authientication Identification Authientication Identification Authientication
  • Slide 20
  • Development Methods & Evolution
  • Slide 21
  • Me alone! FreeNest Virtual Machine Image FreeNest Virtual Machine Image VMWARE 2006-2009
  • Slide 22
  • Working ok? Install new packages to Image Install new packages to Image Copy Image as test image Delete Test Image Delete Test Image Copy Baseline Image Copy Baseline Image Create New Baseline Image Create New Baseline Image Test run for test image NO YES One Man Show! 2006-2009
  • Slide 23
  • New member on team ! FreeNest Virtual Machine Image FreeNest Virtual Machine Image VMWARE 2009-2010 Mentoring/ Discussion Planning Design
  • Slide 24
  • Working ok? Install packages to Image Install packages to Image Copy Image as test image Delete Test Image Delete Test Image Copy Baseline Image Copy Baseline Image Create New Baseline Image Create New Baseline Image Test run for test image NO YES Anothers Show! 2009-2010 Write integration code
  • Slide 25
  • Team Size Grows! FreeNest Virtual Machine Image FreeNest Virtual Machine Image VMWARE 2010-2011
  • Slide 26
  • Working ok? Install packages to Image Install packages to Image Copy Image as test image Delete Test Image Delete Test Image Copy Baseline Image Copy Baseline Image Create New Baseline Image Create New Baseline Image Test run for test image NO YES Group Show! Group Show! 2010-2011 Write integration code Learn to use???
  • Slide 27
  • Team Size Grows! FreeNest Virtual Machine Image FreeNest Virtual Machine Image VMWARE
  • Slide 28
  • What we tried to do? FreeNest Virtual Machine Image FreeNest Virtual Machine Image VMWARE FreeNest Virtual Machine Image FreeNest Virtual Machine Image VMWARE FreeNest Virtual Machine Image FreeNest Virtual Machine Image VMWARE BASELINE VMWARE
  • Slide 29
  • What we tried to do? FreeNest Virtual Machine Image FreeNest Virtual Machine Image Own Host/VMWARE FreeNest Virtual Machine Image FreeNest Virtual Machine Image Own Host/VMWARE FreeNest Virtual Machine Image FreeNest Virtual Machine Image Own Host/VMWARE BASELINE Own Host/VMWARE
  • Slide 30
  • Current Situation Dev Image BASELINE1 KVM Own Test Image Own Test Image System Integration Image System Integration Image BASELINE2 BASELINE 0 Dev Image 16GB/2TB Hard Disk 12 simultaneous vm machines Task/Ticket User Story Task/Ticket User Story Task/Ticket User Story Task/Ticket User Story Task/Ticket User Story Task/Ticket User Story Task/Ticket User Story Task/Ticket User Story
  • Slide 31
  • Current Situation Dev Image BASELINE1 KVM Own Test Image Own Test Image System Integration Image System Integration Image BASELINE2 BASELINE 0 1 23 Task/Ticket User Story Task/Ticket User Story
  • Slide 32
  • Still problems Configuration Management! Dev Image2 Dev Image3 Dev Image4 Dev Image1 BASELINE2 Are your sure all fixes are added you golden image ?
  • Slide 33
  • Future TOOL SPECIFIC PACKAGE 4 DEP REPO-> DEP FreeNest 1.4 Dev Image GIT Repository GIT Repository TOOL SPECIFIC PACKAGE 3 DEP TOOL SPECIFIC PACKAGE 2 DEP TOOL SPECIFIC PACKAGE 1 DEP System Integration Image System Integration Image Install Patch DEP Update Commit https://publications.theseus.fi/handle/10024/37592
  • Slide 34
  • Development in cloud Development Cloud GIT Repository GIT Repository Package Server Package Server Development Instance Test Bench Instance Test Bench Instance Deployment Cloud Product Instance Product Instance Test Instance Test Instance Test Instance Test Instance
  • Slide 35
  • We could still manage slowly Build 1 Build 64 Build 70 Build 83 Build 30 * * * FreeNest 1.3 Alpha FreeNest 1.3 Beta FreeNest 1.3 Official
  • Slide 36
  • Challenges in product management
  • Slide 37
  • Several Component/Solution Providers Value Stream? Integration Module/Plugin Integration Module/Plugin Tool Community #1 PLATFORM Ubuntu PLATFORM Ubuntu Platform Update/Package Platform Update/Package Home Made components Home Made components Community Fix/Problems Community Fix/Problems Solution Image Solution Image Fix
  • Slide 38
  • Linux Platforms CENTOS 4.4 Ubuntu 9.04 Ubuntu 10.04LTS Ubuntu 12.04LTS FreeNest 1.0-1.2 FreeNest 1.2+enhanced FreeNest 1.3 FreeNest 1.4 Ubuntu 10.04LTS
  • Slide 39
  • Change of is challenge 200620122015?? 2008 2010
  • Slide 40
  • Valley of Death situations with selected technology http://foswiki.org/About/WhyThisFork TWIKI conflict FOSWIKI 1.1.4 2008 Centos 4.x 2009 Ubuntu 9.04 2010 Ubuntu 10.04 LTS 2012 Ubuntu 12.04 LTS KVM 0.11 VMWare Open Stack Bexar + 2011
  • Slide 41
  • Pilots are generating lot of extra work Build 1 Build 64 Build 70 Build 83 Build 30 * * * FreeNest 1.3 Beta FreeNest 1.3 Official Build 18 PILOT1 PILOT2 FreeNest 1.3 Alpha
  • Slide 42
  • PILOT1 Changes during time? Patching Almost Ok! Patching Ok! Patching ? Nope!! PILOT1
  • Slide 43
  • Feature Driven Development?
  • Slide 44
  • FreeNest Product Structure TOOL2 Ver X (Feature) TOOL2 Ver X (Feature) Integration Operation System Version Integration (Feature) TOOL4 Ver (Feature) TOOL4 Ver (Feature) TOOL1 Ver Y (Feature) TOOL1 Ver Y (Feature) Integration TOOL3 Ver Z (Feature) TOOL3 Ver Z (Feature) FreeNest service Look And Feel FreeNest tool/install/backup scripts (feature) Feature x1 IMAGE FILE
  • Slide 45
  • In practice! TOOL2 Ver X TOOL2 Ver X Integration Operation System Version Integration TOOL4 Ver TOOL4 Ver TOOL1 Ver Y TOOL1 Ver Y FreeNest service Look And Feel FreeNest tool/install/backup scripts Feature 1 Release Plan 1.4 (Dec 2012) +Foswiki 1.1.4 Foswiki Freemind Plugin Foswiki Paint Plugin Foswiki Timeline Plugin +Gozerbot Gozer Bugzilla Integration Gozer RSS plugin -Gitolite +Yousource/Gitorious ? +Debian Packages
  • Slide 46
  • Defining Features
  • Slide 47
  • Road mapping product?
  • Slide 48
  • Traceability from Features -> FEATURE Wiki Page FEATURE Wiki Page Postit Trac Task/UserStory DigaBoard Defects/Bugs Test Cases Implementation
  • Slide 49
  • Defining Product / Release Planning Feature Definitions/List Selected Features For Release Selected Features For Release Tasking Kanban Scrum System Testing Bug fix/support New Development
  • Slide 50
  • Tool specific Features? FOSWIKI has lot of plugins which are not enabled yet! http://foswiki.org/Extensions IRC BOTs? Several tool integrations available
  • Slide 51
  • Building a Service for FreeNest How to keep service online?
  • Slide 52
  • How to keep Cloud running? PUPPET/Fabric Controlling PUPPET/Fabric Controlling Load Monitoring Load Monitoring Patch engine Regenerated service
  • Slide 53
  • Continuous service update? FreeNest 1.3 Official Baseline FreeNest 1.3 Official Baseline PATCHES Instance Modifications
  • Slide 54
  • Cloud Service Model Problems? Patch ? ? Own OK ?
  • Slide 55
  • Competitor Example Atlassian On Demand https://my.atlassian.com/ondemand/overview
  • Slide 56
  • Draft Service Life Cycle Order Environment Order Environment Accept Price Select Service Plan Select Service Plan Service Online Support Online Support Online Service Startup Usage Period Usage Period Billing Online Billing Online End of Use Export Data