SlideShare une entreprise Scribd logo
1  sur  23
Optimise the
development process
with simple tips and tricks
Alin Alexandru - CTO Innobyte | 08.10.2021
Agenda
➢ Old development setup
➢ Reported issues
➢ Requirements for new setup
➢ Analized solutions
➢ Winner
➢ How we use it
Old development setup
➢ Based on Virtual Box
➢ Configured with ansible (in house roles)
➢ Using NFS/Samba share
Reported issues
Time consuming to configure a project
You had to wait until all the packages were installed on an Ubuntu based image (30-
40 minutes)
Bad performance
● Mainly because of Xdebug and NFS/Samba share
● For frontend developers was a nightmare to work
Resource intensive
Each VM was consuming 4-8GB of ram.
Requirements for new setup
Fast environment
● Xdebug needs to be active only when you are debugging
● Frontend developers don’t need Xdebug
Secure
Most of the docker setup binds to 0.0.0.0:80, 0.0.0.0:443
Capable to run multiple projects in parallel
Sometimes you need to wait for a time consuming task, while you could work on
something else.
Requirements for new setup
Linux/Windows/Mac compatible
Each developer is free to use what OS prefers
Compatible with existing structure
Changing project structure will break existing Merge requests / Pull Requests
Easy to migrate project
Migrations should be made in 2-4 hours
Easy to start new projects
Starting a project from scratch should be straightforward
Requirements for new setup
Can support other planforms
Symfony or Wordpress
Documented
Documentation became a must, as our inhouse solution didn’t have any
Easy to extend
Be capable to add our tools/scripts
Supported
The project should be active and have a community
Analized solutions
Warden
https://warden.dev/
Dockergento
https://github.com/ModestCoders/magento2-dockergento
Meanbee
https://github.com/meanbee/docker-magento2
M Academy
https://github.com/markshust/docker-magento
Meet Warden
Warden architecture
Feature List
➢ Traefik for SSL termination and routing/proxying requests into the correct
containers
➢ Portainer for quick visibility into what's running inside the local Docker host
➢ Dnsmasq to serve DNS responses for .test domains eliminating manual editing
of /etc/hosts
➢ An SSH tunnel for connecting from Sequel Pro or TablePlus into any one of
multiple running database containers
➢ Warden issued wildcard SSL certificates for running https on all local
development domains.
Feature List
➢ Full support for Magento 1, Magento 2, Laravel, and custom project
environment configurations
➢ Mailhog to easily test emails
➢ ElasticHQ for Management and Monitoring Elasticsearch
➢ Intelligent Nginx routing, so that request are passed to container with Xdebug
only when cookie is present
➢ Easy to profile performance with blackfire
➢ You can write your own commands in ~/.warden/commands/ or inside project
folder in .warden/commands/
Feature List
➢ Support for Magento2 Commerce spit database
➢ Can run Magento Functional Testing Framework
https://docs.warden.dev/configuration/mftf.html
➢ Allure Reporting https://docs.warden.dev/configuration/reporting.html
➢ Easy setup multiple domains
https://docs.warden.dev/configuration/multipledomains.html
➢ Easy to customize an environment
https://docs.warden.dev/environments/customizing.html
➢ Support for Magepack advanced JS bundling
Installation
Requires only Homebrew,
Docker, and Docker Compose to
get started, and Mutagen on
macOS (for Magento 2 file sync).
brew install davidalger/warden/warden
warden svc up
Migrate local running project
➢ warden env-init project-name magento2
➢ Edit .env if needed
➢ warden svc up - to start global services
➢ warden sign-certificate project-name.test
➢ warden env up - to start project containers
➢ pv|cat /path/to/dump.sql.gz | gunzip -c | warden db import
➢ Open https://app.project-name.test
frontend
development
➢ warden shell
➢ npm install
➢ grunt clean
➢ grunt exec:<theme>
➢ grunt less:<theme>
➢ grunt watch
https://docs.warden.dev/configu
ration/livereload.html
How we use it
Inspired by https://github.com/davidalger/warden-env-magento2
➢ Created our own warden commands - git project cloned in
~/.warden/commands/
○ m2-bootstrap - runs all commands needed to setup a M2 environment
○ m2-dump - makes a DB dump from an (stage/prod) environment and
copies it locally (uses n98-magerun2)
○ m2-media - synchronize pub/media from an (stage/prod) environment
➢ Maintain app/etc/n98-magerun2.yml to skip tables that needs to be excluded
https://github.com/netz98/n98-magerun/wiki/Stripped-Database-Dumps
➢ Created our own app/etc/env.php.init.php which contains good enough initial
default values
How we use it
➢ app/etc/env.php.warden.php - is a git versioned file that contains setting
commun on dev environment. app/etc/env.php is a symlink to this file
○ Email settings - to use mailhog
○ base_url - website url
○ 3rd party API settings - Ex: google reCaptcha
➢ app/etc/config.php - contains common settings on all stage/prod environments.
Ex: asset settings (minify css, combine, etc)
Now use case to start a project
➢ warden m2-dump --stage stage1
➢ warden m2-bootstrap --db-dump dump.sql.gz
➢ warden m2-media --stage stage1
Estimated finish time: 5-10 minutes
Previously 2-3h with a lot of manual steps and high changes to fail
Demo
Thank you!
Q&A
Alin Alexandru - CTO Innobyte | 08.10.2021
alin.alexandru@innobyte.com

