SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Establish reliable builds and deployments 
Meet Magento Switzerland 2014 
Zurich, October 24, 2014 Marco Bamert
© Unic - Slide 3 
Me 
• Marco Bamert 
• Started working at www.unic.com in 2007 
• Senior Application Engineer 
• First Magento project 2008, Magento ever since
© Unic - Slide 4 
History 
• Desire to automate builds arose during the 2nd Magento project 
• First attempt with Scripts, then Maven which worked for quite some time 
• Until we more and more needed to customize it 
• So we decided to rebuild it from scratch with everything we learnt
© Unic - Slide 5 
A standardized and automated way of 
Click putting to different edit Master parts title together style 
to get a 
running Magento site on a server. 
Pragmatic definition of a build framework
© Unic - Slide 6 
Which Parts? 
Build Framework 
Magento Core 
Common Modules 
3rd Party Modules 
Libraries 
Only really project specific stuff Shared stuff that should no be touched
• Have a standardized way of building and deploying projects and common modules 
• Project setup should not take more than 20 minutes (all inclusive) 
• Don’t depend on external resources for build and deployments 
• Have everything in control and integrate with tools currently in use 
• Have a flexible framework that works “out of the box” but is customizable - in a 
standardized way 
• Use the same framework on every environment, except for releases 
• Project should know as little as possible about the framework 
• Ability to automate the whole build and deployment pipeline 
© Unic - Slide 7 
Goals
© Unic - Slide 8 
Tools in use 
Git, Code Reviews 
Continuous integration server 
Will replace Jenkins over the next weeks 
Repository Manager 
Sprint planning, issue management, release planning
© Unic - Slide 9 
Repository Manager ? 
- A repository manager stores and 
Click organizes to edit binary Master software title style 
components 
for use in development, deployment, 
and provisioning. 
http://www.sonatype.com/nexus/why-nexus/why-use-a-repo-manager
© Unic - Slide 10 
Why use an artifact storage like Nexus? 
• Faster and more reliable builds 
• Caching 
• Eliminating Risk 
• Compliance 
• Lifecycle Management 
• Specific Access Restrictions
© Unic - Slide 11 
Tools: 
• PHing Is Not GNU make; it's a PHP project build system or build tool based on 
Apache Ant 
• Written in PHP 
• Easily extendable with custom Tasks 
• http://www.phing.info/
© Unic - Slide 12 
Build Framework – Architecture 
• Some general dependencies 
• A lot of properties 
• Some 3rd party libraries (like SpycLib) 
• Phing targets split into several files 
• Custom Tasks
© Unic - Slide 13 
Build Framework – Code Sample 
<project 
name="Database" 
basedir="../../"> 
<includepath 
classpath="${application.startdir}/build/tasks/Database"/> 
<taskdef 
name="createDatabase" 
classname="CreateDatabaseTask"/> 
<target 
name="create-­‐database” 
description="Create 
the 
database 
and 
user 
for 
the 
project” 
hidden="true” 
depends="drop-­‐database"> 
<customHook 
hook="before-­‐create-­‐database"/> 
<createDatabase 
databaseName="${project.database.name}" 
databaseUsername="${project.database.username}" 
databasePassword="${project.database.password}" 
databaseAdminUsername="${database.admin.username}" 
databaseAdminPassword="${database.admin.password}" 
databaseServer="${database.host}"/> 
<createDatabaseUser 
... 
<grantDatabasePrivileges 
...
© Unic - Slide 14 
Configuration: Project settings 
# 
Main 
Project 
Settings 
project.name=Magento 
Template 
Project 
# 
Release 
Settings 
project.release.groupId=com.unic.magento.template 
project.release.artifactId=project 
project.release.version=1.0-­‐SNAPSHOT 
# 
Magento 
Version 
magento.core.type=enterprise 
magento.core.version=1.14.0.1 
# 
Project 
Database 
Settings 
project.database.name=template_project 
project.database.username=template_project 
# 
Parameters 
for 
installing 
Magento 
install.domain=template.local
© Unic - Slide 15 
Configuration: Dependencies 
• Similar to composer.json 
• Ability to overwrite / skip 
dependencies from the build 
framework 
• Require-dev node to only include 
some deps in DEV environments 
require: 
com.unic.magento.commons/cms: 
version: 
3.0.0 
repository: 
unic-­‐commons-­‐releases 
com.unic.magento.commons/datatrans: 
version: 
4.0.0 
repository: 
unic-­‐commons-­‐releases
© Unic - Slide 16 
Configuration: core_config_data 
• Environment specific yaml files 
• Inheritance 
• PRD > ACC > DEV > USER 
• Used for “Magento Configuration” 
• Customer specific modules have 
proper configuration in config.xml 
# 
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ 
# 
CATALOG 
# 
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ 
catalog/price/scope: 
default: 
0: 
1 
catalog/frontend/list_mode: 
default: 
0: 
grid 
catalog/frontend/list_allow_all: 
default: 
0: 
1
© Unic - Slide 17 
Build process: Tell the project how to build itself 
$ 
phing 
init-­‐build-­‐framework 
... 
Project 
> 
install-­‐build-­‐framework: 
[httpget] 
Fetching 
https://nexus.unic.com/nexus/service/local/artifact/maven/redirect? 
r=unic-­‐commons-­‐releases&g=com.unic.magento&a=build-­‐framework&v=LATEST&e=zip 
... 
BUILD 
FINISHED
© Unic - Slide 18 
Build process: Do the work 
1. Get information about the environment 
2. Read properties (Inheritance!) 
3. Create fresh database 
4. Download and install Magento 
5. Download and extract all dependencies 
6. Link project source to document root 
7. Install sample data 
8. Ensure proper configuration 
9. Start Working 
$ 
phing 
install
© Unic - Slide 19 
Build process: Artifact creation – Step 1 
1. Project is build on Jenkins (automatically or manually) 
2. Compress important stuff, ignore the rest 
3. Upload the compressed Artifact to Nexus
© Unic - Slide 20 
Build process: Artifact creation – Step 1 
• Artifact is uploaded to the artifact 
storage and is ready for 
deployments.
© Unic - Slide 21 
Build process: Configure the server – Step 2 
• Only the server itself knows the passwords and configuration 
• Most of the configuration is standardized but can be configured to specific needs 
• Server specific local.xml is stored on the server and injected into the deployed 
version
© Unic - Slide 22 
Build process: Configure the server – Step 2 
# 
Repository 
and 
Artifact 
Settings 
release.groupId=com.unic.magento.template 
release.artifactId=project 
release.snapshot.repository=unic-­‐commons-­‐snapshots 
release.releases.repository=unic-­‐commons-­‐releases 
# 
Deployment 
Settings 
server.environment=prd 
server.data.directory=/var/www/deployment-­‐test-­‐data 
deployment.name=deployment-­‐test 
# 
Database 
Settings 
(used 
only 
for 
backup 
task) 
database.username=build 
database.password=build 
database.name=template_project
© Unic - Slide 23 
Build process: Deploy the project – Step 3 
1. Connect to server 
2. Issue release command 
$ 
phing 
release 
–Dversion=1.2.0
© Unic - Slide 24 
Build process: Deploy the project – Step 3 
1. Download, verify and extract the requested version 
2. Insert environment specific local.xml 
3. Set permissions, create symlinks 
4. Trigger maintenance window (and create backup) 
5. Apply database schema update 
6. Ensure configuration for environment 
7. Change symlink to new version 
8. Write log information about release 
9. Unset maintenance window 
10. Clean up releases
© Unic - Slide 25 
Build process: Deploy the project – Step 3 
/var/www/project 
1.0.0 1.1.0 1.2.0
© Unic - Slide 26
© Unic - Slide 27 
Get more 
http://amzn.to/1nfmZpp
© Unic - Slide 28 
Resources & links 
• Phing (http://www.phing.info/) 
• Nexus (http://www.sonatype.com/nexus) 
• git-flow (https://github.com/nvie/gitflow) 
• Atlassian Stash (https://www.atlassian.com/software/stash) 
• Atlassian Jira (https://www.atlassian.com/software/jira) 
• TeamCity (http://www.jetbrains.com/teamcity/)
© Unic - Seite 29
Unic AG 
Hohlstrasse 536 
8048 Zürich 
Tel +41 44 560 12 12 
Fax +41 44 560 12 13 
info@unic.com 
www.unic.com 
© Unic - Seite 30 
Marco Bamert 
Senior Application Engineer 
marco.bamert@unic.com

Más contenido relacionado

La actualidad más candente

Rock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment WorkflowsRock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment WorkflowsAOE
 
Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)AOE
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...IT Event
 
WebSocket on client & server using websocket-sharp & ASP.NET Core
WebSocket on client & server using websocket-sharp & ASP.NET CoreWebSocket on client & server using websocket-sharp & ASP.NET Core
WebSocket on client & server using websocket-sharp & ASP.NET CoreChen Yu Pao
 
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Camilo Alvarez Rivera
 
Contributing To The Mozilla Codebase
Contributing To The Mozilla CodebaseContributing To The Mozilla Codebase
Contributing To The Mozilla CodebaseSouradeep De
 
L’enjeu du mobile pour le développeur Web, et comment Mozilla va vous aider
L’enjeu du mobile pour le développeur Web,  et comment Mozilla va vous aiderL’enjeu du mobile pour le développeur Web,  et comment Mozilla va vous aider
L’enjeu du mobile pour le développeur Web, et comment Mozilla va vous aiderTristan Nitot
 
Owasp AppSecEU 2015 - BeEF Session
Owasp AppSecEU 2015 - BeEF SessionOwasp AppSecEU 2015 - BeEF Session
Owasp AppSecEU 2015 - BeEF SessionBart Leppens
 
When you don't have 0days: client-side exploitation for the masses
When you don't have 0days: client-side exploitation for the massesWhen you don't have 0days: client-side exploitation for the masses
When you don't have 0days: client-side exploitation for the massesMichele Orru
 
Sencha touchonbb10 bootcamp
Sencha touchonbb10 bootcampSencha touchonbb10 bootcamp
Sencha touchonbb10 bootcampn_adam_stanley
 
Sg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleySg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleyn_adam_stanley
 
Browser Exploitation Framework Tutorial
Browser Exploitation Framework TutorialBrowser Exploitation Framework Tutorial
Browser Exploitation Framework Tutorialimlaurel2
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"LogeekNightUkraine
 
Make web as webapp
Make web as webappMake web as webapp
Make web as webappFred Lin
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesn_adam_stanley
 
Introduction to Pinax
Introduction to PinaxIntroduction to Pinax
Introduction to PinaxAndy McKay
 
Java 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and LegosJava 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and LegosStephen Chin
 

La actualidad más candente (20)

Rock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment WorkflowsRock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment Workflows
 
Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...
 
WebSocket on client & server using websocket-sharp & ASP.NET Core
WebSocket on client & server using websocket-sharp & ASP.NET CoreWebSocket on client & server using websocket-sharp & ASP.NET Core
WebSocket on client & server using websocket-sharp & ASP.NET Core
 
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
 
Contributing To The Mozilla Codebase
Contributing To The Mozilla CodebaseContributing To The Mozilla Codebase
Contributing To The Mozilla Codebase
 
L’enjeu du mobile pour le développeur Web, et comment Mozilla va vous aider
L’enjeu du mobile pour le développeur Web,  et comment Mozilla va vous aiderL’enjeu du mobile pour le développeur Web,  et comment Mozilla va vous aider
L’enjeu du mobile pour le développeur Web, et comment Mozilla va vous aider
 
Owasp AppSecEU 2015 - BeEF Session
Owasp AppSecEU 2015 - BeEF SessionOwasp AppSecEU 2015 - BeEF Session
Owasp AppSecEU 2015 - BeEF Session
 
When you don't have 0days: client-side exploitation for the masses
When you don't have 0days: client-side exploitation for the massesWhen you don't have 0days: client-side exploitation for the masses
When you don't have 0days: client-side exploitation for the masses
 
Sencha touchonbb10 bootcamp
Sencha touchonbb10 bootcampSencha touchonbb10 bootcamp
Sencha touchonbb10 bootcamp
 
c0c0n2010 -
c0c0n2010 - c0c0n2010 -
c0c0n2010 -
 
Sg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleySg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanley
 
Browser Exploitation Framework Tutorial
Browser Exploitation Framework TutorialBrowser Exploitation Framework Tutorial
Browser Exploitation Framework Tutorial
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"
 
Browser exploit framework
Browser exploit frameworkBrowser exploit framework
Browser exploit framework
 
BeEF
BeEFBeEF
BeEF
 
Make web as webapp
Make web as webappMake web as webapp
Make web as webapp
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
 
Introduction to Pinax
Introduction to PinaxIntroduction to Pinax
Introduction to Pinax
 
Java 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and LegosJava 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and Legos
 

Destacado

Continuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoContinuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoAOE
 
Campus to corporate: How recruiting millennials enabled AppNexus to incubate ...
Campus to corporate: How recruiting millennials enabled AppNexus to incubate ...Campus to corporate: How recruiting millennials enabled AppNexus to incubate ...
Campus to corporate: How recruiting millennials enabled AppNexus to incubate ...LinkedIn Talent Solutions
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
 
Surprising failure factors when implementing eCommerce and Omnichannel eBusiness
Surprising failure factors when implementing eCommerce and Omnichannel eBusinessSurprising failure factors when implementing eCommerce and Omnichannel eBusiness
Surprising failure factors when implementing eCommerce and Omnichannel eBusinessDivante
 
Magento scalability from the trenches (Meet Magento Sweden 2016)
Magento scalability from the trenches (Meet Magento Sweden 2016)Magento scalability from the trenches (Meet Magento Sweden 2016)
Magento scalability from the trenches (Meet Magento Sweden 2016)Divante
 
Omnichannel Customer Experience
Omnichannel Customer ExperienceOmnichannel Customer Experience
Omnichannel Customer ExperienceDivante
 

Destacado (7)

Continuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoContinuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for Magento
 
Campus to corporate: How recruiting millennials enabled AppNexus to incubate ...
Campus to corporate: How recruiting millennials enabled AppNexus to incubate ...Campus to corporate: How recruiting millennials enabled AppNexus to incubate ...
Campus to corporate: How recruiting millennials enabled AppNexus to incubate ...
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
 
Campus 2 corporate (1)
Campus 2 corporate (1)Campus 2 corporate (1)
Campus 2 corporate (1)
 
Surprising failure factors when implementing eCommerce and Omnichannel eBusiness
Surprising failure factors when implementing eCommerce and Omnichannel eBusinessSurprising failure factors when implementing eCommerce and Omnichannel eBusiness
Surprising failure factors when implementing eCommerce and Omnichannel eBusiness
 
Magento scalability from the trenches (Meet Magento Sweden 2016)
Magento scalability from the trenches (Meet Magento Sweden 2016)Magento scalability from the trenches (Meet Magento Sweden 2016)
Magento scalability from the trenches (Meet Magento Sweden 2016)
 
Omnichannel Customer Experience
Omnichannel Customer ExperienceOmnichannel Customer Experience
Omnichannel Customer Experience
 

Similar a Establish reliable builds and deployments with Magento

DevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoDevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoMagento Dev
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartEric Overfield
 
Pragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecturePragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecturePiotr Pelczar
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo Vacca
 
(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern DesktopOren Novotny
 
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe Sencha
 
Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3Drupalcon Paris
 
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azureIntroduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azureColin Mackay
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Coremohamed elshafey
 
Drupal point of vue
Drupal point of vueDrupal point of vue
Drupal point of vueDavid Ličen
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers WorkshopJody Garnett
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Simon Storm
 
Joget Workflow v6 Training Slides - 16 - Preparing Development Environment
Joget Workflow v6 Training Slides - 16 - Preparing Development EnvironmentJoget Workflow v6 Training Slides - 16 - Preparing Development Environment
Joget Workflow v6 Training Slides - 16 - Preparing Development EnvironmentJoget Workflow
 

Similar a Establish reliable builds and deployments with Magento (20)

DevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoDevHub 3 - Composer plus Magento
DevHub 3 - Composer plus Magento
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework Webpart
 
IIS Web Ecosystem
IIS Web EcosystemIIS Web Ecosystem
IIS Web Ecosystem
 
Pragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecturePragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecture
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop
 
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
 
Mini Project- Virtual Network Project
Mini Project- Virtual Network ProjectMini Project- Virtual Network Project
Mini Project- Virtual Network Project
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3
 
Web works hol
Web works holWeb works hol
Web works hol
 
Maven
MavenMaven
Maven
 
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azureIntroduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
Drupal point of vue
Drupal point of vueDrupal point of vue
Drupal point of vue
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
Introduction to Node.js by Vinothini B
Introduction to Node.js by Vinothini BIntroduction to Node.js by Vinothini B
Introduction to Node.js by Vinothini B
 
Joget Workflow v6 Training Slides - 16 - Preparing Development Environment
Joget Workflow v6 Training Slides - 16 - Preparing Development EnvironmentJoget Workflow v6 Training Slides - 16 - Preparing Development Environment
Joget Workflow v6 Training Slides - 16 - Preparing Development Environment
 
Let's serve your data
Let's serve your dataLet's serve your data
Let's serve your data
 

Más de Unic

Digital Nudge Day 2018: Ralf Wölfle: E-Commerce Report 2018: Wandel und Trend...
Digital Nudge Day 2018: Ralf Wölfle: E-Commerce Report 2018: Wandel und Trend...Digital Nudge Day 2018: Ralf Wölfle: E-Commerce Report 2018: Wandel und Trend...
Digital Nudge Day 2018: Ralf Wölfle: E-Commerce Report 2018: Wandel und Trend...Unic
 
Digital Nudge Day 2018: Christine Reichardt - Smarte Selfservices im Kreditbu...
Digital Nudge Day 2018: Christine Reichardt - Smarte Selfservices im Kreditbu...Digital Nudge Day 2018: Christine Reichardt - Smarte Selfservices im Kreditbu...
Digital Nudge Day 2018: Christine Reichardt - Smarte Selfservices im Kreditbu...Unic
 
Digital Nudge Day 2018: Marta Kwiatkowski Schenk - Simplexity: Die Sehnsucht ...
Digital Nudge Day 2018: Marta Kwiatkowski Schenk - Simplexity: Die Sehnsucht ...Digital Nudge Day 2018: Marta Kwiatkowski Schenk - Simplexity: Die Sehnsucht ...
Digital Nudge Day 2018: Marta Kwiatkowski Schenk - Simplexity: Die Sehnsucht ...Unic
 
Digital Nudge Day 2018: Christof Zogg - Self-servicing im öffentlichen Verkehr
Digital Nudge Day 2018: Christof Zogg - Self-servicing im öffentlichen VerkehrDigital Nudge Day 2018: Christof Zogg - Self-servicing im öffentlichen Verkehr
Digital Nudge Day 2018: Christof Zogg - Self-servicing im öffentlichen VerkehrUnic
 
Präsentation des E-Commerce Report 2016 - Prof. Ralf Wölfle, FHNW
Präsentation des E-Commerce Report 2016 - Prof. Ralf Wölfle, FHNWPräsentation des E-Commerce Report 2016 - Prof. Ralf Wölfle, FHNW
Präsentation des E-Commerce Report 2016 - Prof. Ralf Wölfle, FHNWUnic
 
Digitale Transformation in der Medikation - Walter Oberhänsli, Zur Rose Group
Digitale Transformation in der Medikation - Walter Oberhänsli, Zur Rose GroupDigitale Transformation in der Medikation - Walter Oberhänsli, Zur Rose Group
Digitale Transformation in der Medikation - Walter Oberhänsli, Zur Rose GroupUnic
 
Blick ins Hirn: Was das E-Commerce von der modernen Hirnforschung lernen kann...
Blick ins Hirn: Was das E-Commerce von der modernen Hirnforschung lernen kann...Blick ins Hirn: Was das E-Commerce von der modernen Hirnforschung lernen kann...
Blick ins Hirn: Was das E-Commerce von der modernen Hirnforschung lernen kann...Unic
 
Customer Centricity – Wie geht es weiter? War’s das?
Customer Centricity – Wie geht es weiter? War’s das?Customer Centricity – Wie geht es weiter? War’s das?
Customer Centricity – Wie geht es weiter? War’s das?Unic
 
CRM – Wie die gesamtheitliche Betrachtung eines Kunden gelingt / Do’s and Don’ts
CRM – Wie die gesamtheitliche Betrachtung eines Kunden gelingt / Do’s and Don’tsCRM – Wie die gesamtheitliche Betrachtung eines Kunden gelingt / Do’s and Don’ts
CRM – Wie die gesamtheitliche Betrachtung eines Kunden gelingt / Do’s and Don’tsUnic
 
Kundenzentriertheit im internationalen Wettbewerb am Beispiel Multichannel
Kundenzentriertheit im internationalen Wettbewerb am Beispiel MultichannelKundenzentriertheit im internationalen Wettbewerb am Beispiel Multichannel
Kundenzentriertheit im internationalen Wettbewerb am Beispiel MultichannelUnic
 
Herausforderungen von Customer Centricity im E-Commerce Alltag
Herausforderungen von Customer Centricity im E-Commerce AlltagHerausforderungen von Customer Centricity im E-Commerce Alltag
Herausforderungen von Customer Centricity im E-Commerce AlltagUnic
 
Keynote: Der Post Logistik-Kunde im Mittelpunkt
Keynote: Der Post Logistik-Kunde im MittelpunktKeynote: Der Post Logistik-Kunde im Mittelpunkt
Keynote: Der Post Logistik-Kunde im MittelpunktUnic
 
Sitecore Experience Marketing – Gestaltung von aussergewöhnlichen Kundenerfah...
Sitecore Experience Marketing – Gestaltung von aussergewöhnlichen Kundenerfah...Sitecore Experience Marketing – Gestaltung von aussergewöhnlichen Kundenerfah...
Sitecore Experience Marketing – Gestaltung von aussergewöhnlichen Kundenerfah...Unic
 
Customer Experience Highlights am Beispiel Post CH AG
Customer Experience Highlights am Beispiel Post CH AGCustomer Experience Highlights am Beispiel Post CH AG
Customer Experience Highlights am Beispiel Post CH AGUnic
 
Relaunch post.ch – Ein Schritt Richtung digitale Transformation
Relaunch post.ch – Ein Schritt Richtung digitale TransformationRelaunch post.ch – Ein Schritt Richtung digitale Transformation
Relaunch post.ch – Ein Schritt Richtung digitale TransformationUnic
 
Know every customer. Own every experience.
Know every customer. Own every experience.Know every customer. Own every experience.
Know every customer. Own every experience.Unic
 
2015 - a static site generator odyssey
2015  - a static site generator odyssey2015  - a static site generator odyssey
2015 - a static site generator odysseyUnic
 
Das grösste E-Banking der Schweiz erneuern – challenge accepted.
Das grösste E-Banking der Schweiz erneuern – challenge accepted.Das grösste E-Banking der Schweiz erneuern – challenge accepted.
Das grösste E-Banking der Schweiz erneuern – challenge accepted.Unic
 
Kundennähe von Banken und Versicherern im Web - Benchmark 2015
Kundennähe von Banken und Versicherern im Web - Benchmark 2015Kundennähe von Banken und Versicherern im Web - Benchmark 2015
Kundennähe von Banken und Versicherern im Web - Benchmark 2015Unic
 
Trend Spotlight: Marketing Automation
Trend Spotlight: Marketing AutomationTrend Spotlight: Marketing Automation
Trend Spotlight: Marketing AutomationUnic
 

Más de Unic (20)

Digital Nudge Day 2018: Ralf Wölfle: E-Commerce Report 2018: Wandel und Trend...
Digital Nudge Day 2018: Ralf Wölfle: E-Commerce Report 2018: Wandel und Trend...Digital Nudge Day 2018: Ralf Wölfle: E-Commerce Report 2018: Wandel und Trend...
Digital Nudge Day 2018: Ralf Wölfle: E-Commerce Report 2018: Wandel und Trend...
 
Digital Nudge Day 2018: Christine Reichardt - Smarte Selfservices im Kreditbu...
Digital Nudge Day 2018: Christine Reichardt - Smarte Selfservices im Kreditbu...Digital Nudge Day 2018: Christine Reichardt - Smarte Selfservices im Kreditbu...
Digital Nudge Day 2018: Christine Reichardt - Smarte Selfservices im Kreditbu...
 
Digital Nudge Day 2018: Marta Kwiatkowski Schenk - Simplexity: Die Sehnsucht ...
Digital Nudge Day 2018: Marta Kwiatkowski Schenk - Simplexity: Die Sehnsucht ...Digital Nudge Day 2018: Marta Kwiatkowski Schenk - Simplexity: Die Sehnsucht ...
Digital Nudge Day 2018: Marta Kwiatkowski Schenk - Simplexity: Die Sehnsucht ...
 
Digital Nudge Day 2018: Christof Zogg - Self-servicing im öffentlichen Verkehr
Digital Nudge Day 2018: Christof Zogg - Self-servicing im öffentlichen VerkehrDigital Nudge Day 2018: Christof Zogg - Self-servicing im öffentlichen Verkehr
Digital Nudge Day 2018: Christof Zogg - Self-servicing im öffentlichen Verkehr
 
Präsentation des E-Commerce Report 2016 - Prof. Ralf Wölfle, FHNW
Präsentation des E-Commerce Report 2016 - Prof. Ralf Wölfle, FHNWPräsentation des E-Commerce Report 2016 - Prof. Ralf Wölfle, FHNW
Präsentation des E-Commerce Report 2016 - Prof. Ralf Wölfle, FHNW
 
Digitale Transformation in der Medikation - Walter Oberhänsli, Zur Rose Group
Digitale Transformation in der Medikation - Walter Oberhänsli, Zur Rose GroupDigitale Transformation in der Medikation - Walter Oberhänsli, Zur Rose Group
Digitale Transformation in der Medikation - Walter Oberhänsli, Zur Rose Group
 
Blick ins Hirn: Was das E-Commerce von der modernen Hirnforschung lernen kann...
Blick ins Hirn: Was das E-Commerce von der modernen Hirnforschung lernen kann...Blick ins Hirn: Was das E-Commerce von der modernen Hirnforschung lernen kann...
Blick ins Hirn: Was das E-Commerce von der modernen Hirnforschung lernen kann...
 
Customer Centricity – Wie geht es weiter? War’s das?
Customer Centricity – Wie geht es weiter? War’s das?Customer Centricity – Wie geht es weiter? War’s das?
Customer Centricity – Wie geht es weiter? War’s das?
 
CRM – Wie die gesamtheitliche Betrachtung eines Kunden gelingt / Do’s and Don’ts
CRM – Wie die gesamtheitliche Betrachtung eines Kunden gelingt / Do’s and Don’tsCRM – Wie die gesamtheitliche Betrachtung eines Kunden gelingt / Do’s and Don’ts
CRM – Wie die gesamtheitliche Betrachtung eines Kunden gelingt / Do’s and Don’ts
 
Kundenzentriertheit im internationalen Wettbewerb am Beispiel Multichannel
Kundenzentriertheit im internationalen Wettbewerb am Beispiel MultichannelKundenzentriertheit im internationalen Wettbewerb am Beispiel Multichannel
Kundenzentriertheit im internationalen Wettbewerb am Beispiel Multichannel
 
Herausforderungen von Customer Centricity im E-Commerce Alltag
Herausforderungen von Customer Centricity im E-Commerce AlltagHerausforderungen von Customer Centricity im E-Commerce Alltag
Herausforderungen von Customer Centricity im E-Commerce Alltag
 
Keynote: Der Post Logistik-Kunde im Mittelpunkt
Keynote: Der Post Logistik-Kunde im MittelpunktKeynote: Der Post Logistik-Kunde im Mittelpunkt
Keynote: Der Post Logistik-Kunde im Mittelpunkt
 
Sitecore Experience Marketing – Gestaltung von aussergewöhnlichen Kundenerfah...
Sitecore Experience Marketing – Gestaltung von aussergewöhnlichen Kundenerfah...Sitecore Experience Marketing – Gestaltung von aussergewöhnlichen Kundenerfah...
Sitecore Experience Marketing – Gestaltung von aussergewöhnlichen Kundenerfah...
 
Customer Experience Highlights am Beispiel Post CH AG
Customer Experience Highlights am Beispiel Post CH AGCustomer Experience Highlights am Beispiel Post CH AG
Customer Experience Highlights am Beispiel Post CH AG
 
Relaunch post.ch – Ein Schritt Richtung digitale Transformation
Relaunch post.ch – Ein Schritt Richtung digitale TransformationRelaunch post.ch – Ein Schritt Richtung digitale Transformation
Relaunch post.ch – Ein Schritt Richtung digitale Transformation
 
Know every customer. Own every experience.
Know every customer. Own every experience.Know every customer. Own every experience.
Know every customer. Own every experience.
 
2015 - a static site generator odyssey
2015  - a static site generator odyssey2015  - a static site generator odyssey
2015 - a static site generator odyssey
 
Das grösste E-Banking der Schweiz erneuern – challenge accepted.
Das grösste E-Banking der Schweiz erneuern – challenge accepted.Das grösste E-Banking der Schweiz erneuern – challenge accepted.
Das grösste E-Banking der Schweiz erneuern – challenge accepted.
 
Kundennähe von Banken und Versicherern im Web - Benchmark 2015
Kundennähe von Banken und Versicherern im Web - Benchmark 2015Kundennähe von Banken und Versicherern im Web - Benchmark 2015
Kundennähe von Banken und Versicherern im Web - Benchmark 2015
 
Trend Spotlight: Marketing Automation
Trend Spotlight: Marketing AutomationTrend Spotlight: Marketing Automation
Trend Spotlight: Marketing Automation
 

Último

The-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptxThe-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptxmbikashkanyari
 
Send Files | Sendbig.comSend Files | Sendbig.com
Send Files | Sendbig.comSend Files | Sendbig.comSend Files | Sendbig.comSend Files | Sendbig.com
Send Files | Sendbig.comSend Files | Sendbig.comSendBig4
 
Supercharge Your eCommerce Stores-acowebs
Supercharge Your eCommerce Stores-acowebsSupercharge Your eCommerce Stores-acowebs
Supercharge Your eCommerce Stores-acowebsGOKUL JS
 
Appkodes Tinder Clone Script with Customisable Solutions.pptx
Appkodes Tinder Clone Script with Customisable Solutions.pptxAppkodes Tinder Clone Script with Customisable Solutions.pptx
Appkodes Tinder Clone Script with Customisable Solutions.pptxappkodes
 
Traction part 2 - EOS Model JAX Bridges.
Traction part 2 - EOS Model JAX Bridges.Traction part 2 - EOS Model JAX Bridges.
Traction part 2 - EOS Model JAX Bridges.Anamaria Contreras
 
Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environmentelijahj01012
 
20200128 Ethical by Design - Whitepaper.pdf
20200128 Ethical by Design - Whitepaper.pdf20200128 Ethical by Design - Whitepaper.pdf
20200128 Ethical by Design - Whitepaper.pdfChris Skinner
 
Excvation Safety for safety officers reference
Excvation Safety for safety officers referenceExcvation Safety for safety officers reference
Excvation Safety for safety officers referencessuser2c065e
 
WSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdfWSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdfJamesConcepcion7
 
Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03DallasHaselhorst
 
Onemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
Onemonitar Android Spy App Features: Explore Advanced Monitoring CapabilitiesOnemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
Onemonitar Android Spy App Features: Explore Advanced Monitoring CapabilitiesOne Monitar
 
Guide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDFGuide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDFChandresh Chudasama
 
Unveiling the Soundscape Music for Psychedelic Experiences
Unveiling the Soundscape Music for Psychedelic ExperiencesUnveiling the Soundscape Music for Psychedelic Experiences
Unveiling the Soundscape Music for Psychedelic ExperiencesDoe Paoro
 
Effective Strategies for Maximizing Your Profit When Selling Gold Jewelry
Effective Strategies for Maximizing Your Profit When Selling Gold JewelryEffective Strategies for Maximizing Your Profit When Selling Gold Jewelry
Effective Strategies for Maximizing Your Profit When Selling Gold JewelryWhittensFineJewelry1
 
1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdfShaun Heinrichs
 
Technical Leaders - Working with the Management Team
Technical Leaders - Working with the Management TeamTechnical Leaders - Working with the Management Team
Technical Leaders - Working with the Management TeamArik Fletcher
 
BAILMENT & PLEDGE business law notes.pptx
BAILMENT & PLEDGE business law notes.pptxBAILMENT & PLEDGE business law notes.pptx
BAILMENT & PLEDGE business law notes.pptxran17april2001
 
trending-flavors-and-ingredients-in-salty-snacks-us-2024_Redacted-V2.pdf
trending-flavors-and-ingredients-in-salty-snacks-us-2024_Redacted-V2.pdftrending-flavors-and-ingredients-in-salty-snacks-us-2024_Redacted-V2.pdf
trending-flavors-and-ingredients-in-salty-snacks-us-2024_Redacted-V2.pdfMintel Group
 
Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMVoces Mineras
 

Último (20)

The-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptxThe-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
 
Send Files | Sendbig.comSend Files | Sendbig.com
Send Files | Sendbig.comSend Files | Sendbig.comSend Files | Sendbig.comSend Files | Sendbig.com
Send Files | Sendbig.comSend Files | Sendbig.com
 
The Bizz Quiz-E-Summit-E-Cell-IITPatna.pptx
The Bizz Quiz-E-Summit-E-Cell-IITPatna.pptxThe Bizz Quiz-E-Summit-E-Cell-IITPatna.pptx
The Bizz Quiz-E-Summit-E-Cell-IITPatna.pptx
 
Supercharge Your eCommerce Stores-acowebs
Supercharge Your eCommerce Stores-acowebsSupercharge Your eCommerce Stores-acowebs
Supercharge Your eCommerce Stores-acowebs
 
Appkodes Tinder Clone Script with Customisable Solutions.pptx
Appkodes Tinder Clone Script with Customisable Solutions.pptxAppkodes Tinder Clone Script with Customisable Solutions.pptx
Appkodes Tinder Clone Script with Customisable Solutions.pptx
 
Traction part 2 - EOS Model JAX Bridges.
Traction part 2 - EOS Model JAX Bridges.Traction part 2 - EOS Model JAX Bridges.
Traction part 2 - EOS Model JAX Bridges.
 
Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environment
 
20200128 Ethical by Design - Whitepaper.pdf
20200128 Ethical by Design - Whitepaper.pdf20200128 Ethical by Design - Whitepaper.pdf
20200128 Ethical by Design - Whitepaper.pdf
 
Excvation Safety for safety officers reference
Excvation Safety for safety officers referenceExcvation Safety for safety officers reference
Excvation Safety for safety officers reference
 
WSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdfWSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdf
 
Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03
 
Onemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
Onemonitar Android Spy App Features: Explore Advanced Monitoring CapabilitiesOnemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
Onemonitar Android Spy App Features: Explore Advanced Monitoring Capabilities
 
Guide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDFGuide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDF
 
Unveiling the Soundscape Music for Psychedelic Experiences
Unveiling the Soundscape Music for Psychedelic ExperiencesUnveiling the Soundscape Music for Psychedelic Experiences
Unveiling the Soundscape Music for Psychedelic Experiences
 
Effective Strategies for Maximizing Your Profit When Selling Gold Jewelry
Effective Strategies for Maximizing Your Profit When Selling Gold JewelryEffective Strategies for Maximizing Your Profit When Selling Gold Jewelry
Effective Strategies for Maximizing Your Profit When Selling Gold Jewelry
 
1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf
 
Technical Leaders - Working with the Management Team
Technical Leaders - Working with the Management TeamTechnical Leaders - Working with the Management Team
Technical Leaders - Working with the Management Team
 
BAILMENT & PLEDGE business law notes.pptx
BAILMENT & PLEDGE business law notes.pptxBAILMENT & PLEDGE business law notes.pptx
BAILMENT & PLEDGE business law notes.pptx
 
trending-flavors-and-ingredients-in-salty-snacks-us-2024_Redacted-V2.pdf
trending-flavors-and-ingredients-in-salty-snacks-us-2024_Redacted-V2.pdftrending-flavors-and-ingredients-in-salty-snacks-us-2024_Redacted-V2.pdf
trending-flavors-and-ingredients-in-salty-snacks-us-2024_Redacted-V2.pdf
 
Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQM
 

Establish reliable builds and deployments with Magento

  • 1. Establish reliable builds and deployments Meet Magento Switzerland 2014 Zurich, October 24, 2014 Marco Bamert
  • 2.
  • 3. © Unic - Slide 3 Me • Marco Bamert • Started working at www.unic.com in 2007 • Senior Application Engineer • First Magento project 2008, Magento ever since
  • 4. © Unic - Slide 4 History • Desire to automate builds arose during the 2nd Magento project • First attempt with Scripts, then Maven which worked for quite some time • Until we more and more needed to customize it • So we decided to rebuild it from scratch with everything we learnt
  • 5. © Unic - Slide 5 A standardized and automated way of Click putting to different edit Master parts title together style to get a running Magento site on a server. Pragmatic definition of a build framework
  • 6. © Unic - Slide 6 Which Parts? Build Framework Magento Core Common Modules 3rd Party Modules Libraries Only really project specific stuff Shared stuff that should no be touched
  • 7. • Have a standardized way of building and deploying projects and common modules • Project setup should not take more than 20 minutes (all inclusive) • Don’t depend on external resources for build and deployments • Have everything in control and integrate with tools currently in use • Have a flexible framework that works “out of the box” but is customizable - in a standardized way • Use the same framework on every environment, except for releases • Project should know as little as possible about the framework • Ability to automate the whole build and deployment pipeline © Unic - Slide 7 Goals
  • 8. © Unic - Slide 8 Tools in use Git, Code Reviews Continuous integration server Will replace Jenkins over the next weeks Repository Manager Sprint planning, issue management, release planning
  • 9. © Unic - Slide 9 Repository Manager ? - A repository manager stores and Click organizes to edit binary Master software title style components for use in development, deployment, and provisioning. http://www.sonatype.com/nexus/why-nexus/why-use-a-repo-manager
  • 10. © Unic - Slide 10 Why use an artifact storage like Nexus? • Faster and more reliable builds • Caching • Eliminating Risk • Compliance • Lifecycle Management • Specific Access Restrictions
  • 11. © Unic - Slide 11 Tools: • PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant • Written in PHP • Easily extendable with custom Tasks • http://www.phing.info/
  • 12. © Unic - Slide 12 Build Framework – Architecture • Some general dependencies • A lot of properties • Some 3rd party libraries (like SpycLib) • Phing targets split into several files • Custom Tasks
  • 13. © Unic - Slide 13 Build Framework – Code Sample <project name="Database" basedir="../../"> <includepath classpath="${application.startdir}/build/tasks/Database"/> <taskdef name="createDatabase" classname="CreateDatabaseTask"/> <target name="create-­‐database” description="Create the database and user for the project” hidden="true” depends="drop-­‐database"> <customHook hook="before-­‐create-­‐database"/> <createDatabase databaseName="${project.database.name}" databaseUsername="${project.database.username}" databasePassword="${project.database.password}" databaseAdminUsername="${database.admin.username}" databaseAdminPassword="${database.admin.password}" databaseServer="${database.host}"/> <createDatabaseUser ... <grantDatabasePrivileges ...
  • 14. © Unic - Slide 14 Configuration: Project settings # Main Project Settings project.name=Magento Template Project # Release Settings project.release.groupId=com.unic.magento.template project.release.artifactId=project project.release.version=1.0-­‐SNAPSHOT # Magento Version magento.core.type=enterprise magento.core.version=1.14.0.1 # Project Database Settings project.database.name=template_project project.database.username=template_project # Parameters for installing Magento install.domain=template.local
  • 15. © Unic - Slide 15 Configuration: Dependencies • Similar to composer.json • Ability to overwrite / skip dependencies from the build framework • Require-dev node to only include some deps in DEV environments require: com.unic.magento.commons/cms: version: 3.0.0 repository: unic-­‐commons-­‐releases com.unic.magento.commons/datatrans: version: 4.0.0 repository: unic-­‐commons-­‐releases
  • 16. © Unic - Slide 16 Configuration: core_config_data • Environment specific yaml files • Inheritance • PRD > ACC > DEV > USER • Used for “Magento Configuration” • Customer specific modules have proper configuration in config.xml # -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ # CATALOG # -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ catalog/price/scope: default: 0: 1 catalog/frontend/list_mode: default: 0: grid catalog/frontend/list_allow_all: default: 0: 1
  • 17. © Unic - Slide 17 Build process: Tell the project how to build itself $ phing init-­‐build-­‐framework ... Project > install-­‐build-­‐framework: [httpget] Fetching https://nexus.unic.com/nexus/service/local/artifact/maven/redirect? r=unic-­‐commons-­‐releases&g=com.unic.magento&a=build-­‐framework&v=LATEST&e=zip ... BUILD FINISHED
  • 18. © Unic - Slide 18 Build process: Do the work 1. Get information about the environment 2. Read properties (Inheritance!) 3. Create fresh database 4. Download and install Magento 5. Download and extract all dependencies 6. Link project source to document root 7. Install sample data 8. Ensure proper configuration 9. Start Working $ phing install
  • 19. © Unic - Slide 19 Build process: Artifact creation – Step 1 1. Project is build on Jenkins (automatically or manually) 2. Compress important stuff, ignore the rest 3. Upload the compressed Artifact to Nexus
  • 20. © Unic - Slide 20 Build process: Artifact creation – Step 1 • Artifact is uploaded to the artifact storage and is ready for deployments.
  • 21. © Unic - Slide 21 Build process: Configure the server – Step 2 • Only the server itself knows the passwords and configuration • Most of the configuration is standardized but can be configured to specific needs • Server specific local.xml is stored on the server and injected into the deployed version
  • 22. © Unic - Slide 22 Build process: Configure the server – Step 2 # Repository and Artifact Settings release.groupId=com.unic.magento.template release.artifactId=project release.snapshot.repository=unic-­‐commons-­‐snapshots release.releases.repository=unic-­‐commons-­‐releases # Deployment Settings server.environment=prd server.data.directory=/var/www/deployment-­‐test-­‐data deployment.name=deployment-­‐test # Database Settings (used only for backup task) database.username=build database.password=build database.name=template_project
  • 23. © Unic - Slide 23 Build process: Deploy the project – Step 3 1. Connect to server 2. Issue release command $ phing release –Dversion=1.2.0
  • 24. © Unic - Slide 24 Build process: Deploy the project – Step 3 1. Download, verify and extract the requested version 2. Insert environment specific local.xml 3. Set permissions, create symlinks 4. Trigger maintenance window (and create backup) 5. Apply database schema update 6. Ensure configuration for environment 7. Change symlink to new version 8. Write log information about release 9. Unset maintenance window 10. Clean up releases
  • 25. © Unic - Slide 25 Build process: Deploy the project – Step 3 /var/www/project 1.0.0 1.1.0 1.2.0
  • 26. © Unic - Slide 26
  • 27. © Unic - Slide 27 Get more http://amzn.to/1nfmZpp
  • 28. © Unic - Slide 28 Resources & links • Phing (http://www.phing.info/) • Nexus (http://www.sonatype.com/nexus) • git-flow (https://github.com/nvie/gitflow) • Atlassian Stash (https://www.atlassian.com/software/stash) • Atlassian Jira (https://www.atlassian.com/software/jira) • TeamCity (http://www.jetbrains.com/teamcity/)
  • 29. © Unic - Seite 29
  • 30. Unic AG Hohlstrasse 536 8048 Zürich Tel +41 44 560 12 12 Fax +41 44 560 12 13 info@unic.com www.unic.com © Unic - Seite 30 Marco Bamert Senior Application Engineer marco.bamert@unic.com