Magento 2 Technology Stack: An Overview

June 1, 2016 by Leah Na'aman

With Magento 2 now live for a few months, developers find themselves working with some of the most advanced tools available when building new Magento stores, or upgrading existing ones.

While the popular eCommerce platform is now faster with enhanced performance, there are many new and improved softwares developers must come to grips with. While these tools are actually increasing efficiency for Magento store engineers, some require additional study before they can be utilized. Despite this, the general consensus is that Magento 2 is the superior model. M2 is now making coding and support much easier for both tech teams and merchants.

So what exactly are Magento developers now working with?

Magento 2 vs Magento 1.x

The variety of new and updated Magento 2 features make running a Magento Store smoother, and improve overall performance. This is particularly true in comparison to Magento 1.x stores:

Table-26-5-16_3.

The 16 most important components of Magento 2’s technology stack

 

#1. Apache

The world’s most used web server software is officially part of the Magento stack. Unlike Magento 1, which required Apache 2.x, you’ll need Apache 2.2.x or 2.4.x for your Magento 2 Store. To see if you’re running the right version before installing Magento 2 software, enter apache2 -v. If you need to install the latest version of Apache, use these instructions.
 

#2. PHP

While Magento 2 requires PHP 5.5 and 5.6x, the exciting news is that it will also work with version 7. This support will provide Magento developers with a far more efficient platform that greatly simplifies coding routines.

In addition, there are also a number of PHP extensions required by Magento:

  • cURL: Known as the Client URL Library, allows connection and communication with numerous types of servers using many different protocols.
  • gd, ImageMagick 6.3.7 (or later) or both: The role of these extensions is to create and modify images. Although ImageMagick 6.3.7 requires ImageMagick API to function.
  • intl: Also known as the ‘internalization extension,’ this enables PHP programmers to perform a variety of locale-aware operations, by acting as a wrapped for the ICU library. Operations include formatting, locating text boundaries and encoding conversion.
  • mbstring: Provides developers with multibyte specific string functions, allowing them to work with PHP multibyte encodings. It also looks after character encoding conversion between encoding pairs. Among a number of Unicode-based encodings, mbstring can handle UTF-8 and UCS-2.
  • mcrypt: Supporting block algorithms, like TripleDES, Blowfish, SAFER-SK64 and RC2, this the mycrpt library interface.
  • mhash: Interface to the mhash library that supports numerous has algorithms and can be used to create message authentication codes, message digests, checksums and more.
  • openssl: Uses OpenSSL functions to generate and verify signatures, while encrypting and decrypting data.
  • PDO/MySQL: This driver implements the PHP Data Objects (PDO) interface, enabling access from PHP to MySQL databases launched since (and including) 3.x.
  • SimpleXML: Using the SimpleXML extension, developers have an uncomplicated tool that allows them to convert XML to an easily processed object.
  • Soap: Allows developers to write SOAP Servers and Clients.
  • xml: Data format for structured document interchange on the web.
  • xsl: This PHP extension implements the XSL standard, utilising XSLT transformations and the libxslt library.
  • zip: Enables you to read and write ZIP compressed archives, as well as the files contained inside.
  • bc-math: Enterprise Edition only. Binary Calculator for arbitrary precision mathematics, supporting numbers of any size.

#3. Nginx

The next component on our list is reverse proxy server, Nginx. Magento 2 now supports this program by default, meaning it can be installed to facilitate numerous protocols, like HTTPS, HTTP cache, POP3 and IMAP. Nginx has grown in popularity due to its low memory usage and high performance.

#4. MySQL

MySQL, one of the most popular open source databases for web applications, is now been incorporated into Magento 2. And for good reason – it’s the preference of impressive users, like Facebook, Google, and WordPress. This will ensure your high volume Magento 2 project runs smoothly, saving you time and money. Version 5.6.x is required for Magento 2.
 

#5. Varnish (3.x, 4.x)