Contenu connexe

Tendances

What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiWhat's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiMike Goelzer
 
Dockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Dockerizing Windows Server Applications by Ender Barillas and Taylor BrownDockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Dockerizing Windows Server Applications by Ender Barillas and Taylor BrownDocker, Inc.
 
Minikube Workshop Handout
Minikube Workshop HandoutMinikube Workshop Handout
Minikube Workshop HandoutAlfie Chen
 
Learn nginx in 90mins
Learn nginx in 90minsLearn nginx in 90mins
Learn nginx in 90minsLarry Cai
 
WinOps 2017 - Docker on Windows - from 101 to Production
WinOps 2017 - Docker on Windows - from 101 to ProductionWinOps 2017 - Docker on Windows - from 101 to Production
WinOps 2017 - Docker on Windows - from 101 to ProductionElton Stoneman
 
Docker Networking : 0 to 60mph slides
Docker Networking : 0 to 60mph slidesDocker Networking : 0 to 60mph slides
Docker Networking : 0 to 60mph slidesDocker, Inc.
 
DCSF 19 Online Feature Extraction and Event Generation for Computer-Animal In...
DCSF 19 Online Feature Extraction and Event Generation for Computer-Animal In...DCSF 19 Online Feature Extraction and Event Generation for Computer-Animal In...
DCSF 19 Online Feature Extraction and Event Generation for Computer-Animal In...Docker, Inc.
 
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconfContinuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconfJulia Mateo
 
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...Nati Shalom
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Docker, Inc.
 
Deeper Dive in Docker Overlay Networks
Deeper Dive in Docker Overlay NetworksDeeper Dive in Docker Overlay Networks
Deeper Dive in Docker Overlay NetworksDocker, Inc.
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at NuxeoNuxeo
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresDocker, Inc.
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slidesDocker, Inc.
 
Micro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and AnsibleMicro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and AnsibleBamdad Dashtban
 
The pain and gains running Docker in live @Pipedrive
The pain and gains running Docker in live @PipedriveThe pain and gains running Docker in live @Pipedrive
The pain and gains running Docker in live @PipedriveRenno Reinurm
 
Provisioning your Environment with Vagrant and Ansible
Provisioning your Environment with Vagrant and AnsibleProvisioning your Environment with Vagrant and Ansible
Provisioning your Environment with Vagrant and AnsibleRichard Gwozdz
 
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...Docker, Inc.
 
Fabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymoreFabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymoreHenryk Konsek
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...Docker, Inc.
 

Tendances (20)

What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiWhat's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
 
Dockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Dockerizing Windows Server Applications by Ender Barillas and Taylor BrownDockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Dockerizing Windows Server Applications by Ender Barillas and Taylor Brown
 
Minikube Workshop Handout
Minikube Workshop HandoutMinikube Workshop Handout
Minikube Workshop Handout
 
Learn nginx in 90mins
Learn nginx in 90minsLearn nginx in 90mins
Learn nginx in 90mins
 
