#SummitNow Rapid Test Driven Development with Alfresco …and a bit of continuous delivery Barcelona, November 6 th 2013 Gabriele Columbro

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
Functional Testing with the Java Stack Test Runner
Maven: Build and project management in the 21th century.
OpenMake Dynamic DevOps
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
DevOps and Private Cloud Automation 23 April 2015 Hal Clark.
Mike Azocar Sr. Developer Technical Specialist Microsoft Corporation
Agile Testing with Testing Anywhere The road to automation need not be long.
© copyright 2014 BMC Software, Inc. DevOps consultant Niek Bartholomeus Going DevOps with BMC.
Introduction to the Java Stack Michael Youngstrom.
DNN LOVES JENKINS FOR CONTINUOUS INTEGRATION
Alfresco – An Open Source Content Management System - Bindu Nayar, Bhavana Mohanraj.
Maven and Stack Starter Michael Youngstrom. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack.
Achieving Agility with WSO2 App Factory S. Uthaiyashankar Director, Cloud Solutions WSO2 Inc. Dimuthu Leelarathne Software Architect WSO2 Inc.
PHP, QA, and Jenkins Eric Cope June 25, 2013
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
AUTOBUILD Build and Deployment Automation Solution.
SOA-14: Continuous Integration in SOA Projects Experience from the field Andreas Gies Principal Architect.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
What’s new in Stack 3.2 Michael Youngstrom. Disclaimer This IS a presentation – So sit back and relax Please ask questions.
AUTOBUILD Build and Deployment Automation Solution.
Platform Upgrades As A Service Raj Nagarajan, Robert Enyedi.
Model a Container Runtime environment on Your Mac with VMware AppCatalyst VMworld Fabio Rapposelli
Using the ALM Module Fully Automated Deployments in Stack 3.2.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Using the ALM Module Michael Youngstrom. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in lab Please ask questions.
Installation and Development Tools National Center for Supercomputing Applications University of Illinois at Urbana-Champaign The SEASR project and its.
Distributed Java Programming Distributed Java Programming Setting up a Java Development Environment.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
Continuous Delivery on AWS
Introduction to the Java Stack Michael Youngstrom.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Paperless Timesheet Management Project Anant Pednekar.
Software Deployment & Release 26/03/2015 1EN-ICE.
Process changes: Internal processes of CASA, external contributions, release schedule Mark G. Rawlings, CASA Build & Test Lead NRAO, Charlottesville Acknowledgements:
The Next Level Of Agile: DevOps and CD אוקטובר 2015.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
© 2013 IBM Corporation Accelerating Product and Service Innovation Service Virtualization Testing in Managed Environments Michael Elder, IBM Senior Technical.
Apache Maven as a Community & Enterprise enabler Gabriele Columbro Principal Architect, Alfresco Software.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
The Maven Alfresco SDK™ At the end of a journey, there is always a new beginning…
Platform & Maven2 David Šimonek. Certified Engineer Course Agenda What is Maven? Why Maven? NB IDE & Maven NB Platform & Maven.
Alfresco Software Provisioning Kit
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
4/24/ :07 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Develop in the Cloud, Accelerate Software Evolution
Maven 04 March
Getting Started with Alfresco Development
Infrastructure Orchestration to Optimize Testing
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
On the road: Test automation in practice for a BMW map update service
Dmytro Mykhailov How HashiCorp platform tools can make the difference in development and deployment Target and goal of HashiCorp.
Advanced Integration and Deployment Techniques
Drupal VM and Docker4Drupal For Drupal Development Platform
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
Continuous Performance Engineering
Managing Development Projects Across Oracle Cloud Services: A Guide
X in [Integration, Delivery, Deployment]
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
JENKINS TIPS Ideas for making your life with Jenkins easier
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
HCL’s Viewpoint – DevOps on MS Cloud
DEVOPS & THE FUTURE OF TESTING
Node.js Test Automation using Oracle Developer Cloud- Simplified
SSDT, Docker, and (Azure) DevOps
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
Presentation transcript:

#SummitNow Rapid Test Driven Development with Alfresco …and a bit of continuous delivery Barcelona, November 6 th 2013 Gabriele Columbro Global Manager, Expert Support Services

#SummitNow Rapid Application Development A programming system that enables programmers to quickly build working programs. In general, RAD systems provide a number of tools to help build tools to replace tasks that would normally take a large development effort or amount of time. programmers programs

#SummitNow Test Driven Development Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.software development processtest caserefactors

#SummitNow Continuous Delivery Continuous Delivery (CD) is a pattern language used in software development to automate and improve the process of software delivery. Techniques such as automated testing, continuous integration and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overheadpattern language automated testingcontinuous integration

#SummitNow A glimpse on the overall process (Maven) SDK CI Server Source Control Maven Repo Continuous deploy Commit Checkout Develop Configure Unit Test Package TDD RAD Unit Test Integration Test Regression Test Load Test Deploy JAR WAR AMP wGet JAR WAR AMP Deploy to VM, physical, cloud Create stack (e.g. DB, OS) Configure stack Run it! DTAP promotion (Dev, Test, Accpt, Prod) SVN Git hg Nexus Artifactory Archiva

#SummitNow Contracts are the KEY! Commit early, commit often Leverage automated CI as much as possible Identify early your distribution atom E.g. WAR in Maven repository

#SummitNow Alfresco RAD mantra Use the Maven SDK Avoid redeployment as much as you can. Leverage Alfresco dynamic features. Automate and run embedded. Ever tried JRebel? Integrate with IDE, don’t depend on it.

