SlideShare a Scribd company logo
Keeping Your Sanity

Rapid Development & Deployment Tools"
                   October 26th, 2011"
         Gary Cox – Blue Fish Development Group"
Overview"
Who is the Target Audience?
  •  New Alfresco developers trying to get a better understanding of
     potential approaches to developing and deploying custom code"
  •  Developers that currently have some components of a system in
     place, but need a more complete solution"
  •  Developers looking to see “What else is out there?”"
  •  Some Java platform experience is assumed"

What will We Cover Today?
  •  Discussion of the overall approach and the open source tools that
     we use"
  •  Solutions to tricky problems using these standard tools"
  •  Brief demonstration of using these tools against Alfresco
     Community 4.0.a"
  •  Where to go to find more information"
Goals"
Quick Overview of Alfresco Deployment Concepts
  •  Review Alfresco deployment approaches"
  •  Developing in a team environment"

Understand the Challenges
  •    Choosing a deployment model"
  •    Developing and deploying in a team environment"
  •    Ramping up new developers"
  •    Quickly standing up new projects"

Tools and Processes to Make this Process Easier
  •  Use Open Source tools"
  •  More than just tools: Provide a process"
  •  Process should be adaptable to different tools"
Who is Blue Fish Development Group?"

Alfresco Platinum Partner"
Focused on ECM for 12 years
  •  Document Management and
     Collaboration"
  •  Custom Application
     Development"
  •  Content Migrations"
Client Base
  •  Global 2000"
  •  Growing Mid-Market Companies"

Key Offerings
  •  Alfresco Quick Starts"
  •  Turnkey ECM Solutions"
  •  Alfresco Projects in "Small Bites""
Guiding Principles"

What are the Guiding Principles for Our Development
Tools and Processes?"
  •  Improve repeatability"
  •  Controlled releases"
  •  Ability to quickly ramp up Developers"
  •  Ability to quickly stand up new Development environments"
 •  Modularity"
  •  Keep customizations separate from Alfresco"
  •  Keep customizations in project-specific paths to support
     multiple modules"
 •  Efficiency "
  •  Ability to develop against a variety of Alfresco versions"
  •  Reduce cycle time"
  •  Ability to revert to a known/clean state"
Review Potential Deployment Approaches"

Many Potential Approaches to
Deploying Custom code
  •  Overwrite existing files under
     the WEB-INF directory"
  •  Deploy into /extension or /
     web-extension paths of the
     application"
  •  Deploy code into the /shared
     path"
  •  Package customizations into
     AMP files and deploy into /
     module path"
Points of Pain for These Approaches 1"

Overwrite existing files under the WEB-INF directory
 • Disadvantages"
   • Nightmare for maintenance"
   • Can make every upgrade a difficult process"
   • No central location for customizations"
Points of Pain for These Approaches 2"
Deploy batch of customized files into the /extension or /web-
extension paths of the application
 • Advantages"
   • Overriding instead of replacing out of the box functionality, which is a good
     thing"
 • Disadvantages"
   • How to handle packaging and versioning of content?"
   • Are you all on the same version of the files?"
   • What version is out there, anyway?"
   • How to integrate multiple packages?"
Points of Pain for These Approaches 3"

Deploy code into the /shared path
 • Advantages"
   • Doesnʼt get overwritten by new deployments of WAR files"
   • Good for environment-specific files (like properties files)"

 • Disadvantages"
   • This is typically where server specific properties files reside. May require
     tweaking the set of deployed files"
   • Potential versioning issues"
   • Integrating multiple projects"
Points of Pain for These Approaches 4"

Package customizations into AMP files
 • Advantages"
   • Quick to deploy a set of customizations"
   • Can group customizations into multiple AMPs if needed"
   • Provides a way to install a known version of an AMP (and an easy way to
     check the installed version)"
   • Easier to avoid problems when integrating add-ons from multiple sources"

 • Disadvantages"
   • Packaging into an amp can take longer"
   • Current deployment tool does not support uninstalling an AMP"
   • Typically still need a way to deploy environment-specific properties files"
