Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven...

Post on 08-Jun-2015

474 views 0 download

Tags:

description

Alfresco has gone a long way in providing best-of-breed tools to power the full spectrum of an ECM project, from inception to delivery. In this session, based on real business cases, we'll demostrate how, using tools like the Maven Alfresco SDK and Alfresco Boxes, you can deliver a fully working Alfresco customized project from scratch running in the Cloud, all of this using quality focused, reproducible, reliable, Enterprise ready processes.

Transcript of Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven...

From Zero to Hero

Gabriele Columbro WW Manager Expert Services

Maurizio PillituTechnical Consultant, EMEA

Get your Alfresco Project

with Alfresco SDK 2.0 and Alfresco Boxes

Inspired to: https://developers.facebook.com/blog/post/417/

Where it all started…

http://devops.com/blogs/you-cant-sell-devops/

Mission statements

Deliver a true rapid development experience on Alfresco, integrating but not depending on IDEs.

Enable unprecedented quality and longevity of your Alfresco projects.

Automate key project lifecycle phases.

Provision reliably arbitrarily complex architectures.

Inception Provisioning & deployment

Release & distribution

Development

Alfresco basic project lifecycle

Inception Release & distribution

Development Provisioning & eployment

Lifecycle ownership

Dev Ops

Today’s menu

• Dev —> Alfresco SDK 2.0• The ultimate Alfresco Developer

experience

• Ops —> Alfresco Boxes • The ultimate Alfresco Deployment

experience

• Use case & demo• “Real life” project from scratch

How do Dev & Ops talk?

• In this case, like in Italian :))))

• The role of the artifact repository • Exchange of AMP / WAR artifacts between

actors• Publishing and distribution of artifacts for

downstream usage• Searchable

• Example (s)• https://artifacts.alfresco.com• Your own corporate Maven repository

Alfresco SDK 2.0

The best Alfresco development experience to date. By far. And 100% Community.

Maven updates

https://twitter.com/pmonks/status/513907704859873280

Alfresco Maven Developers Bulletin• Alfresco 5 is fully built with Maven

• Yes, it was about time to drop Ant.

• Maven Alfresco SDK 2.0.0 (beta-4) is out • Compatible with Alfresco 5.x• Available on Maven Central!

• “Old” Eclipse + Ant SDK deprecated• Not shipped with Alfresco 5.x• Superseded by the Maven Alfresco SDK

Alfresco SDK Metamorphosis

SDK 2.0 New Killer Features

RAD (Rapid Application Development)Hot Java Reloading with SpringLoaded &

Tomcat7 For AMP and All in One archetype

IDE Integration and independenceWorks non intrusively OOTB with Eclipse &

Idea

Share AMP archetypeWith sample Aikau widget!

How hot is hot?

What’s reloaded?Java code (main & unit tests)Javascript & Freemarker templates (web

scripts)Web resources / JSP

What’s not reloaded?Spring context files (YMMV with JRebel)Properties files (use JMX instead)

More SDK 2.0 FeaturesQuality

Alfresco Share Selenium tests supportRemote JUnit test executionAlfresco Technical Validation Tool (experimental)

IntegrationsRM (Records Management) support

100% CommunitySDK released to Maven Central! SDK project migrated to Github

Use the SDK 2.0 in your project!

<parent> <groupId>org.alfresco.maven</groupId> <artifactId>alfresco-sdk-parent</artifactId> <version>2.0.0-beta-4</version> </parent>

2.0.0 will be released by London Summit (Oct 2014)

Develop!https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-sdk-aggregator/latest/index.html

Alfresco SDK 2.0 at a glance

Use!http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html

Contribute!Report issues:

https://github.com/Alfresco/alfresco-sdk/issues

Fork us: https://github.com/Alfresco/alfresco-sdk/fork

Project “Fettuccine Alfresco”

An engaging and inspiring collaboration platform for our chain of restaurants

Requirements

• Functional• Integration with an external Recipe service

(e.g. BigOven.com)• Recipe of the Day user Dashlet

• Non functional• VM deployment strategy• Continuous delivery • High availability

Demohttps://github.com/mindthegab/fettuccine-alfresco-aio• Rapid development in with Alfresco

SDK• Java backed webscript• Repo service• Share dash let

• Provisioning with Alfresco Boxes• ISO based• Packer• Vagrant

Alfresco Boxes

Bring your Alfresco deployment strategy to the next level building Alfresco Boxes in a configurable, consistent way.

Whatever Boxes means.

