SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Riya Pathan
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Kirill Klimov
 
Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environmentelijahj01012
 
APRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdfAPRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdfRbc Rbcua
 
Annual General Meeting Presentation Slides
Annual General Meeting Presentation SlidesAnnual General Meeting Presentation Slides
Annual General Meeting Presentation SlidesKeppelCorporation
 
TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024Adnet Communications
 
8447779800, Low rate Call girls in Dwarka mor Delhi NCR
8447779800, Low rate Call girls in Dwarka mor Delhi NCR8447779800, Low rate Call girls in Dwarka mor Delhi NCR
8447779800, Low rate Call girls in Dwarka mor Delhi NCRashishs7044
 
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptxThe-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptxmbikashkanyari
 
Investment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy CheruiyotInvestment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy Cheruiyotictsugar
 
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
 
FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607dollysharma2066
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Servicecallgirls2057
 
Darshan Hiranandani [News About Next CEO].pdf
Darshan Hiranandani [News About Next CEO].pdfDarshan Hiranandani [News About Next CEO].pdf
Darshan Hiranandani [News About Next CEO].pdfShashank Mehta
 
Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...Peter Ward
 
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
 
Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...Americas Got Grants
 
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCREnjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCRalexsharmaa01
 
Financial-Statement-Analysis-of-Coca-cola-Company.pptx
Financial-Statement-Analysis-of-Coca-cola-Company.pptxFinancial-Statement-Analysis-of-Coca-cola-Company.pptx
Financial-Statement-Analysis-of-Coca-cola-Company.pptxsaniyaimamuddin
 

Kürzlich hochgeladen (20)

Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024
 
Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environment
 
APRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdfAPRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdf
 
Annual General Meeting Presentation Slides
Annual General Meeting Presentation SlidesAnnual General Meeting Presentation Slides
Annual General Meeting Presentation Slides
 
TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024
 
8447779800, Low rate Call girls in Dwarka mor Delhi NCR
8447779800, Low rate Call girls in Dwarka mor Delhi NCR8447779800, Low rate Call girls in Dwarka mor Delhi NCR
8447779800, Low rate Call girls in Dwarka mor Delhi NCR
 
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptxThe-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
 
Investment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy CheruiyotInvestment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy Cheruiyot
 
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
 
Japan IT Week 2024 Brochure by 47Billion (English)
Japan IT Week 2024 Brochure by 47Billion (English)Japan IT Week 2024 Brochure by 47Billion (English)
Japan IT Week 2024 Brochure by 47Billion (English)
 
FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607
 
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...
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
 
Darshan Hiranandani [News About Next CEO].pdf
Darshan Hiranandani [News About Next CEO].pdfDarshan Hiranandani [News About Next CEO].pdf
Darshan Hiranandani [News About Next CEO].pdf
 
Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...
 
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
 
Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...
 
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCREnjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
 
Financial-Statement-Analysis-of-Coca-cola-Company.pptx
Financial-Statement-Analysis-of-Coca-cola-Company.pptxFinancial-Statement-Analysis-of-Coca-cola-Company.pptx
Financial-Statement-Analysis-of-Coca-cola-Company.pptx
 

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