10 things you need to know to deliver a successful alfresco project

36
successful Alfresco project Gabriele Columbro WW Manager Expert Services 10 things you need to know to hav

Upload: gabriele-columbro

Post on 14-Jun-2015

475 views

Category:

Engineering


1 download

DESCRIPTION

Customer Success is a core value at Alfresco, and for this we have invested in people, processes and tools to maximize the possibility of our Partners and Customers succeeding in Alfresco Projects. In this session, Gab will share his 5+ years experience on running successful Alfresco projects, providing a comprehensive but practical set of recommendations, to overcome common business & technical hurdles of an Enterprise wide ECM implementation and ensure continued success for your projects. This preso also introduces the first pilot of Alfresco Developer Support service, geared towards helping customers and partners developers in developing high quality, scalable and high longevity Alfresco customizations, as well as to help you support those customizations in production.

TRANSCRIPT

Page 1: 10 things you need to know to deliver a successful Alfresco project

successful Alfresco projectGabriele Columbro WW Manager Expert Services

10 things you need to know to have a

Page 2: 10 things you need to know to deliver a successful Alfresco project
Page 3: 10 things you need to know to deliver a successful Alfresco project

Today’s objectives

Identify key phases in the Alfresco project lifecycle

Make the right choices in each and every phase

Prevent technical issues and going over budget

Prevent and mitigate risk upon issues

Page 4: 10 things you need to know to deliver a successful Alfresco project

Inception Provisioning & deployment

Release & distribution

Development

Alfresco basic project lifecycle

Page 5: 10 things you need to know to deliver a successful Alfresco project

Inception

Alfresco basic project lifecycle

Page 6: 10 things you need to know to deliver a successful Alfresco project

Tip #1: Leverage the Alfresco SDK• Archetypes —> Generally available project

templates• AMP, Share AMP, All in One

• SDK Parent • Inherit best practice behavior based on years of

successful Alfresco projects

• Benefits• Consistency• Productivity• Rapid setup of project lifecycle

Page 7: 10 things you need to know to deliver a successful Alfresco project

Tip #1: Leverage the Alfresco SDK

Page 8: 10 things you need to know to deliver a successful Alfresco project

Tip #2: Be ECM savvy

Page 9: 10 things you need to know to deliver a successful Alfresco project

Tip #2: Be ECM savvy

• ECM is about content, people, processes• Less about technical rocket science 

• What that means• Make sure you design a future proof model

and taxonomy - “the art of ECM”• Ensure your permission model is scalable and

does not prevent future evolutions• Identify content, then people, then how the

content will flow between people and responsibilities

Page 10: 10 things you need to know to deliver a successful Alfresco project

Tip #3: Involve the experts early on

Page 11: 10 things you need to know to deliver a successful Alfresco project

Tip #3: Involve the experts early on• ECM experts can help to:• Identify business value • Define the ECM foundation design and content model

• Alfresco experts can help to:• Get design and development right from the get go• Know the Alfresco specific processes (e.g. Support) and resources (docs,

KB, wiki)

• What are your options?• Alfresco ACE or ACA certified resources, i.e. partners or community

(open source) • Alfresco Partners• Alfresco Consulting• Alfresco dedicated Support packages, like Premiere or Developer

Support

Page 12: 10 things you need to know to deliver a successful Alfresco project

Tip #3: Open Communication & lean responsibilities

Page 13: 10 things you need to know to deliver a successful Alfresco project

Tip #3: Open Communication & lean responsibilities

• Open Communication• Internally• Dev <-> Ops• Shared / managed services• Business & Technical

• Externally• Customer <-> Alfresco• 3-way including Partner

• Lean responsibilities and ownership• Of lifecycle phases (release, packaging, deployment)• Of developed code (customizations support, source code

availability, e.g. Dev Support)

Page 14: 10 things you need to know to deliver a successful Alfresco project

Inception DevelopmentInception

Alfresco basic project lifecycle

Page 15: 10 things you need to know to deliver a successful Alfresco project

Tip #4: Alfresco Open Dev Best Practices

Page 16: 10 things you need to know to deliver a successful Alfresco project

Tip #4: Alfresco Open Dev Best Practices• Best practices pillars• Use only Public APIs (ReST & @PublicApi Java

classes)• Do NOT override / modify Alfresco core webapp• Package and version your customizations• Upper case vs. Lower Case

• Risks vs. benefits• Best Effort vs. Fully Supported• High TCO vs. Low TCO• Version Lock in vs. Version Currency

• Dev Support

Page 17: 10 things you need to know to deliver a successful Alfresco project

Tip #5: Test, test, test

Page 18: 10 things you need to know to deliver a successful Alfresco project

Tip #5: Test, test, test• Flavors of testing• Unit —> Alfresco SDK• Integration —> Alfresco SDK• Black box / regression w/Selenium —> Alfresco

SDK• Load Testing —> Alfresco Benchmark Framework• Consider a POC for large implementations sizing

• Risks vs. benefits• Bugs vs. Quality• Complex supportability vs. Easy troubleshooting• Fail in production vs. Fail early and correct

Page 19: 10 things you need to know to deliver a successful Alfresco project

Inception Release & distribution

Development

Alfresco basic project lifecycle

Page 20: 10 things you need to know to deliver a successful Alfresco project