Disclaimer

Not Alfresco Supportedhttps://github.com/maoo/alfresco-boxesNot a full Alfresco Installer replacement

ExperimentalFew customers early adopters

So Many Alfresco Boxes!

Type

ISO

AMI

Docker Image

...

Purpose

Bulk Upload

Share UI

Solr indexing

Allinone

...

ContainerVirtualBox,VMWare

Docker run

Amazon EC2 Dashboard

Bare Metal

...

How to build a Box

Start from an official distro

http://releases.ubuntu.com/ 12.04.4/ubuntu-12.04.4- server-amd64.iso

Support local virtualisation tools

VBox, VMWare, Parallels,...

Support cloud virtualisation services

Amazon, DigitalOcean, Google,...

Consistent provisioning syntax

JSON declarative configuration of all arch.

components

ModularInclude/Exclude arch.

components

ExtensibleUse custom artifacts and

configuration parameters

Production-ready No additional

configuration steps, no restarts

Cluster-ready Enterprise images can be executed several times to

create a clustered installation

Component Basedmysql, tomcat,

transform, repo, solr, share

Install custom AMPsSharepoint Protocol

extension installed by default

Generate or patch alfresco-global, share-

config, log4j properties

Download, unzip, filter

external ZIP file to create $TOMCAT_HOME/shared/cl

asses

Fetch artifactsfrom filesystem, URL or

Maven repositories

Fully configurable alfresco-global, share-config, log4j properties

Use custom WARsfor repo, solr or share

applications

Provisioning with Chef Alfresco

Building with Packer

vmware-vmx vmware-vmx

docker docker

amazon-ebs amazon-ebs

virtualbox-iso virtualbox-isochef-solo (chef-alfresco)

shell

puppet

BuildersProvisioners

Building acme project{ "builders": [ { "type": "amazon-ebs", "source_ami": "ami-a4e81fd3", ... }, { "type": "virtualbox-iso", "iso_url": "http://releases.ubuntu.com/12.04.4/ubuntu-12.04.4-server-amd64.iso", ... } ],

"alfresco": { "components" : ["tomcat","transform","repo","share","solr","mysql"] "generate.global.properties" : false, "generate.repo.log4j.properties" : false, "generate.share.config.custom" : false, "start_service": true, "artifacts": { "alfresco": { "groupId": “it.fettuccine.alfresco”, "artifactId": "repo", "version": “1.0.0" }, "share": { "groupId": "it.fettuccine.alfresco", "artifactId": "share", "version": “1.0.0" } ...

Provisioning acme project

{ "id":"maoo-public", "url": "https://repository-maoo.forge.cloudbees.com/release", "username":"null", "password":"null"}

Configuring Maven repo access

packer build -only virtualbox-iso summit-demo.json

Running Packer build

Image Hierarchy

alfresco base

ubuntu 12.04

alfresco web base

alfresco repo base

alfresco allinone

community

alfresco allinone

enterprise

alfresco share

alfresco repo

alfresco solr

Base Images

Allinone Images

Architecture Images

https://hub.docker.com/u/maoo

An Alfresco Architecture

Alfresco Share

Alfresco Repo

Share/Repo data

Index tracking

Search Query

HTTP Balancing

DATA

DB Access

FS Access

Alfresco Share

Alfresco Repo

SOLR1

BULK DB

Alfresco Repo

Alfresco Solr

HA Proxy

Alfresco Repo

SHARE2SHARE1

LB

SKYDOCK

SKYDNS

Alfresco Boxes Overview

Build Images(with Packer Builders)

Run @cloud(with Amazon Dashboard)

Run @local (with

Vagrant) Run @virtual (with Docker)

Publish Images(with Packer Builders)

public/private AMI public/private Docker Registry

What's nextOrchestration and Dashboardingkubernetes, fig, weaze, …

More integrationOracle, PostgreSQL, MSSQL, CentOS, JBoss, …

More imagesshare-only, solr-only, …

More featuresRestore from a backup snapshot, DB clustering, …

Today’s take away

DevSDK 2.0 enables unprecedented

development experience and quality in development and release of your Alfresco Projects

OpsAlfresco Boxes provides a first

comprehensive attempt to cover the Alfresco deployment lifecycle in the Cloud era.

We got you covered!

Thank you / Grazie!

Gabriele Columbrogabriele.columbro@alfresco.comtwitter: @mindthegabzhttp://mindthegab.com

Maurizio PIllitumaurizio.pillitu@alfresco.comtwitter: @maoo