Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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:...
Aboutus
Alfresco DevOps
Keep the lights on
• Public services (activiti|my.alfresco.com, Alfresco
Online Trials)
• Internal...
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...
Solutions
• Alfresco Installation
– Customisable/Configurable
– Modular
– Versionable
– Portable
• Alfresco SPK
– Define/r...
Aboutus
Enzo Rivello
• 3 months of Alfresco Devops
– Activiti Team
• Before, Playstation DevOps
• Lead Developer of
– http...
Alfresco Installation
Instance Lifecycle
AlfrescoInstallation
StackGenesis
Root
Image
(distro) <provision> <bootstrap>
<full provisioning>
ID
4 ...
Instance Lifecycle
AlfrescoInstallation
StackGenesis
Root
Image
(distro) <provision> <bootstrap>
<full provisioning>
ID
4 ...
Chef Alfresco (beyond Alfresco Installer)
• Cool logo
• Component-based: repo, share, solr, aos and more
• Additional comp...
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 loc...
AlfrescoSPK
• Stacks (Vagrantfile)
– community-allinone
– enterprise-clustered (share + solr)
• Instance templates
– commu...
AlfrescoSPK
Instance template – Chef Alfresco components
{
"name": ”...",
"alfresco" : {
"components" : <alfresco_componen...
AlfrescoSPK
Vagrantfile – community-allinone
Vagrant.configure("2") do |config|
# Source Image configuration
config.vm.box...
AlfrescoSPK
Vagrantfile – enterprise-clustered
Vagrant.configure("2") do |config|
# Source Image configuration
config.vm.b...
AlfrescoSPK
Vagrantfile –Packer Plugin configuration
Vagrant.configure("2") do |config|
# Mandatory Vagrant Packer Plugin ...
AlfrescoSPK
Try it yourself!
# Clone SPK repo
git clone https://github.com/Alfresco/alfresco-spk
# Install Vagrant Packer ...
Wrapping up
Wrappingup
[Go Live]
Configure
orchestration
tools & CI
[Image Build]
Vagrant packer-
build
[Tweak and Local run]
Vagrant ...
Wrappingup
Infrastructure as Code delivered
• Revamped installation experience
– Component-based installation
– Controls p...
Wrappingup
SPK in Alfresco
• AWS Marketplace AMIs
– Alfresco 5.1 Enterprise Allinone
– Alfresco 5.1 Enterprise Allinone + ...
Wrappingup
Roadmap
• Support additional Linux/Unix OSes
• Publish Alfresco Vagrant boxes for existing instance templates
–...
Links
Links
Code
• https://github.com/Alfresco/chef-alfresco
• https://github.com/Alfresco/alfresco-spk
• https://github.c...
Thanks!
@Alfresco
Follow us on
Upcoming SlideShare
Loading in …5
×

Alfresco spk-alfresco-day

5,791 views

Published on

Alfresco SPK

Published in: Software
  • Be the first to comment

Alfresco spk-alfresco-day

  1. 1. Alfresco Tech Talk Live #95 Alfresco Software Provisioning Kit (Enzo Rivello, Maurizio Pillitu)
  2. 2. Aboutus Maurizio (maoo) Pillitu • Alfresco DevOps • Before, 30 months of Alfresco Consultancy • Lead Developer of – https://github.com/Alfresco/chef-alfresco
  3. 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
  4. 4. Alfresco SPK Design|Run|Integrate Alfresco stacks
  5. 5. Agenda Agenda • The Challenges • Alfresco Installation • Alfresco SPK • Wrapping up
  6. 6. The Challenges
  7. 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. 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. 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
  10. 10. Alfresco Installation
  11. 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. 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. 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. 14. Alfresco SPK and the Vagrant Packer Plugin
  15. 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. 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. 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. 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. 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. 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. 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
  22. 22. Wrapping up
  23. 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. 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. 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. 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. 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
  28. 28. Thanks! @Alfresco Follow us on

×