Tip #6: Define a rock solid delivery process

Page 21: 10 things you need to know to deliver a successful Alfresco project

Tip #6: Define a rock solid delivery process• Mantra: DO NOT TOUCH PRODUCTION MANUALLY!!!• Release early, release often• Unobtrusive packaging and clear versioning• Automation, automation, automation• Did I mention automation?

• Clear collaboration pattern between Dev and Ops • Define a clear DTAP promotion (and back-porting) process of data

and code• D(evelopment)• T(est)• A(cceptance)• P(roduction)

• Alfresco Boxeshttps://github.com/maoo/alfresco-boxes

Page 22: 10 things you need to know to deliver a successful Alfresco project

Inception Provisioning & deployment

Release & distribution

Development

Alfresco basic project lifecycle

Page 23: 10 things you need to know to deliver a successful Alfresco project

Tip #7: Size your system appropriately

Page 24: 10 things you need to know to deliver a successful Alfresco project

Tip #7: Size your system appropriately• Know your use case• Ask the right questions

• Incremental & continuous improvement• Performance testing feedback into further

design• Consider a POC focused on Load Testing• Scalability Blueprint

http://www.alfresco.com/resources/whitepapers/alfresco-scalability-blueprint

• SuperSize my repo• Luis’s session today afternoon

Page 25: 10 things you need to know to deliver a successful Alfresco project

Tip #8: Have a replica of your production repository!

Page 26: 10 things you need to know to deliver a successful Alfresco project

• Why?• Study performances in non productive

environment• Run regression testing on a real life repository

• How?• Automate backup and restore (e.g. Alfresco

BaRT)• Back-porting content, db, indexes on a

periodic basis

• Risk vs. benefits• Long running cases vs. easier troubleshooting• Crawling in the dark vs. control

Tip #8: Have a replica of your production repository!

Page 27: 10 things you need to know to deliver a successful Alfresco project

Tip #9: Monitor. Always.

Page 28: 10 things you need to know to deliver a successful Alfresco project

Tip #9: Monitor. Always.• Even basic monitoring would do, but you should know:• What to monitor• CPU/Memory /Disk• Indexes/db/content store size• Network latency

• How to monitor• Un-intrusive (the over-Heisenberg syndrome!) • Multiple technologies available• Nagios/Icinga (w/ Alfresco integration)• ElasticSearch + Logstash + Kibana

http://summit.alfresco.com/san-francisco/sessions/monitoring-your-alfresco-installation

• New Relic

Page 29: 10 things you need to know to deliver a successful Alfresco project

Tip #10: Work with us!

Page 30: 10 things you need to know to deliver a successful Alfresco project

• Services• Support (Core, Advanced, Expert)• Premiere Services• Consulting• Developer Support (pilot)

• Tools• Alfresco Environment Validation tool• Alfresco Technical Validation tool• Administration consoles• Alfresco Benchmark Framework

Tip #10: Work with us!

Page 31: 10 things you need to know to deliver a successful Alfresco project

Disclaimer:Support Services add-on package currently in pilot phase. Come talk to me if you are interested.

Developer Support

Page 32: 10 things you need to know to deliver a successful Alfresco project

The Developer Support service is a yearly Subscription based service, delivered remotely by development savvy senior Engineers.

The subscription is time limited to periods of 6 months, 1 year or multi-year with no case volume restriction.

Customers will be entitled to a 24h response time SLA.

Developer Support - High level

Page 33: 10 things you need to know to deliver a successful Alfresco project

• SDK, Developer Environment & Productivity • Architecture questions• Public Performance, load testing and sizing best practices• API usage & best practices questions• Support in mapping business requirements into design leveraging

the Alfresco APIs• Code samples and how to customize Alfresco, Share, Workdesk• Roadmap alignment and Sprint Review (at Premium level)• Automation of Alfresco installation, deployment, product

application lifecycle management • Review and recommendations on new/existing

customizations/integrationsCustomization snippets review and recommendations

• Break/fix and Ttroubleshooting assistance on existing customizations

Developer Support - Services

Page 34: 10 things you need to know to deliver a successful Alfresco project

Developer Support - ComparisonActivity Support

Developer Support

Consulting

Will you troubleshoot my custom code for me?

✘ ✓ ✓

Will you facilitate provisioning of product code level fixes if encountered?

✓ ✓ ✓

Will you own technical design of my custom code for me?

✘ ✘ ✓

Will you build my customization for me from scratch?

✘ ✘ ✓

Will you help me understand how to use your public API?

✘ ✓ ✓

Will you recommend best practices for extending Alfresco?

✘ ✓ ✓

Will you join our project kick-off meeting?

✘ ✓ ✓

Will you map our requirements to best practice implementation directives?

✘ ✓ ✓

Will you help me to find bugs in existing custom code?

✘ ✓ ✓

Will you help me troubleshoot my Alfresco APIs usage if I provide a simple

test case?✓ ✓ ✓

Do you provide SLA on response and engagement time?

✓ ✓ ✘

Will you own the delivery of an Alfresco project?

✘ ✘ ✓

Will you come on site? ✘ ✘ ✓

Page 35: 10 things you need to know to deliver a successful Alfresco project

Developer Support

Contact me at [email protected]

Page 36: 10 things you need to know to deliver a successful Alfresco project

Thank you / Grazie!

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