Technologies and requirements
This topic describes technologies, knowledge, accounts, and steps to complete when working with your Magento Commerce (Cloud) code, environments, and store(s) and site(s). If you are not experienced with a technology, we provide additional links and information to get you started.
Technologies
The following technologies are requirements for developing and deploying your store code:
- Git
- Composer
- Magento 2
- Continuous Integration
- Architectures including Starter or Pro architecture
Here are some advanced technologies we recommend getting familiar with:
- Fastly for CDN and caching (based on Varnish)
- Blackfire Profiler for performance testing
- New Relic APM for performance testing
- GitHub if you need a Git repo
- Bitbucket if you need a Git repo
Magento Commerce (Cloud) does not support the split database performance solution at this time.
What is Git
Git is the heart of all your code in repositories. It acts as a version control system through branches from a parent. Multiple developers can work together in personal branches all merging into the same parent. You can also work on features at the same time in multiple branches.
We hope you have a good working knowledge of Git. Need some help? Don’t worry, we have you covered with some of our favorite links and information. We’ll also include a Git guide to branching and developing soon.
- Git documentation and videos from the makers of Git
- Git cheatsheet and quick guide from Roger Dudler
- Git video with DevForge to understand how people use the repo and commands with a fun story
To get started with Git, you should have Git installed on your local.
In addition to Git's requirements for valid branch names, Magento Commerce adds two additional requirements:
- The
/
character isn't allowed. - Branch names must be case-insensitively unique. In other words, if you have a branch named
_CaSe_
, you cannot create another branch named_case_
.
You must use Secure Shell (SSH) and not HTTPS to connect to the Git repository. We walk you through the process of setting this up with your local.
Supported software versions
Magento Commerce (Cloud) uses:
- Operating system: Debian GNU/Linux 8 (jessie)
- Web server: nginx 1.8
This software is not upgradable but versions for the following software is configurable:
- PHP 5.5, 5.6, and 7.0
- MySQL 5.6 and 5.7
- Redis 2.8 and 3.0
- RabbitMQ 3.5
- Elasticsearch 1.4, 1.7, and 2.4
For Staging and Production, you will use Fastly for CDN and caching. We recommend installing Fastly module 1.2.33 or later. For details, see Fastly in Cloud.
For detailed information on supported versions and extensions, see the following information. These files allow you to configure software versions you want to use in your implementation.
Requirements to get started
To get started as a developer in a Magento Commerce (Cloud) project, you need to set up the following:
- Set up a local development environment. Your local workspace works best as a virtual system (VM or container) with all prerequisities installed and the project
master
Git branch cloned. You’ll develop in branches to add modules, extensions, 3rd party integrations, and configurations. We recommend reading over develop and deploy process for your Starter or Pro plan. - Get
repo.magento.com
credentials in your account. - Get a project invitiation from the Project Owner or a super user.
We walk you through everything you need to do and know.
Magento configurations
Before you test any custom code in your local Magento Commerce environment, you must do all of the following:
- For Pro, set the database
auto_increment_increment
to 3 -
Test with the correct file permissions in PRODUCTION mode
Correct permissions only allow write access to
var
,pub/static, pub/media
, andapp/etc
- Test with minification for HTML, JavaScript, and CSS enabled
- Test with Redis enabled for page cache and session cache
- Install and configure Fastly
- Test using Varnish for the page cache
Development and testing
For development and testing, we recommend the following:
-
Test your site in an Integration (development) and Staging (near-production) environment as you complete modifications
You can enable and test individual features, new extensions, and 3rd party integration on different environments prior to merging into a single environment.
-
Verify
magento setup:install
andmagento setup:upgrade
commands work during the build and deploy process and that any extensions and customizations compile correctly in Production modeYou can set an environment variable or enter a CLI command for this specific mode.
- Fully test your site in Staging as a merchant and customer prior to Production deployment
- Verify the Fastly VCL is uploaded to Fastly
- Send a ticket with all storefront domains when going live (to be added to the shared SSL (HTTPS) certificate)
- For custom deploy hooks in Integration, open a Support ticket to have them added to the Staging and Production deployment process
- Profile key flows and customizations using Blackfire.io
License and authentication requirements
The Account Owner creates the initial Magento Commerce (Cloud) account with a purchased subscription. This owner should invite all technical staff, consultants, and Magento partners involved in the code and production of the stores to the project. The invitation provides access to the Git code, environments, and ticketing for the project.
To work with and deploy stores, you need the following:
- Magento Commerce (Cloud) account already created or created via an invitation
- Project invitiation for contributing developers from the Account Owner or a super user
- Magento authentication keys for each user who contributes to the project
Your Magento Commerce account must authenticate using any of the following:
- GitHub
- Bitbucket
- Create your own Cloud account