#SummitNow My development environment Ant … …No, seriously, obviously Maven. And Eclipse, when needed.

#SummitNow Maven Alfresco SDK is out! Support for Alfresco Enterprise With Alfresco Enterprise 4.2+ By Alfresco Support and with docs It’s been a long journey…

#SummitNow Soon to be supported on EE!

#SummitNow SDK RAD features Full embedded run in Tomcat + H2 Out of container JUnit testing support Automatic download of sources and Javadocs

#SummitNow additional RAD features Runs in Tomcat7 embedded (replaces Jetty) Remote JUnit running JRebel integration Improved IDE integration

#SummitNow Alfresco Enterprise groupId change Up to 4.2.0: org.alfresco  Community org.alfresco.enterprise  Enterprise Post 4.2.0: org.alfresco  Community / Enterprise

#SummitNow Eclipse tips developers/keplersr1 developers/keplersr1 Eclipse Kepler m2e included by default in Java EE distro Maven Dependency Plugin m2e connector

#SummitNow Demo of AMP archetype

#SummitNow Hot Redeployment options Webscripts built-in redeployment Module hot reloading OSGI and Dynamic Extensions Code hot reloading

#SummitNow Webscripts development Built-in hot reloading features Repository (the easy way) Mount Data Dictionary/Web Script Extensions via WebDav Edit webscripts and reload Share Configure a custom webscript store

#SummitNow Dynamic Extensions Pro Enables OSGI on “top of” Alfresco Provides annotation based Repository development Cons (Currently) not supported on Enterprise

#SummitNow Hot Code Replacement options Agents Jrebel (proprietary and complete) Fakereplace (FOSS but limited) JVM modifications DCEVM Talks of getting it in Java 8 (Hot Swap)

#SummitNow JRebel Allows hot redeployment Classes Web resources Strong support for Spring Framework Licensing Trial, OSS license, Social License Proprietary license

#SummitNow JRebel Maven config 1.MAVEN_OPTS=- javaagent:/jrebel/location/jrebel.j ar 2.JAVA_OPTS=- Xbootclasspath/a:/jrebel/location/j rebel.jar 3.Configure rebel.xml to map resources you want to monitor SDK automates it with jrebel-maven-plugin

#SummitNow Remote JUnit testing In order to enable TDD, tests should be fast. Starting Spring application contexts is NOT. junit-remote allow remote in-app Junits

#SummitNow The “rad” profile Automatically create the rebel.xml and includes remote Junit test support (-Prad) Annotation based Spring testing. Built in local testing fallback. Pretty slick, uhm?

#SummitNow What happens under the hood Maven / Eclipse 4578 Jetty 8080 Test Class + Method + Runner (Test) Class file reloading NOTE: Kudos to Bindu Zia for the inspiration Bonus: if remote host is down, falls back gracefully to local testing Bonus: Using comma separated hosts parallel running on multiple hosts is possible!

#SummitNow Rapid Development with JRebel and remote JUnit Disclaimer: Still early release, some hiccups to iron out

#SummitNow Maven Alfresco SDK roadmap More Archetypes / features Pre-configured on Enterprise Benchmark archetypes with Selenium integration Process Integration with continuous deploy Documentation cleanup Supported Alfresco Enterprise matrix

#SummitNow And Maven for the Alfresco build? Alfresco’s build is highly Mavenized Quasi-Maven build in HEAD Used by Cloud for continuous delivery But not fully functional POMs work, but requires last ironing Stay tuned

#SummitNow Continuous Delivery Reuse the cloud experience. Leverage a corporate Maven repo and the Alfresco Artifacts Repo. Continuous integration. Continuous integration. Continuous integration. Continuous integration. Automated unit, integration, load testing. Deliver on premises or to the cloud. Did I mention Continuous Integration?

#SummitNow Once you are done developing A system should take care of doing the boring part for you. Testing automation is the key. And upon successful testing, deploy your app. By the books: On premise (VM or bare metal) On the cloud

#SummitNow Continuous delivery bricks Continuous integration On prem Jenkins Bamboo PaaS Cloudbees Heroku Continuous Deployment Automation Puppet Chef Provisioning Vagrant Docker

#SummitNow CI On Premises Open Source Continuous Integration Server Fully Integrated with Maven JUnit/TestNG test reporting Plugin Architecture Distributed builds

#SummitNow PaaS On the Cloud Continuous Delivery PaaS Platform as a service Freemium model Automatic provisioning of Source control / Maven repo Hosting CI server (e.g. Jenkins) Deployment environments

#SummitNow Chef & Puppet DevOps automation. Both provide a way to configure your deployment environment in a declarative and reproducible way.

#SummitNow Chef & Puppet for Alfresco Both used at Alfresco (internally) for IT and Cloud deployments. Community integrations: Chef Puppet

#SummitNow Vagrant Provision and configure and lightweight, reproducible, and portable development / production (virtual) environments. Supports: AWS / VirtualBox / ESX / LXC For Alfresco:

#SummitNow Docker Docker is an open-source project to easily create lightweight, portable, self- sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more.

#SummitNow What can you expect from Alfresco? A tighter integration between the Maven SDK and deployment frameworks to provide a fully supported Continuous Delivery process. Technology evaluation phase, your feedback is key.

#SummitNow Conclusions Alfresco is investing in a supported Continuous Delivery model. By using the Maven SDK and available technology you can achieve high quality software in very short time to prod. And that makes everyone…

#SummitNow

What do you use?

#SummitNow What do you use?

#SummitNow Q/A Gabriele Columbro Or come see me at the Expert Bar!

#SummitNow