42
From Zero to He Gabriele Columbro WW Manager Expert Services Maurizio Pillitu Technical Consultant, EMEA Get your Alfresco Projec with Alfresco SDK 2.0 and Alfresco Boxes

Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes - Alfresco Summit San Francisco 2014

Embed Size (px)

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.

Citation preview

Page 1: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 2: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Where it all started…

Page 3: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 4: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014
Page 5: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014
Page 6: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014
Page 7: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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.

Page 8: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Inception Provisioning & deployment

Release & distribution

Development

Alfresco basic project lifecycle

Page 9: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Inception Release & distribution

Development Provisioning & eployment

Lifecycle ownership

Dev Ops

Page 10: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 11: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 12: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Alfresco SDK 2.0

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

Page 13: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Maven updates

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

Page 14: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 15: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Alfresco SDK Metamorphosis

Page 16: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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!

Page 17: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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)

Page 18: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 19: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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)

Page 20: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 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

Page 21: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Project “Fettuccine Alfresco”

An engaging and inspiring collaboration platform for our chain of restaurants

Page 22: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 23: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 24: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Alfresco Boxes

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

Whatever Boxes means.

Page 25: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Disclaimer

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

ExperimentalFew customers early adopters

Page 26: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

...

Page 27: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 28: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 30: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014
Page 31: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Building with Packer

vmware-vmx vmware-vmx

docker docker

amazon-ebs amazon-ebs

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

shell

puppet

BuildersProvisioners

Page 32: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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", ... } ],

Page 33: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

"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

Page 34: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

{ "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

Page 35: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 36: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 37: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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

Page 39: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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, …

Page 40: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

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.

Page 41: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

We got you covered!

Page 42: Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to Hero with the Maven Alfresco SDK and Alfresco Boxes  - Alfresco Summit San Francisco 2014

Thank you / Grazie!

Gabriele [email protected]: @mindthegabzhttp://mindthegab.com

Maurizio [email protected]: @maoo