WinOps 2017 - Docker on Windows - from 101 to Production
WinOps 2017 - Docker on Windows - from 101 to ProductionWinOps 2017 - Docker on Windows - from 101 to Production
WinOps 2017 - Docker on Windows - from 101 to Production
 
Docker Networking : 0 to 60mph slides
Docker Networking : 0 to 60mph slidesDocker Networking : 0 to 60mph slides
Docker Networking : 0 to 60mph slides
 
DCSF 19 Online Feature Extraction and Event Generation for Computer-Animal In...
DCSF 19 Online Feature Extraction and Event Generation for Computer-Animal In...DCSF 19 Online Feature Extraction and Event Generation for Computer-Animal In...
DCSF 19 Online Feature Extraction and Event Generation for Computer-Animal In...
 
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconfContinuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
 
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...
 
Deeper Dive in Docker Overlay Networks
Deeper Dive in Docker Overlay NetworksDeeper Dive in Docker Overlay Networks
Deeper Dive in Docker Overlay Networks
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
 
Micro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and AnsibleMicro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and Ansible
 
The pain and gains running Docker in live @Pipedrive
The pain and gains running Docker in live @PipedriveThe pain and gains running Docker in live @Pipedrive
The pain and gains running Docker in live @Pipedrive
 
Provisioning your Environment with Vagrant and Ansible
Provisioning your Environment with Vagrant and AnsibleProvisioning your Environment with Vagrant and Ansible
Provisioning your Environment with Vagrant and Ansible
 
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
 
Fabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymoreFabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymore
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...
 

Similaire à Warden @ Meet magento Romania 2021

Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Novaclayton_oneill
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesJérôme Petazzoni
 
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...Nagios
 
Red Hat Container Development Kit
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development KitLalatendu Mohanty
 
Magento Docker Setup.pdf
Magento Docker Setup.pdfMagento Docker Setup.pdf
Magento Docker Setup.pdfAbid Malik
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned RightScale
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline Docker, Inc.
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 applicationRoman Rodomansky
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataInfluxData
 
Techtalks: taking docker to production
Techtalks: taking docker to productionTechtalks: taking docker to production
Techtalks: taking docker to productionmuayyad alsadi
 
Developing with-devstack
Developing with-devstackDeveloping with-devstack
Developing with-devstackDeepak Garg
 
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins Mando Stam
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker composeLinkMe Srl
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessDocker-Hanoi
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechChristopher Bumgardner
 

Similaire à Warden @ Meet magento Romania 2021 (20)

Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Nova
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
 
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
 
Red Hat Container Development Kit
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development Kit
 
Magento Docker Setup.pdf
Magento Docker Setup.pdfMagento Docker Setup.pdf
Magento Docker Setup.pdf
 
Dockerized maven
Dockerized mavenDockerized maven
Dockerized maven
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Techtalks: taking docker to production
Techtalks: taking docker to productionTechtalks: taking docker to production
Techtalks: taking docker to production
 
JOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to ProductionJOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to Production
 
Developing with-devstack
Developing with-devstackDeveloping with-devstack
Developing with-devstack
 
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker compose
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ Benetech
 

