We’ve made Magento 2 distributed development environment available

Mladen LotarDevelopment, Magento, Magento 2, Open source, Star commerceLeave a Comment

vagrant-virtualbox-ubuntu-post-title

Are you interested in development of scalable Magento 2 system?

As you might have seen before – we’ve released our development environment for STAR Commerce – old news, right? That’s true, but since we already spent some time on making distributed development environment, it was pretty straightforward to create Magento 2 distributed development environment – so we did that for your convenience.

Do you need such environment?

If you want to guarantee that your custom extension will work on distributed Magento 2 installation on AWS or Digital Ocean for example, you do because the best way to make sure is to develop on distributed system, so you can tackle all of the issues as they pop up – basically you’d avoid the situation where you have to say to your clients that you’re pretty sure it will work on the cloud or any other form of distribution – because you already made 100% sure.

Sales-TV-kind-of pitch: “But wait, there’s more”

Perhaps not in distributed manner (for now), but you also get “GenericLAMP” environment on single box setup. Meaning that all you have to do is add your code to specific directory in your system, update your hosts file and it will run the code without the hassle of installing PHP, MySQL, Apache or having to worry about the configuration – it’s all already pre-configured for majority of situations.

To cover main concern of this paragraph – even if you work with WordPress or Magento 1, you can still utilize the fact that it makes development simpler because you don’t have to worry about development setup. Let me just quote Vagrant site for a second here:

Vagrant is a tool for building complete development environments. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases development/production parity, and makes the “works on my machine” excuse a relic of the past.

Just to rephrase them – it means that all developers you work with actually develop on identical, self-configuring environments without overhead of having to maintain it on every single machine.

Environments overview

Since a lot of code is reused, software that is used is more or less same across the board. Currently, Base VM being used is puphpet/ubuntu1404-x64 (entire project was based of Puphpet).

Concrete versions of software:

  • PHP 5.6
  • MySQL 5.6
  • Apache 2.4
  • Nginx 1.8
  • Haproxy 1.4
  • + composer, xdebug,…

And available environments are:

  • STARCommerce
  • Magento2
  • GenericLAMP

Not all of environments use all of software listed above, it’s installed where appropriate. All of the basics are explained in main project, so read up on documentation from there. If you find any issues, please file them to the Github issue tracker.

Note: all of them are built so that they can work in parallel, but that will require a decent (expensive) development machine, so it’s recommended to use them individually.

Further plans

Documentation within the project is not 100% accurate at this point, so that’s a priority, it will be followed by cleanup of puppet code. Finally, as the need for it happens, we’re gonna tweak the actual configuration of installed software to optimize for performance.

Leave a Reply

Your email address will not be published. Required fields are marked *