Team Development Headaches"

What are the Considerations when Working as a Team?
  •  Coordinated modification of the source"
    •    Source control"
    •    Continuous Integration"
  •  Bringing new developers onto a project"
  •  Modularization"
    •    Developers can focus on their areas of expertise"
    •    Can work on subset of project that you are focused on"
Blue Fishʼs Approach to Keeping Things Sane"

Developed a Set of Tools and Procedures to Meet our Needs
  •      Open source tools"
  •      Scripts to bootstrap development environments"
  •      Scripts to speed up development and deployment tasks"
  •      Integration with an Integrated Development Environment to let
         developers get to work quickly.""
        •     Java developers may not even require extensive Alfresco knowledge to
              work on specific tasks ""
  •  Development environments split Alfresco Repository and Share"
What Tools Do We Use?
   •         Subversion"
   •         Maven"
   •         Nexus"
   •         Ant"
   •         Eclipse"
   •         Bamboo for CI (not Open Source, but Hudson is another option)"
Process Overview 1"
Process Overview 2 (The Bigger Picture)"
Overview of Deployment Stack: Build"
Maven"
  •  Maven Benefits"
    •    Manage transitive
         dependencies"
    •    Easy to modularize build"
    •    Standardization across
         projects and build types"
    •    Share build elements (POM
         inheritance)"
    •    Single point of project
         configuration"
    •    Declarative: What needs to
         be done? (versus ʻHow?ʼ)"
  •  Project Object Model
     (POM) files define projects"
    •    Project dependencies"
    •    Project Modules"
    •    Required Plugins"
Overview of Deployment Stack: Artifact Repo"
Nexus"
  •  Used to maintain our
     corporate Maven
     repository"
    •    Alfresco JAR files can be
         added to the repository as
         Artifacts"
  •  Can maintain local
     repositories and point to
     public repositories on the
     Internet"
  •  Developers donʼt need to
     know where artifacts come
     from… ʻone stop shopʼ"
  •  At Blue Fish we maintain a
     repository for 3rd Party
     libraries and our own
     artifacts"
Overview of Deployment Stack: IDE"
Eclipse
•  We typically use Eclipse, but
   other IDEs can be used"
  •    NetBeans"
  •    IntelliJ IDEA"
•  Maven can generate Eclipse
   projects"
  •    mvn eclipse:eclipse"
  •    Import project"
  •    Point to Maven repository by
       setting M2_REPO path"
  •    The Maven POM mappings
       between source directories
       and target paths"
•  Rapid search across project
   source and Alfresco source/
   config files"
Overview of Deployment Stack: Deployment"
Ant
•  Ant scripts are used for deploying AMP files into Development
   Environment"
  •    Pulls out of the box Alfresco WAR files from Maven Repo"
  •    Deploys AMP file(s) into the WAR"
  •    Removes old folder structure"
  •    Can ʻfast-deployʼ into Share"
•  Ant scripts can be configured to install multiple AMPs as
   dependencies as required (for example the Alfresco FDK AMP)"
•  Everything comes from the Maven Repo (Maven Ant Tasks)"
Overview of Deployment Stack: Source Control"



Subversion
•  Broad platform and tools
   support"
•  For Continuous Integration
   (CI), builds are performed on
   code check-in"
•  We use Atlassian Bamboo
   for CI, but other tools such
   as Hudson could be used"
Process Walkthrough"

You Have a New Project (or Projects!) or a New Team
Member… How do You Get Started?
  •  Need to stand up a development environment"
  •  Need the ability to get additional developers ramped up on the
     project quickly (may have variety of skill sets)"
  •  Need to deal with task switching between multiple projects"
  •  Need self-contained stack to switch from project to project rapidly"
Demonstration of a Working Environment
   •  Developers can get started quickly"
   •  Can even hand this off to run ʻofflineʼ once Maven dependencies
      have been downloaded"
   •  The tools handle packaging the AMP and setting the targets for
      folders."
   •  Developers just need to know to write their code in a few source
      folders"
   •  Developers donʼt need to know about other modules or
      dependencies"
