SlideShare a Scribd company logo
Alfresco Tech Talk Live #95
Alfresco Software Provisioning Kit (Enzo Rivello, Maurizio Pillitu)
Aboutus
Maurizio (maoo) Pillitu
• Alfresco DevOps
• Before, 30 months of Alfresco Consultancy
• Lead Developer of
– https://github.com/Alfresco/chef-alfresco
Aboutus
Alfresco DevOps
Keep the lights on
• Public services (activiti|my.alfresco.com, Alfresco
Online Trials)
• Internal infrastructure
• Internal projects (QA, Engineering, Sales, Marketing,
...)
Automate all the things
• Automation across the borders
– Technologies
– Departments
• Integration
• Evangelisation
Alfresco SPK
Design|Run|Integrate Alfresco stacks
Agenda
Agenda
• The Challenges
• Alfresco Installation
• Alfresco SPK
• Wrapping up
The Challenges
Challenges
The hosting choice
• Myriads of Cloud Providers
– AWS, Google Compute, Rackspace, OpenShift, Tutum, …
• Myriads of Orchestration Tools
– Cloudformation, Beanstalk, Kubernetes, Terraform, Cloudify/Tosca, Mesos,
Brooklyn, …
Provisioning challenges
• Distributed architectures
• Articulated provisioning process
• Alfresco Installer limitations
Provisioning
Solutions
• Alfresco Installation
– Customisable/Configurable
– Modular
– Versionable
– Portable
• Alfresco SPK
– Define/reuse a stack
– Test a stack locally
– Create Official Alfresco Images (Marketplace AMIs, Vagrant Boxes, …)
– Create Custom Images
– Integrate CI tools with image building process (release pipeline integration)
– Integrate orchestration tools to bootstrap immutable images (go live)
Provisioning
Aboutus
Enzo Rivello
• 3 months of Alfresco Devops
– Activiti Team
• Before, Playstation DevOps
• Lead Developer of
– https://github.com/Alfresco/alfresco-spk
– https://github.com/Alfresco/vagrant-packer-
plugin
• Follow
– https://www.alfresco.com/blogs/devops
– https://github.com/enzor
Alfresco Installation
Instance Lifecycle
AlfrescoInstallation
StackGenesis
Root
Image
(distro) <provision> <bootstrap>
<full provisioning>
ID
4 IPs
ID
Stack Engine
Alfresco
Image
(tiered) Solr
2
Share
1
Share
2
Solr
1
Instance Lifecycle
AlfrescoInstallation
StackGenesis
Root
Image
(distro) <provision> <bootstrap>
<full provisioning>
ID
4 IPs
ID
Stack Engine
Alfresco
Image
(tiered) Solr
2
Share
1
Share
2
Solr
1
Chef Alfresco (beyond Alfresco Installer)
• Cool logo
• Component-based: repo, share, solr, aos and more
• Additional components: haproxy, nginx and more
• Supports 3 run modes (full-provisioning, provisioning-
only, bootstrap-only)
• Any Alfresco configuration can be customised
• Can run continuously (install on top of an installation)
• Downloads artifacts (VS Alfresco Installer monolithic
installation)
– Maven compatible (uses artifacts.alfresco.com by default)
– Use Maven repository of your choice
– (optional) Use URL or file-system to resolve artifacts
• Open Source, 68 releases, 11 contributors -
https://github.com/Alfresco/chef-alfresco
AlfrescoInstallation
Alfresco SPK
and the Vagrant Packer Plugin
Alfresco SPK Operations
AlfrescoSPK
Choose
a stack
Browse stack examples
provided by the SPK
Run/Tweak
Spin up a stack locally
using Virtualbox or
VmWare
Build Images
Define Alfresco
immutable images
Integrate
Run the CI and
orchestration tool
of your choice
AlfrescoSPK
• Stacks (Vagrantfile)
– community-allinone
– enterprise-clustered (share + solr)
• Instance templates
– community-allinone.json
– share.json
– solr.json
SPK Provided Stacks
Configuration items
• Instance template(s) (JSON), which contain
– Chef Alfresco Attributes
– Image building configuration (Packer)
– Local run (Vagrant)
• Vagrantfile to define the stack and reference instance template(s)
– Packer Plugin common configuration
– Local Vagrant run common configuration
AlfrescoSPK
Instance template – Chef Alfresco components
{
"name": ”...",
"alfresco" : {
"components" : <alfresco_components>
}
}
["haproxy","nginx","tomcat","transform","repo","share","solr","mysql"]
Allinone components
["haproxy","nginx","tomcat","transform","repo","share"]
Share components
["haproxy","tomcat”,"repo","transform","solr"]
Solr components
AlfrescoSPK
Vagrantfile – community-allinone
Vagrant.configure("2") do |config|
# Source Image configuration
config.vm.box = "<vagrant_box_name>"
config.vm.box_url = "<vagrant_box_url>”
# Vagrant up configuration
instance_template = JSON.parse("<instance_template_json_path>")
config.vm.provision "chef_solo" do |chef|
chef.json = instance_template
chef.recipe_url = "<chef_alfresco_tar_url>"
instance_template['run_list'].each do |recipe|
chef.add_recipe recipe
end
end
End
https://artifacts.alfresco.com/.../releases/.../chef-alfresco-0.6.25.tar.gz
AlfrescoSPK
Vagrantfile – enterprise-clustered
Vagrant.configure("2") do |config|
# Source Image configuration
config.vm.box = "<vagrant_box_name>"
config.vm.box_url = "<vagrant_box_url>”
# Vagrant up multi-machine configuration
['share','solr'].each do |role|
config.vm.define role do |instance|
instance_template = JSON.parse("<#{role}.json >")
config.vm.provision "chef_solo" do |chef|
chef.json = instance_template
chef.recipe_url = "<chef_alfresco_tar_url>"
instance_template['run_list'].each do |recipe|
chef.add_recipe recipe
end
end
end
end
AlfrescoSPK
Vagrantfile –Packer Plugin configuration
Vagrant.configure("2") do |config|
# Mandatory Vagrant Packer Plugin configuration
config.packer_build.instance_templates = [”share.json”,”solr.json”]
# Optional Chef provisioning configuration
config.packer_build.cookbooks_url = “<chef-alfresco_tar_gz_url>”
config.packer_build.cookbooks_username = “<chef-alfresco_tar_gz_username>”
config.packer_build.cookbooks_password = “<chef-alfresco_tar_gz_password>”
# Chef Databags configuration
config.packer_build.databags_url = “<databags_tar_gz_url>”
config.packer_build.databags_username = “<databags_username>”
config.packer_build.databags_password = “<databags_password>”
# Alternative for Chef cookbooks configuration (using Berkshelf)
# config.packer_build.berksfile = “Berksfile”
AlfrescoSPK
Try it yourself!
# Clone SPK repo
git clone https://github.com/Alfresco/alfresco-spk
# Install Vagrant Packer Plugin
vagrant plugin install vagrant-packer-plugin
cd alfresco-spk/stacks/community-allinone
# Or build your own Vagrantfile and instance template(s)
# Run the stack locally
vagrant up
# Build immutable images (default to Vagrantbox)
vagrant packer-build
Wrapping up
Wrappingup
[Go Live]
Configure
orchestration
tools & CI
[Image Build]
Vagrant packer-
build
[Tweak and Local run]
Vagrant up
[Configuration]
Choose an SPK stack and play with Vagrantfile
and instance templates
Go Live – Zero to Hero
Wrappingup
Infrastructure as Code delivered
• Revamped installation experience
– Component-based installation
– Controls provisioning and bootstrap phases
https://github.com/Alfresco/chef-alfresco
• Reusable instance templates
• Reusable images
• Integration with cloud providers and orchestration tools
https://github.com/Alfresco/alfresco-spk
SPK
Wrappingup
SPK in Alfresco
• AWS Marketplace AMIs
– Alfresco 5.1 Enterprise Allinone
– Alfresco 5.1 Enterprise Allinone + Records Management
– Alfresco Activiti Enterprise
• Online Trials
• Offline Trials / Sales Demos
• Alfresco Benchmark
• Alfresco Infrastructure
• Alfresco Cloud
Wrappingup
Roadmap
• Support additional Linux/Unix OSes
• Publish Alfresco Vagrant boxes for existing instance templates
– allinone, share, solr, …
• Add (seamless) integration with orchestration tools
– Terraform, Cloudformation, Kubernetes, …
• Integrate with Alfresco SDK
• Improved docs for advanced Chef users
• Publish chef-alfresco into Chef Supermarket
Product capabilities, timeframes and features are subject to change and should not be viewed
as Alfresco commitments.
Links
Links
Code
• https://github.com/Alfresco/chef-alfresco
• https://github.com/Alfresco/alfresco-spk
• https://github.com/Alfresco/vagrant-packer-plugin
Icons in the presentation
• http://www.flaticon.com/free-icon/three-books_74982
• http://www.flaticon.com/free-icon/puzzle_69154
• http://www.flaticon.com/free-icon/man-sprinting_67001
• http://www.flaticon.com/free-icon/closed-cardboard-box-with-packing-tape_65843
• http://www.flaticon.com/free-icon/recycle-reuse_25274
• http://www.flaticon.com/free-icon/light-bulb_34386
• http://www.flaticon.com/free-icon/robot-with-server_77744
Thanks!
@Alfresco
Follow us on

More Related Content

What's hot

Command box
Command boxCommand box
PASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and TricksPASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and Tricks
Kellyn Pot'Vin-Gorman
 
Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should know
Jeff Potts
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
Alberto Molina Coballes
 
Javaeeconf 2016 how to cook apache kafka with camel and spring boot
Javaeeconf 2016 how to cook apache kafka with camel and spring bootJavaeeconf 2016 how to cook apache kafka with camel and spring boot
Javaeeconf 2016 how to cook apache kafka with camel and spring boot
Ivan Vasyliev
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
ColdFusionConference
 
Alfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewAlfresco 5.0 Technology Review
Alfresco 5.0 Technology Review
Zia Consulting
 
CommandBox at CFCamp 2014
CommandBox at CFCamp 2014CommandBox at CFCamp 2014
CommandBox at CFCamp 2014
Ortus Solutions, Corp
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
Kellyn Pot'Vin-Gorman
 
Webinar slides: Replication Topology Changes for MySQL and MariaDB
Webinar slides: Replication Topology Changes for MySQL and MariaDBWebinar slides: Replication Topology Changes for MySQL and MariaDB
Webinar slides: Replication Topology Changes for MySQL and MariaDB
Severalnines
 
Navigating the Incubator at the Apache Software Foundation
Navigating the Incubator at the Apache Software FoundationNavigating the Incubator at the Apache Software Foundation
Navigating the Incubator at the Apache Software FoundationBrett Porter
 
#WeSpeakLinux Session
#WeSpeakLinux Session#WeSpeakLinux Session
#WeSpeakLinux Session
Kellyn Pot'Vin-Gorman
 
10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know
Angel Borroy López
 
Configuration Management Tools on NX-OS
Configuration Management Tools on NX-OSConfiguration Management Tools on NX-OS
Configuration Management Tools on NX-OS
Cisco DevNet
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Software, Inc.
 
Rackspace Private Cloud presentation for ChefConf 2013
Rackspace Private Cloud presentation for ChefConf 2013Rackspace Private Cloud presentation for ChefConf 2013
Rackspace Private Cloud presentation for ChefConf 2013Joe Breu
 
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Simplilearn
 
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Software, Inc.
 
Apache development with GitHub and Travis CI
Apache development with GitHub and Travis CIApache development with GitHub and Travis CI
Apache development with GitHub and Travis CI
Jukka Zitting
 
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
Adrian Trenaman
 

What's hot (20)

Command box
Command boxCommand box
Command box
 
PASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and TricksPASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and Tricks
 
Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should know
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
 
Javaeeconf 2016 how to cook apache kafka with camel and spring boot
Javaeeconf 2016 how to cook apache kafka with camel and spring bootJavaeeconf 2016 how to cook apache kafka with camel and spring boot
Javaeeconf 2016 how to cook apache kafka with camel and spring boot
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Alfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewAlfresco 5.0 Technology Review
Alfresco 5.0 Technology Review
 
CommandBox at CFCamp 2014
CommandBox at CFCamp 2014CommandBox at CFCamp 2014
CommandBox at CFCamp 2014
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
 
Webinar slides: Replication Topology Changes for MySQL and MariaDB
Webinar slides: Replication Topology Changes for MySQL and MariaDBWebinar slides: Replication Topology Changes for MySQL and MariaDB
Webinar slides: Replication Topology Changes for MySQL and MariaDB
 
Navigating the Incubator at the Apache Software Foundation
Navigating the Incubator at the Apache Software FoundationNavigating the Incubator at the Apache Software Foundation
Navigating the Incubator at the Apache Software Foundation
 
#WeSpeakLinux Session
#WeSpeakLinux Session#WeSpeakLinux Session
#WeSpeakLinux Session
 
10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know
 
Configuration Management Tools on NX-OS
Configuration Management Tools on NX-OSConfiguration Management Tools on NX-OS
Configuration Management Tools on NX-OS
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of Chef
 
Rackspace Private Cloud presentation for ChefConf 2013
Rackspace Private Cloud presentation for ChefConf 2013Rackspace Private Cloud presentation for ChefConf 2013
Rackspace Private Cloud presentation for ChefConf 2013
 
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
 
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation Setup
 
Apache development with GitHub and Travis CI
Apache development with GitHub and Travis CIApache development with GitHub and Travis CI
Apache development with GitHub and Travis CI
 
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
 

Similar to Alfresco spk-alfresco-day

Alfresco Day Roma 2015: Infrastructure as Code with Chef-Alfresco
Alfresco Day Roma 2015: Infrastructure as Code with Chef-AlfrescoAlfresco Day Roma 2015: Infrastructure as Code with Chef-Alfresco
Alfresco Day Roma 2015: Infrastructure as Code with Chef-Alfresco
Alfresco Software
 
No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with Ansible
Jeff Potts
 
Alfresco Boxes.pdf
Alfresco Boxes.pdfAlfresco Boxes.pdf
Alfresco Boxes.pdf
edmsdelta
 
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Symphony Software Foundation
 
Jahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafJahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karaf
Serge Huber
 
Extending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsExtending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.js
Petr Jiricka
 
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java AppsWebinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
Codefresh
 
Upgrading to Alfresco 6
Upgrading to Alfresco 6Upgrading to Alfresco 6
Upgrading to Alfresco 6
Angel Borroy López
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
J V
 
Ksplice - Keep your Database systems up to date with no downtime
Ksplice - Keep your Database systems up to date with no downtime Ksplice - Keep your Database systems up to date with no downtime
Ksplice - Keep your Database systems up to date with no downtime
Luis Marques
 
How to contribute Apache CloudStack
How to contribute Apache CloudStackHow to contribute Apache CloudStack
How to contribute Apache CloudStack
Go Chiba
 
CICD with SharePoint SPFx A useful overview
CICD with SharePoint SPFx A useful overviewCICD with SharePoint SPFx A useful overview
CICD with SharePoint SPFx A useful overview
pdalian
 
Bee con2016 presentation_20160125004_installing
Bee con2016 presentation_20160125004_installingBee con2016 presentation_20160125004_installing
Bee con2016 presentation_20160125004_installing
Angel Borroy López
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
Antons Kranga
 
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim DowlingStructured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
Databricks
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Ganesh Raju
 
(2018) Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of us(2018) Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of us
Stefan Adolf
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application Management
Clark Everetts
 
Puppet meetup testing
Puppet meetup testingPuppet meetup testing
Puppet meetup testing
Phil Zimmerman
 
Docker 102 - Immutable Infrastructure
Docker 102 - Immutable InfrastructureDocker 102 - Immutable Infrastructure
Docker 102 - Immutable Infrastructure
Adrian Otto
 

Similar to Alfresco spk-alfresco-day (20)

Alfresco Day Roma 2015: Infrastructure as Code with Chef-Alfresco
Alfresco Day Roma 2015: Infrastructure as Code with Chef-AlfrescoAlfresco Day Roma 2015: Infrastructure as Code with Chef-Alfresco
Alfresco Day Roma 2015: Infrastructure as Code with Chef-Alfresco
 
No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with Ansible
 
Alfresco Boxes.pdf
Alfresco Boxes.pdfAlfresco Boxes.pdf
Alfresco Boxes.pdf
 
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
 
Jahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafJahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karaf
 
Extending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsExtending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.js
 
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java AppsWebinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
 
Upgrading to Alfresco 6
Upgrading to Alfresco 6Upgrading to Alfresco 6
Upgrading to Alfresco 6
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
Ksplice - Keep your Database systems up to date with no downtime
Ksplice - Keep your Database systems up to date with no downtime Ksplice - Keep your Database systems up to date with no downtime
Ksplice - Keep your Database systems up to date with no downtime
 
How to contribute Apache CloudStack
How to contribute Apache CloudStackHow to contribute Apache CloudStack
How to contribute Apache CloudStack
 
CICD with SharePoint SPFx A useful overview
CICD with SharePoint SPFx A useful overviewCICD with SharePoint SPFx A useful overview
CICD with SharePoint SPFx A useful overview
 
Bee con2016 presentation_20160125004_installing
Bee con2016 presentation_20160125004_installingBee con2016 presentation_20160125004_installing
Bee con2016 presentation_20160125004_installing
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
 
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim DowlingStructured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
 
(2018) Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of us(2018) Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of us
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application Management
 
Puppet meetup testing
Puppet meetup testingPuppet meetup testing
Puppet meetup testing
 
Docker 102 - Immutable Infrastructure
Docker 102 - Immutable InfrastructureDocker 102 - Immutable Infrastructure
Docker 102 - Immutable Infrastructure
 

Recently uploaded

Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 

Recently uploaded (20)

Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 

Alfresco spk-alfresco-day

  • 1. Alfresco Tech Talk Live #95 Alfresco Software Provisioning Kit (Enzo Rivello, Maurizio Pillitu)
  • 2. Aboutus Maurizio (maoo) Pillitu • Alfresco DevOps • Before, 30 months of Alfresco Consultancy • Lead Developer of – https://github.com/Alfresco/chef-alfresco
  • 3. Aboutus Alfresco DevOps Keep the lights on • Public services (activiti|my.alfresco.com, Alfresco Online Trials) • Internal infrastructure • Internal projects (QA, Engineering, Sales, Marketing, ...) Automate all the things • Automation across the borders – Technologies – Departments • Integration • Evangelisation
  • 5. Agenda Agenda • The Challenges • Alfresco Installation • Alfresco SPK • Wrapping up
  • 7. Challenges The hosting choice • Myriads of Cloud Providers – AWS, Google Compute, Rackspace, OpenShift, Tutum, … • Myriads of Orchestration Tools – Cloudformation, Beanstalk, Kubernetes, Terraform, Cloudify/Tosca, Mesos, Brooklyn, … Provisioning challenges • Distributed architectures • Articulated provisioning process • Alfresco Installer limitations Provisioning
  • 8. Solutions • Alfresco Installation – Customisable/Configurable – Modular – Versionable – Portable • Alfresco SPK – Define/reuse a stack – Test a stack locally – Create Official Alfresco Images (Marketplace AMIs, Vagrant Boxes, …) – Create Custom Images – Integrate CI tools with image building process (release pipeline integration) – Integrate orchestration tools to bootstrap immutable images (go live) Provisioning
  • 9. Aboutus Enzo Rivello • 3 months of Alfresco Devops – Activiti Team • Before, Playstation DevOps • Lead Developer of – https://github.com/Alfresco/alfresco-spk – https://github.com/Alfresco/vagrant-packer- plugin • Follow – https://www.alfresco.com/blogs/devops – https://github.com/enzor
  • 11. Instance Lifecycle AlfrescoInstallation StackGenesis Root Image (distro) <provision> <bootstrap> <full provisioning> ID 4 IPs ID Stack Engine Alfresco Image (tiered) Solr 2 Share 1 Share 2 Solr 1
  • 12. Instance Lifecycle AlfrescoInstallation StackGenesis Root Image (distro) <provision> <bootstrap> <full provisioning> ID 4 IPs ID Stack Engine Alfresco Image (tiered) Solr 2 Share 1 Share 2 Solr 1
  • 13. Chef Alfresco (beyond Alfresco Installer) • Cool logo • Component-based: repo, share, solr, aos and more • Additional components: haproxy, nginx and more • Supports 3 run modes (full-provisioning, provisioning- only, bootstrap-only) • Any Alfresco configuration can be customised • Can run continuously (install on top of an installation) • Downloads artifacts (VS Alfresco Installer monolithic installation) – Maven compatible (uses artifacts.alfresco.com by default) – Use Maven repository of your choice – (optional) Use URL or file-system to resolve artifacts • Open Source, 68 releases, 11 contributors - https://github.com/Alfresco/chef-alfresco AlfrescoInstallation
  • 14. Alfresco SPK and the Vagrant Packer Plugin
  • 15. Alfresco SPK Operations AlfrescoSPK Choose a stack Browse stack examples provided by the SPK Run/Tweak Spin up a stack locally using Virtualbox or VmWare Build Images Define Alfresco immutable images Integrate Run the CI and orchestration tool of your choice
  • 16. AlfrescoSPK • Stacks (Vagrantfile) – community-allinone – enterprise-clustered (share + solr) • Instance templates – community-allinone.json – share.json – solr.json SPK Provided Stacks Configuration items • Instance template(s) (JSON), which contain – Chef Alfresco Attributes – Image building configuration (Packer) – Local run (Vagrant) • Vagrantfile to define the stack and reference instance template(s) – Packer Plugin common configuration – Local Vagrant run common configuration
  • 17. AlfrescoSPK Instance template – Chef Alfresco components { "name": ”...", "alfresco" : { "components" : <alfresco_components> } } ["haproxy","nginx","tomcat","transform","repo","share","solr","mysql"] Allinone components ["haproxy","nginx","tomcat","transform","repo","share"] Share components ["haproxy","tomcat”,"repo","transform","solr"] Solr components
  • 18. AlfrescoSPK Vagrantfile – community-allinone Vagrant.configure("2") do |config| # Source Image configuration config.vm.box = "<vagrant_box_name>" config.vm.box_url = "<vagrant_box_url>” # Vagrant up configuration instance_template = JSON.parse("<instance_template_json_path>") config.vm.provision "chef_solo" do |chef| chef.json = instance_template chef.recipe_url = "<chef_alfresco_tar_url>" instance_template['run_list'].each do |recipe| chef.add_recipe recipe end end End https://artifacts.alfresco.com/.../releases/.../chef-alfresco-0.6.25.tar.gz
  • 19. AlfrescoSPK Vagrantfile – enterprise-clustered Vagrant.configure("2") do |config| # Source Image configuration config.vm.box = "<vagrant_box_name>" config.vm.box_url = "<vagrant_box_url>” # Vagrant up multi-machine configuration ['share','solr'].each do |role| config.vm.define role do |instance| instance_template = JSON.parse("<#{role}.json >") config.vm.provision "chef_solo" do |chef| chef.json = instance_template chef.recipe_url = "<chef_alfresco_tar_url>" instance_template['run_list'].each do |recipe| chef.add_recipe recipe end end end end
  • 20. AlfrescoSPK Vagrantfile –Packer Plugin configuration Vagrant.configure("2") do |config| # Mandatory Vagrant Packer Plugin configuration config.packer_build.instance_templates = [”share.json”,”solr.json”] # Optional Chef provisioning configuration config.packer_build.cookbooks_url = “<chef-alfresco_tar_gz_url>” config.packer_build.cookbooks_username = “<chef-alfresco_tar_gz_username>” config.packer_build.cookbooks_password = “<chef-alfresco_tar_gz_password>” # Chef Databags configuration config.packer_build.databags_url = “<databags_tar_gz_url>” config.packer_build.databags_username = “<databags_username>” config.packer_build.databags_password = “<databags_password>” # Alternative for Chef cookbooks configuration (using Berkshelf) # config.packer_build.berksfile = “Berksfile”
  • 21. AlfrescoSPK Try it yourself! # Clone SPK repo git clone https://github.com/Alfresco/alfresco-spk # Install Vagrant Packer Plugin vagrant plugin install vagrant-packer-plugin cd alfresco-spk/stacks/community-allinone # Or build your own Vagrantfile and instance template(s) # Run the stack locally vagrant up # Build immutable images (default to Vagrantbox) vagrant packer-build
  • 23. Wrappingup [Go Live] Configure orchestration tools & CI [Image Build] Vagrant packer- build [Tweak and Local run] Vagrant up [Configuration] Choose an SPK stack and play with Vagrantfile and instance templates Go Live – Zero to Hero
  • 24. Wrappingup Infrastructure as Code delivered • Revamped installation experience – Component-based installation – Controls provisioning and bootstrap phases https://github.com/Alfresco/chef-alfresco • Reusable instance templates • Reusable images • Integration with cloud providers and orchestration tools https://github.com/Alfresco/alfresco-spk SPK
  • 25. Wrappingup SPK in Alfresco • AWS Marketplace AMIs – Alfresco 5.1 Enterprise Allinone – Alfresco 5.1 Enterprise Allinone + Records Management – Alfresco Activiti Enterprise • Online Trials • Offline Trials / Sales Demos • Alfresco Benchmark • Alfresco Infrastructure • Alfresco Cloud
  • 26. Wrappingup Roadmap • Support additional Linux/Unix OSes • Publish Alfresco Vagrant boxes for existing instance templates – allinone, share, solr, … • Add (seamless) integration with orchestration tools – Terraform, Cloudformation, Kubernetes, … • Integrate with Alfresco SDK • Improved docs for advanced Chef users • Publish chef-alfresco into Chef Supermarket Product capabilities, timeframes and features are subject to change and should not be viewed as Alfresco commitments.
  • 27. Links Links Code • https://github.com/Alfresco/chef-alfresco • https://github.com/Alfresco/alfresco-spk • https://github.com/Alfresco/vagrant-packer-plugin Icons in the presentation • http://www.flaticon.com/free-icon/three-books_74982 • http://www.flaticon.com/free-icon/puzzle_69154 • http://www.flaticon.com/free-icon/man-sprinting_67001 • http://www.flaticon.com/free-icon/closed-cardboard-box-with-packing-tape_65843 • http://www.flaticon.com/free-icon/recycle-reuse_25274 • http://www.flaticon.com/free-icon/light-bulb_34386 • http://www.flaticon.com/free-icon/robot-with-server_77744

Editor's Notes

  1. Fi
  2. Create images of different natures
  3. We start from the instance lifecycle:
  4. We start from the instance lifecycle:
  5. Based on Chef, a Configuration Management With chef-alfresco we can do deep configuration – much more than installer Idempotency ensures Continuous runs and therefore Continuous Delivery Is not monolithic – is a 10kb configuration file that gets executed by a chef client into the box Based on artifacts.alfresco.com – alfresco customer will be able to configure chef-alfresco with their nexus credentials to get the enterprise version
  6. Mention Packer and Vagrant Packer Plugin
  7. SPK comes with 2 built-in stacks (Vagrantfiles) Packer is the engine that builds images and sets the image nature
  8. Mention chef-alfresco docs - https://github.com/Alfresco/chef-alfresco
  9. Chef_alfresco_tar_url = https://artifacts.alfresco.com/.../releases/.../chef-alfresco-0.6.25.tar.gz
  10. #{role}_instance_template_json_path = my_instance_templates/#{role}.json
  11. instance_template_json_path=[“my_instance_templates/share.json”,” my_instance_templates/solr.json”] config.packer_build.cookbooks_url = https://artifacts.alfresco.com/.../releases/.../chef-alfresco-0.6.25.tar.gz This configuration uses chef-alfresco as provisioning “engine” Vagrant Packer Plugin is not alfresco nor chef specific! Don’t panic if you don’t know what Berkshelf is 
  12. Use alfresco-spk github repo to run the pre-built stacks. Then copy the files into your own projects and tweak configuration beased on your needs