Upload
gabriele-columbro
View
474
Download
0
Tags:
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
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
https://github.com/maoo/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
https://github.com/maoo/alfresco-boxes
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 [email protected]: @mindthegabzhttp://mindthegab.com
Maurizio [email protected]: @maoo