Standing Up a New Developer"

Step 1
  •  Get a copy of a project folder"
    •    Contains an Alfresco
         installation (Community, in this
         case)"
    •    All required tools are in the
         “tools” folder"
    •    Downloaded Maven
         dependencies are in “maven-
         repo”"
Standing Up a New Developer"

Step 2
  •  Perform source code update
     to get latest code"
Local Build/Deployment Cycle"

Step 1
  •  Validate that it will
     build:"
    •     ʻmvn clean installʼ"

Step 2
  •  Create Eclipse project:"
    •     ʻmvn eclipse:eclipseʼ"


Step 3
   •  Launch Eclipse"
     •     Import Existing Project into Workspace (trunk directory) to import Alfresco
           and Share"
     •     If using Maven Eclipse plug-in, remember to set ʻM2_REPOʼ build path
           variable and point to ʻmaven-repoʼ (not required if using Eclipse M2Eclipse
           plug-in)"
Local Build/Deployment Cycle"

Step 4
  •  Save custom code in Eclipse"
  •  Typically will use existing /src paths"
Step 5
  •  Test building and deploying into local Alfresco environment:"
    •          ʻmvn clean installʼ"
    •          ʻant clean-install-and-deployʼ"
              •     We have a variety of convenience deployment targets"
              •     ʻant –projecthelpʼ provides a list of deployment targets"

Step 6
   •  Start local Alfresco Repository and Share and review changes"
   •  We start the servers with BAT files"
         •         Separate Tomcat instances for Alfresco Repository and Alfresco Share"
         •         BAT file starts the database"
Challenges that We Encountered"

Environmental
  •  Had issues with OpenOffice if it was nested too deeply"

Maven Challenges
•  Alfresco Module Management Tool doesnʼt understand non-numeric
   version numbers (e.g. 1.0.0-SNAPSHOT)"
  •    We use a plug-in to produce a version number to strip ʻSNAPSHOTʼ"
•  Eclipse integration: Neither the Maven Eclipse plug-in and the Eclipse
   M2Eclipse plug-in understand AMP packaging"
  •    Declare ʻJARʼ packaging and explicitly package and include as AMP"
ANT
   •  Maven Ant Tasks"
       •    Donʼt understand redefining the Central Repository to point at corporate
            repository."
       •     Have to explicitly declare a Remote Repository"
Interested in the Presentation Materials?"

 •  We are hoping to be able to provide some portion of the examples and the
    slides on our FTP site"
 •  We have a sign in sheet if youʼre interested in getting access to the materials
    when they are available."
 •  Check for updates here:"
   •    http://bit.ly/toeD9Y"
Resources"
Where to find the tools discussed in this presentation:
 •  Maven"
   •    http://maven.apache.org/"
 •  Maven Ant Tasks"
   •    http://maven.apache.org/ant-tasks/index.html"
 •  Nexus"
   •    http://nexus.sonatype.org/"
 •  Hudson"
   •    http://hudson-ci.org/"
 •  Eclipse"
   •    http://www.eclipse.org/"
 •  Ant"
   •    http://ant.apache.org/"
 •  Subversion"
   •    http://subversion.apache.org/"
 •  Blue Fish Development Group"
   •    http://www.bluefishgroup.com/"

More Related Content

What's hot

Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3
Ahmed Misbah
 
Configuration as Code in Jenkins. What's new? Nov 2016
Configuration as Code in Jenkins. What's new? Nov 2016Configuration as Code in Jenkins. What's new? Nov 2016
Configuration as Code in Jenkins. What's new? Nov 2016
Oleg Nenashev
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Implementing your own Google App Engine
Implementing your own Google App Engine Implementing your own Google App Engine
Implementing your own Google App Engine
Virtual JBoss User Group
 
Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1
Chef
 
