SlideShare a Scribd company logo
1 of 30
Download to read offline
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

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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 to 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 to 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
 

More from 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
 

More from 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
 

Recently uploaded

Contemporary Economic Issues Facing the Filipino Entrepreneur (1).pptx
Contemporary Economic Issues Facing the Filipino Entrepreneur (1).pptxContemporary Economic Issues Facing the Filipino Entrepreneur (1).pptx
Contemporary Economic Issues Facing the Filipino Entrepreneur (1).pptxMarkAnthonyAurellano
 
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...ictsugar
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessSeta Wicaksana
 
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCRashishs7044
 
Market Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 EditionMarket Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 EditionMintel Group
 
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu MenzaYouth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menzaictsugar
 
IoT Insurance Observatory: summary 2024
IoT Insurance Observatory:  summary 2024IoT Insurance Observatory:  summary 2024
IoT Insurance Observatory: summary 2024Matteo Carbone
 
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / NcrCall Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncrdollysharma2066
 
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCRashishs7044
 
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
 
International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...ssuserf63bd7
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Seta Wicaksana
 
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City GurgaonCall Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaoncallgirls2057
 
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckPitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckHajeJanKamps
 
2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis Usage2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis UsageNeil Kimberley
 
MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?Olivia Kresic
 
APRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdfAPRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdfRbc Rbcua
 
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCRashishs7044
 

Recently uploaded (20)

Contemporary Economic Issues Facing the Filipino Entrepreneur (1).pptx
Contemporary Economic Issues Facing the Filipino Entrepreneur (1).pptxContemporary Economic Issues Facing the Filipino Entrepreneur (1).pptx
Contemporary Economic Issues Facing the Filipino Entrepreneur (1).pptx
 
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful Business
 
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
 
Market Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 EditionMarket Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 Edition
 
Corporate Profile 47Billion Information Technology
Corporate Profile 47Billion Information TechnologyCorporate Profile 47Billion Information Technology
Corporate Profile 47Billion Information Technology
 
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu MenzaYouth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
 
IoT Insurance Observatory: summary 2024
IoT Insurance Observatory:  summary 2024IoT Insurance Observatory:  summary 2024
IoT Insurance Observatory: summary 2024
 
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / NcrCall Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
 
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
 
No-1 Call Girls In Goa 93193 VIP 73153 Escort service In North Goa Panaji, Ca...
No-1 Call Girls In Goa 93193 VIP 73153 Escort service In North Goa Panaji, Ca...No-1 Call Girls In Goa 93193 VIP 73153 Escort service In North Goa Panaji, Ca...
No-1 Call Girls In Goa 93193 VIP 73153 Escort service In North Goa Panaji, Ca...
 
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.
 
International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...
 
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City GurgaonCall Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
 
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckPitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
 
2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis Usage2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis Usage
 
MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?
 
APRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdfAPRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdf
 
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
 

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