David
David

Reputation: 31

Magento - Automated deployments

Are there any automated depoloyment tools out there for Magento sites?

If not does anyone have any best practices so to speak for maintaining and deploying Magento builds across local, staging and products?

Upvotes: 3

Views: 1443

Answers (5)

Tetiana
Tetiana

Reputation: 323

You can try the packaged Magento that is automatically deployed with a help of Jelastic PaaS https://github.com/jelastic-jps/magento/tree/master/magento

You can get it pre-configured and installed with NGINX or LiteSpeed server and MariaDB.

After customization, you can clone the whole environment in order to get similar replicas for dev, test, stage and production. And when all needed changes are done on the cloned environment, you can just swap domains with current production and thus make the updated version available.

Or you can set up automated update process from Git/SVN.

Upvotes: 1

B00MER
B00MER

Reputation: 5491

Been using Git lately, so far liking it much more than SVN, this same flow could be applied to SVN as well I believe:

Git Breakdown I try to follow

More details: http://nvie.com/posts/a-successful-git-branching-model/

Currently having, a local VM with a base install of Magento to setup for projects to roll out to new developers is the best approach I think. Most of us just use NetBeans inside the VM and use git pull/pushes as well as some custom build modules for deployment to all of our usual environments: local, integration, UAT, and production. Production or Integration is usually our system of record database wise.

Here is a base .gitignore file to start off with: https://github.com/github/gitignore/blob/master/Magento.gitignore

A simple Git Deployment: http://ryanflorence.com/simple-git-deployment/

Upvotes: 1

clockworkgeek
clockworkgeek

Reputation: 37700

This is how I've been working for the past few months and it works pretty well for me.

  • Install SVN on your server. Or get your host to do it. Or choose a host with SVN in place. Or git.
    or
    Use Springloops.
  • The 'trunk' is your live site.
  • Branches are for staging. Set up the webserver to treat these folders as subdomains.
  • The live database is regularly copied to branches. This refreshes the data for testing. (Consider anonymizing sales & customer data)
  • Each repository has it's own "app/etc/local.xml" file. Mark these with SVN:ignore so that one will not upset another.
  • Also SVN:ignore the "media" and "var" directories.
  • Each dev has a local webserver for working on. When they finish a change it is deployed to a branch ready for QA.
  • Nobody except the lead dev is allowed to merge branches to trunk on pain of death!

This means changes in code bubble up to the live site. Copies of the database bubble down to devs. Sometimes copies of the "media" dir are copied downwards as well. Extensions and upgrades are tested on branches too, I dislike using the Connect Manager on a live site.

Upvotes: 1

Gabriel Spiteri
Gabriel Spiteri

Reputation: 4978

We use SVN for very large scale projects. Almost any hosting service for your staging and product environments will be able to provide you with an SVN client to maintain sync with your repository.

Never heard of any automated deployment tools for Magento.

Upvotes: 0

Bosworth99
Bosworth99

Reputation: 4244

I'm in the early stages of my first magento site. Its a big project, and my team and I have been discussing this very issue. We've seriously considered using a Git repository to maintain versioning across local, staging and live servers. Here is a good article on the subject. Its obviously focused on Wordpress, but I think the workflow would be almost identical.

And to answer your first question, I know of nothing automated.

Upvotes: 0

Related Questions