Ceylon From Here to Infinity: The Big Picture and What's Coming
Ceylon From Here to Infinity: The Big Picture and What's Coming Ceylon From Here to Infinity: The Big Picture and What's Coming
Ceylon From Here to Infinity: The Big Picture and What's Coming
Virtual JBoss User Group
 
Enterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryEnterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private Registry
Chris Riley ☁
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Puppet
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]
Ryan Cuprak
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
Michael Lihs
 
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Software, Inc.
 
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic Multi-Cloud PaaS
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Nathen Harvey
 
Docker and Jenkins Pipeline
Docker and Jenkins PipelineDocker and Jenkins Pipeline
Docker and Jenkins Pipeline
Mark Waite
 
12-factor-jruby
12-factor-jruby12-factor-jruby
12-factor-jruby
Joe Kutner
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
Pavel Chunyayev
 
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Symphony Software Foundation
 
The unintended benefits of Chef
The unintended benefits of ChefThe unintended benefits of Chef
The unintended benefits of Chef
Chef Software, Inc.
 
Learning chef
Learning chefLearning chef
Learning chef
Jonathan Carrillo
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for Network
Damien Garros
 

What's hot (20)

Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3
 
Configuration as Code in Jenkins. What's new? Nov 2016
Configuration as Code in Jenkins. What's new? Nov 2016Configuration as Code in Jenkins. What's new? Nov 2016
Configuration as Code in Jenkins. What's new? Nov 2016
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Implementing your own Google App Engine
Implementing your own Google App Engine Implementing your own Google App Engine
Implementing your own Google App Engine
 
Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1
 
Ceylon From Here to Infinity: The Big Picture and What's Coming
Ceylon From Here to Infinity: The Big Picture and What's Coming Ceylon From Here to Infinity: The Big Picture and What's Coming
Ceylon From Here to Infinity: The Big Picture and What's Coming
 
Enterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryEnterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private Registry
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
 
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
Docker and Jenkins Pipeline
Docker and Jenkins PipelineDocker and Jenkins Pipeline
Docker and Jenkins Pipeline
 
12-factor-jruby
12-factor-jruby12-factor-jruby
12-factor-jruby
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
 
The unintended benefits of Chef
The unintended benefits of ChefThe unintended benefits of Chef
The unintended benefits of Chef
 
Learning chef
Learning chefLearning chef
Learning chef
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for Network
 

Viewers also liked

Alfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About FlowAlfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Software
 
Alfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion HogescholenAlfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Software
 
Alfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente AmsterdamAlfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Software
 
Alfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo GroupAlfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Software
 
Alfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of AlfrescoAlfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of Alfresco
Alfresco Software
 
Alfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management applicationAlfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Software
 
Alfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossierAlfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossier
Alfresco Software
 
Culture
CultureCulture
Culture
Reed Hastings
 

Viewers also liked (8)

Alfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About FlowAlfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About Flow
 
Alfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion HogescholenAlfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
 
Alfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente AmsterdamAlfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
 
Alfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo GroupAlfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo Group
 
Alfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of AlfrescoAlfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of Alfresco
 
Alfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management applicationAlfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management application
 
Alfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossierAlfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossier
 
Culture
CultureCulture
Culture
 

Similar to BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools

Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
Arnaud Héritier
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - Maven
Arnaud Héritier
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Martin Bergljung
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
Ankur Goyal
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Gourav Varma
 
BP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesBP-9 Share Customization Best Practices
BP-9 Share Customization Best Practices
Alfresco Software
 
Introduction tomaven
Introduction tomavenIntroduction tomaven
Introduction tomaven
Manav Prasad
 
BP-7 Share Customization Best Practices
BP-7 Share Customization Best PracticesBP-7 Share Customization Best Practices
BP-7 Share Customization Best Practices
Alfresco Software
 
Vagrant to-aws-flow
Vagrant to-aws-flowVagrant to-aws-flow
Vagrant to-aws-flow
Kimberly Macias
 
Mavennotes.pdf
Mavennotes.pdfMavennotes.pdf
Mavennotes.pdf
AnkurSingh656748
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
Mert Çalışkan
 