This is an HTTP accelerator or caching HTTP reverse proxy (or an open source web application accelerator). It caches files or file fragments in the memory, resulting in a faster response time and reduced network bandwidth consumption. Newer Magento 1x versions had a form keys feature which made HTML caching difficult to implement and required complicated workarounds. Including Varnish in the Magento 2 tech stack has led to even faster performance with much less effort.
 

#6. Redis (2.x, 3.x)

By using an in-memory dataset, among other features, Redis is an advance key-value cache that is highly recommended in multi-server environments. It provides you with a fast cache backend that remains stable and high-performing even during times of high traffic, and as cache tags are supported, you’ll no longer need to use a slow level file system cache.
 

#7. Solr

Solr is an incredibly popular search platform for eCommerce stores. With rich document handling capabilities, geospatial search options, integration with the database and dynamic clustering, Solr is an open-source godsend.
 

#8. HTML5

This is a markup language used to structure and present content on the web and is now responsible for facilitating frontend components in Magento 2. This is an important component of Magento’s new technology stack, as it both simplifies site development and facilitates new abilities.
 

#9. CSS3

Magento 2 decided to go with LESS as their native CSS pre-processor, despite SASS being typically viewed as the more powerful option. Magento made their decision based on the fact that they had several stable LESS pre-processor options, while there were no stable choices when it came to PHP implementations for SASS. With that in mind, Magento 2 featured LESS pre-processor and CSS in its tech stack, resulting in enhanced performance, a search-engine-friendly system and quicker page load times.
 

#10. JQuery

This is Magento 2’s primary JavaScript library and is incorporated by default. Developers will enjoy the fast and feature-rich JQuery library after battling with Prototype during their time with Magento 1.x – a JavaScript version so out of date that many developers only learned it so they could work with Magento 1.x eStores.
 

#11. RequireJS

Another improvement to the JavaScript side of things, this file and module loader improves the quality and speed of code after being optimized for in-browser use.
 

#12. PSR

This tech stack includes PSR-0, -1, -2, -2 and -4 coding standards, which perform as follows:

  • PSR-0: Default auto-loading standard, but PSR-4 is recommended as a replacement due to industry criticism of -0
  • PSR-1: Basic coding standards
  • PSR-2: Coding style guide.
  • PSR-3: Facilitates writing code from any logging implementation

 

#13. Composer

Magento 2 has made this PHP dependency management package a key system requirement of the new-and-improved eCommerce platform. The result? A very different module-creation experience to the one developers experienced when working with Magento 1.x. With Composer, VCS module storage is cleaner and it also eliminates the necessity of a third-party code management tool. Here, Packagist is the main PHP package repository for Composer.
 

#14. Zend Framework

This new version of Magento utilizes different parts of a number of frameworks, such as Zend Framework 1 and Zend Framework 2. ZF 2 is used for basic operations such as event management or dependency injection mechanism.
 

#15. Symfony

Symfony is another framework Magento 2 pulls from, which allows developers to avoid repetitive coding, while making configurations files as readable as INI files and just as expressive as an XML file would be.
 

#16. RabbitMQ

While this is only available for the Enterprise Edition, it’s worth mentioning. Working as the messaging broker, RabbitMQ can be used as part of the Message Queue Framework to publish messages to a queue, then subsequently define which customers receive the message at what times.
 

Conclusion

Improvements to Magento admin for merchants, smoother coding capabilities for developers, better overall performance, more support and a goodbye to outdated software. Magento 2 is a winner in our books, worth any upskill involved.

Did we miss anything? Leave a comment and let us know.

Facebookgoogle_pluslinkedin

Author

Wladyslaw Brodsky

Wladyslaw is an experienced e-commerce web-developer, with a certification and focus set on Magento development. He was a key developer within the Magento core team and participated in the releases of both Magento 1 and Magento 2. He has also developed for Smile and Ciklum, with a first-hand experience in all parts of e-commerce systems. He has since joined Shoppimon to help both merchants and programmers identify and fix common problems he has experienced within the industry.