Dernier

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Dernier (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Warden @ Meet magento Romania 2021

  • 1. Optimise the development process with simple tips and tricks Alin Alexandru - CTO Innobyte | 08.10.2021
  • 2.
  • 3. Agenda ➢ Old development setup ➢ Reported issues ➢ Requirements for new setup ➢ Analized solutions ➢ Winner ➢ How we use it
  • 4. Old development setup ➢ Based on Virtual Box ➢ Configured with ansible (in house roles) ➢ Using NFS/Samba share
  • 5. Reported issues Time consuming to configure a project You had to wait until all the packages were installed on an Ubuntu based image (30- 40 minutes) Bad performance ● Mainly because of Xdebug and NFS/Samba share ● For frontend developers was a nightmare to work Resource intensive Each VM was consuming 4-8GB of ram.
  • 6. Requirements for new setup Fast environment ● Xdebug needs to be active only when you are debugging ● Frontend developers don’t need Xdebug Secure Most of the docker setup binds to 0.0.0.0:80, 0.0.0.0:443 Capable to run multiple projects in parallel Sometimes you need to wait for a time consuming task, while you could work on something else.
  • 7. Requirements for new setup Linux/Windows/Mac compatible Each developer is free to use what OS prefers Compatible with existing structure Changing project structure will break existing Merge requests / Pull Requests Easy to migrate project Migrations should be made in 2-4 hours Easy to start new projects Starting a project from scratch should be straightforward
  • 8. Requirements for new setup Can support other planforms Symfony or Wordpress Documented Documentation became a must, as our inhouse solution didn’t have any Easy to extend Be capable to add our tools/scripts Supported The project should be active and have a community
  • 12.
  • 13. Feature List ➢ Traefik for SSL termination and routing/proxying requests into the correct containers ➢ Portainer for quick visibility into what's running inside the local Docker host ➢ Dnsmasq to serve DNS responses for .test domains eliminating manual editing of /etc/hosts ➢ An SSH tunnel for connecting from Sequel Pro or TablePlus into any one of multiple running database containers ➢ Warden issued wildcard SSL certificates for running https on all local development domains.
  • 14. Feature List ➢ Full support for Magento 1, Magento 2, Laravel, and custom project environment configurations ➢ Mailhog to easily test emails ➢ ElasticHQ for Management and Monitoring Elasticsearch ➢ Intelligent Nginx routing, so that request are passed to container with Xdebug only when cookie is present ➢ Easy to profile performance with blackfire ➢ You can write your own commands in ~/.warden/commands/ or inside project folder in .warden/commands/
  • 15. Feature List ➢ Support for Magento2 Commerce spit database ➢ Can run Magento Functional Testing Framework https://docs.warden.dev/configuration/mftf.html ➢ Allure Reporting https://docs.warden.dev/configuration/reporting.html ➢ Easy setup multiple domains https://docs.warden.dev/configuration/multipledomains.html ➢ Easy to customize an environment https://docs.warden.dev/environments/customizing.html ➢ Support for Magepack advanced JS bundling
  • 16. Installation Requires only Homebrew, Docker, and Docker Compose to get started, and Mutagen on macOS (for Magento 2 file sync). brew install davidalger/warden/warden warden svc up
  • 17. Migrate local running project ➢ warden env-init project-name magento2 ➢ Edit .env if needed ➢ warden svc up - to start global services ➢ warden sign-certificate project-name.test ➢ warden env up - to start project containers ➢ pv|cat /path/to/dump.sql.gz | gunzip -c | warden db import ➢ Open https://app.project-name.test
  • 18. frontend development ➢ warden shell ➢ npm install ➢ grunt clean ➢ grunt exec:<theme> ➢ grunt less:<theme> ➢ grunt watch https://docs.warden.dev/configu ration/livereload.html
  • 19. How we use it Inspired by https://github.com/davidalger/warden-env-magento2 ➢ Created our own warden commands - git project cloned in ~/.warden/commands/ ○ m2-bootstrap - runs all commands needed to setup a M2 environment ○ m2-dump - makes a DB dump from an (stage/prod) environment and copies it locally (uses n98-magerun2) ○ m2-media - synchronize pub/media from an (stage/prod) environment ➢ Maintain app/etc/n98-magerun2.yml to skip tables that needs to be excluded https://github.com/netz98/n98-magerun/wiki/Stripped-Database-Dumps ➢ Created our own app/etc/env.php.init.php which contains good enough initial default values
  • 20. How we use it ➢ app/etc/env.php.warden.php - is a git versioned file that contains setting commun on dev environment. app/etc/env.php is a symlink to this file ○ Email settings - to use mailhog ○ base_url - website url ○ 3rd party API settings - Ex: google reCaptcha ➢ app/etc/config.php - contains common settings on all stage/prod environments. Ex: asset settings (minify css, combine, etc)
  • 21. Now use case to start a project ➢ warden m2-dump --stage stage1 ➢ warden m2-bootstrap --db-dump dump.sql.gz ➢ warden m2-media --stage stage1 Estimated finish time: 5-10 minutes Previously 2-3h with a lot of manual steps and high changes to fail
  • 22. Demo
  • 23. Thank you! Q&A Alin Alexandru - CTO Innobyte | 08.10.2021 alin.alexandru@innobyte.com