Devops
DevopsDevops
Devops
JyothirmaiG4
 
ONAP on Vagrant
ONAP on VagrantONAP on Vagrant
ONAP on Vagrant
Victor Morales
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUlrich Krause
 
How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.Fazreil Amreen Abdul Jalil
 
software technology benchmarking
software  technology benchmarkingsoftware  technology benchmarking
software technology benchmarking
Mallikarjuna G D
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Josh Padnick
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
yalini97
 
(Re)-Introduction to Maven
(Re)-Introduction to Maven(Re)-Introduction to Maven
(Re)-Introduction to Maven
Eric Wyles
 
Introduction in Apache Maven2
Introduction in Apache Maven2Introduction in Apache Maven2
Introduction in Apache Maven2
Heiko Scherrer
 

Similar to BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools (20)

Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - Maven
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
BP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesBP-9 Share Customization Best Practices
BP-9 Share Customization Best Practices
 
Introduction tomaven
Introduction tomavenIntroduction tomaven
Introduction tomaven
 
BP-7 Share Customization Best Practices
BP-7 Share Customization Best PracticesBP-7 Share Customization Best Practices
BP-7 Share Customization Best Practices
 
Vagrant to-aws-flow
Vagrant to-aws-flowVagrant to-aws-flow
Vagrant to-aws-flow
 
Mavennotes.pdf
Mavennotes.pdfMavennotes.pdf
Mavennotes.pdf
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
 
Devops
DevopsDevops
Devops
 
ONAP on Vagrant
ONAP on VagrantONAP on Vagrant
ONAP on Vagrant
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.
 
software technology benchmarking
software  technology benchmarkingsoftware  technology benchmarking
software technology benchmarking
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
(Re)-Introduction to Maven
(Re)-Introduction to Maven(Re)-Introduction to Maven
(Re)-Introduction to Maven
 
Introduction in Apache Maven2
Introduction in Apache Maven2Introduction in Apache Maven2
Introduction in Apache Maven2
 

More from Alfresco Software

Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Software
 
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Software
 
Alfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest APIAlfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Software
 
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-KonsoleAlfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Software
 
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit AlfrescoAlfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Software
 
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Software
 
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Software
 
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Software
 
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novumAlfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Software
 
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Software
 
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Software
 
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - SafranAlfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Software
 
Alfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital BusinessAlfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Software
 
Alfresco Day Warsaw 2016: Podpis elektroniczny - BMS
Alfresco Day Warsaw 2016: Podpis elektroniczny - BMSAlfresco Day Warsaw 2016: Podpis elektroniczny - BMS
Alfresco Day Warsaw 2016: Podpis elektroniczny - BMS
Alfresco Software
 
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
Alfresco Software
 
Alfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo DataAlfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo Data
Alfresco Software
 
Alfresco Day Milano 2016 - Tribunale di Cremona
Alfresco Day Milano 2016 - Tribunale di CremonaAlfresco Day Milano 2016 - Tribunale di Cremona
Alfresco Day Milano 2016 - Tribunale di Cremona
Alfresco Software
 
Alfresco Day Milano 2016 - Alfresco Product Update
Alfresco Day Milano 2016 - Alfresco Product UpdateAlfresco Day Milano 2016 - Alfresco Product Update
Alfresco Day Milano 2016 - Alfresco Product Update
Alfresco Software
 
Alfresco Day Milano 2016 - Pernexas
Alfresco Day Milano 2016 - PernexasAlfresco Day Milano 2016 - Pernexas
Alfresco Day Milano 2016 - Pernexas
Alfresco Software
 
Alfresco Day Milano 2016 - Alfresco Activiti
Alfresco Day Milano 2016 - Alfresco ActivitiAlfresco Day Milano 2016 - Alfresco Activiti
Alfresco Day Milano 2016 - Alfresco Activiti
Alfresco Software
 

More from Alfresco Software (20)

Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
 
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
 
Alfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest APIAlfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest API
 
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-KonsoleAlfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
 
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit AlfrescoAlfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
 
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
 
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
 
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
 
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novumAlfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novum
 
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
 
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
 
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - SafranAlfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
 
Alfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital BusinessAlfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital Business
 
Alfresco Day Warsaw 2016: Podpis elektroniczny - BMS
Alfresco Day Warsaw 2016: Podpis elektroniczny - BMSAlfresco Day Warsaw 2016: Podpis elektroniczny - BMS
Alfresco Day Warsaw 2016: Podpis elektroniczny - BMS
 
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
 
Alfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo DataAlfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo Data
 
Alfresco Day Milano 2016 - Tribunale di Cremona
Alfresco Day Milano 2016 - Tribunale di CremonaAlfresco Day Milano 2016 - Tribunale di Cremona
Alfresco Day Milano 2016 - Tribunale di Cremona
 
Alfresco Day Milano 2016 - Alfresco Product Update
Alfresco Day Milano 2016 - Alfresco Product UpdateAlfresco Day Milano 2016 - Alfresco Product Update
Alfresco Day Milano 2016 - Alfresco Product Update
 
Alfresco Day Milano 2016 - Pernexas
Alfresco Day Milano 2016 - PernexasAlfresco Day Milano 2016 - Pernexas
Alfresco Day Milano 2016 - Pernexas
 
Alfresco Day Milano 2016 - Alfresco Activiti
Alfresco Day Milano 2016 - Alfresco ActivitiAlfresco Day Milano 2016 - Alfresco Activiti
Alfresco Day Milano 2016 - Alfresco Activiti
 

Recently uploaded

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 

Recently uploaded (20)

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools

  • 1. Keeping Your Sanity
 Rapid Development & Deployment Tools" October 26th, 2011" Gary Cox – Blue Fish Development Group"
  • 2. Overview" Who is the Target Audience? •  New Alfresco developers trying to get a better understanding of potential approaches to developing and deploying custom code" •  Developers that currently have some components of a system in place, but need a more complete solution" •  Developers looking to see “What else is out there?”" •  Some Java platform experience is assumed" What will We Cover Today? •  Discussion of the overall approach and the open source tools that we use" •  Solutions to tricky problems using these standard tools" •  Brief demonstration of using these tools against Alfresco Community 4.0.a" •  Where to go to find more information"
  • 3. Goals" Quick Overview of Alfresco Deployment Concepts •  Review Alfresco deployment approaches" •  Developing in a team environment" Understand the Challenges •  Choosing a deployment model" •  Developing and deploying in a team environment" •  Ramping up new developers" •  Quickly standing up new projects" Tools and Processes to Make this Process Easier •  Use Open Source tools" •  More than just tools: Provide a process" •  Process should be adaptable to different tools"
  • 4. Who is Blue Fish Development Group?" Alfresco Platinum Partner" Focused on ECM for 12 years •  Document Management and Collaboration" •  Custom Application Development" •  Content Migrations" Client Base •  Global 2000" •  Growing Mid-Market Companies" Key Offerings •  Alfresco Quick Starts" •  Turnkey ECM Solutions" •  Alfresco Projects in "Small Bites""
  • 5. Guiding Principles" What are the Guiding Principles for Our Development Tools and Processes?" •  Improve repeatability" •  Controlled releases" •  Ability to quickly ramp up Developers" •  Ability to quickly stand up new Development environments" •  Modularity" •  Keep customizations separate from Alfresco" •  Keep customizations in project-specific paths to support multiple modules" •  Efficiency " •  Ability to develop against a variety of Alfresco versions" •  Reduce cycle time" •  Ability to revert to a known/clean state"
  • 6. Review Potential Deployment Approaches" Many Potential Approaches to Deploying Custom code •  Overwrite existing files under the WEB-INF directory" •  Deploy into /extension or / web-extension paths of the application" •  Deploy code into the /shared path" •  Package customizations into AMP files and deploy into / module path"
  • 7. Points of Pain for These Approaches 1" Overwrite existing files under the WEB-INF directory • Disadvantages" • Nightmare for maintenance" • Can make every upgrade a difficult process" • No central location for customizations"
  • 8. Points of Pain for These Approaches 2" Deploy batch of customized files into the /extension or /web- extension paths of the application • Advantages" • Overriding instead of replacing out of the box functionality, which is a good thing" • Disadvantages" • How to handle packaging and versioning of content?" • Are you all on the same version of the files?" • What version is out there, anyway?" • How to integrate multiple packages?"
  • 9. Points of Pain for These Approaches 3" Deploy code into the /shared path • Advantages" • Doesnʼt get overwritten by new deployments of WAR files" • Good for environment-specific files (like properties files)" • Disadvantages" • This is typically where server specific properties files reside. May require tweaking the set of deployed files" • Potential versioning issues" • Integrating multiple projects"
  • 10. Points of Pain for These Approaches 4" Package customizations into AMP files • Advantages" • Quick to deploy a set of customizations" • Can group customizations into multiple AMPs if needed" • Provides a way to install a known version of an AMP (and an easy way to check the installed version)" • Easier to avoid problems when integrating add-ons from multiple sources" • Disadvantages" • Packaging into an amp can take longer" • Current deployment tool does not support uninstalling an AMP" • Typically still need a way to deploy environment-specific properties files"
  • 11. Team Development Headaches" What are the Considerations when Working as a Team? •  Coordinated modification of the source" •  Source control" •  Continuous Integration" •  Bringing new developers onto a project" •  Modularization" •  Developers can focus on their areas of expertise" •  Can work on subset of project that you are focused on"
  • 12. Blue Fishʼs Approach to Keeping Things Sane" Developed a Set of Tools and Procedures to Meet our Needs •  Open source tools" •  Scripts to bootstrap development environments" •  Scripts to speed up development and deployment tasks" •  Integration with an Integrated Development Environment to let developers get to work quickly."" •  Java developers may not even require extensive Alfresco knowledge to work on specific tasks "" •  Development environments split Alfresco Repository and Share" What Tools Do We Use? •  Subversion" •  Maven" •  Nexus" •  Ant" •  Eclipse" •  Bamboo for CI (not Open Source, but Hudson is another option)"
  • 14. Process Overview 2 (The Bigger Picture)"
  • 15. Overview of Deployment Stack: Build" Maven" •  Maven Benefits" •  Manage transitive dependencies" •  Easy to modularize build" •  Standardization across projects and build types" •  Share build elements (POM inheritance)" •  Single point of project configuration" •  Declarative: What needs to be done? (versus ʻHow?ʼ)" •  Project Object Model (POM) files define projects" •  Project dependencies" •  Project Modules" •  Required Plugins"
  • 16. Overview of Deployment Stack: Artifact Repo" Nexus" •  Used to maintain our corporate Maven repository" •  Alfresco JAR files can be added to the repository as Artifacts" •  Can maintain local repositories and point to public repositories on the Internet" •  Developers donʼt need to know where artifacts come from… ʻone stop shopʼ" •  At Blue Fish we maintain a repository for 3rd Party libraries and our own artifacts"
  • 17. Overview of Deployment Stack: IDE" Eclipse •  We typically use Eclipse, but other IDEs can be used" •  NetBeans" •  IntelliJ IDEA" •  Maven can generate Eclipse projects" •  mvn eclipse:eclipse" •  Import project" •  Point to Maven repository by setting M2_REPO path" •  The Maven POM mappings between source directories and target paths" •  Rapid search across project source and Alfresco source/ config files"
  • 18. Overview of Deployment Stack: Deployment" Ant •  Ant scripts are used for deploying AMP files into Development Environment" •  Pulls out of the box Alfresco WAR files from Maven Repo" •  Deploys AMP file(s) into the WAR" •  Removes old folder structure" •  Can ʻfast-deployʼ into Share" •  Ant scripts can be configured to install multiple AMPs as dependencies as required (for example the Alfresco FDK AMP)" •  Everything comes from the Maven Repo (Maven Ant Tasks)"
  • 19. Overview of Deployment Stack: Source Control" Subversion •  Broad platform and tools support" •  For Continuous Integration (CI), builds are performed on code check-in" •  We use Atlassian Bamboo for CI, but other tools such as Hudson could be used"
  • 20. Process Walkthrough" You Have a New Project (or Projects!) or a New Team Member… How do You Get Started? •  Need to stand up a development environment" •  Need the ability to get additional developers ramped up on the project quickly (may have variety of skill sets)" •  Need to deal with task switching between multiple projects" •  Need self-contained stack to switch from project to project rapidly" Demonstration of a Working Environment •  Developers can get started quickly" •  Can even hand this off to run ʻofflineʼ once Maven dependencies have been downloaded" •  The tools handle packaging the AMP and setting the targets for folders." •  Developers just need to know to write their code in a few source folders" •  Developers donʼt need to know about other modules or dependencies"
  • 21. Standing Up a New Developer" Step 1 •  Get a copy of a project folder" •  Contains an Alfresco installation (Community, in this case)" •  All required tools are in the “tools” folder" •  Downloaded Maven dependencies are in “maven- repo”"
  • 22. Standing Up a New Developer" Step 2 •  Perform source code update to get latest code"
  • 23. Local Build/Deployment Cycle" Step 1 •  Validate that it will build:" •  ʻmvn clean installʼ" Step 2 •  Create Eclipse project:" •  ʻmvn eclipse:eclipseʼ" Step 3 •  Launch Eclipse" •  Import Existing Project into Workspace (trunk directory) to import Alfresco and Share" •  If using Maven Eclipse plug-in, remember to set ʻM2_REPOʼ build path variable and point to ʻmaven-repoʼ (not required if using Eclipse M2Eclipse plug-in)"
  • 24. Local Build/Deployment Cycle" Step 4 •  Save custom code in Eclipse" •  Typically will use existing /src paths" Step 5 •  Test building and deploying into local Alfresco environment:" •  ʻmvn clean installʼ" •  ʻant clean-install-and-deployʼ" •  We have a variety of convenience deployment targets" •  ʻant –projecthelpʼ provides a list of deployment targets" Step 6 •  Start local Alfresco Repository and Share and review changes" •  We start the servers with BAT files" •  Separate Tomcat instances for Alfresco Repository and Alfresco Share" •  BAT file starts the database"
  • 25. Challenges that We Encountered" Environmental •  Had issues with OpenOffice if it was nested too deeply" Maven Challenges •  Alfresco Module Management Tool doesnʼt understand non-numeric version numbers (e.g. 1.0.0-SNAPSHOT)" •  We use a plug-in to produce a version number to strip ʻSNAPSHOTʼ" •  Eclipse integration: Neither the Maven Eclipse plug-in and the Eclipse M2Eclipse plug-in understand AMP packaging" •  Declare ʻJARʼ packaging and explicitly package and include as AMP" ANT •  Maven Ant Tasks" •  Donʼt understand redefining the Central Repository to point at corporate repository." •  Have to explicitly declare a Remote Repository"
  • 26. Interested in the Presentation Materials?" •  We are hoping to be able to provide some portion of the examples and the slides on our FTP site" •  We have a sign in sheet if youʼre interested in getting access to the materials when they are available." •  Check for updates here:" •  http://bit.ly/toeD9Y"
  • 27. Resources" Where to find the tools discussed in this presentation: •  Maven" •  http://maven.apache.org/" •  Maven Ant Tasks" •  http://maven.apache.org/ant-tasks/index.html" •  Nexus" •  http://nexus.sonatype.org/" •  Hudson" •  http://hudson-ci.org/" •  Eclipse" •  http://www.eclipse.org/" •  Ant" •  http://ant.apache.org/" •  Subversion" •  http://subversion.apache.org/" •  Blue Fish Development Group" •  http://www.bluefishgroup.com/"