Magento 2: Q&A with a Systems Architect

Magento 2: Q&A with a Systems Architect

Jim Simon is one of Blue Acorn iCi’s system architects. He’s played a pivotal leadership role in a number of large-scale Magento projects, including Rebecca Minkoff. Technical knowledge of the platform, like the kind Jim possesses, is one of the many reasons Blue Acorn was Magento’s North American eCommerce Partner of the Year in 2015.

This past week, Jim sat down with us to talk about Magento 2, a platform with which he and a number of our other developers have been tasked with learning since January. While Magento 2 is still under development, and the enterprise version is yet to be released, Jim is ready to clear up some of the misconceptions he’s been hearing about the platform.

What steps has Magento taken toward better computing principles with Magento 2? How will those benefit eCommerce managers trying to improve their business?

Magento 2 has revamped the architecture of the platform. Many of these changes introduced tried and true design patterns into the platform. Although these design patterns are more advanced, they come with a lot of literature to describe how they should be used in practice (read up on the ‘Gang of Four’). For eCommerce managers, these fundamental changes provide their team with a more structurally sound platform to scale-up their business.

What areas of Magento 2 are fundamentally different from Magento 1?

Architecture, testing, and performance. Changes in these areas empower developers to write better-quality code with higher performance and stability. Additionally, the re-architecture will provide developers with a more streamlined approach to customizations.

***If you’re thinking of migrating from Magento 1 to Magento 2, download our guide here. ***

Do you feel a sense of urgency in updating to Magento 2? For people looking for a solution right now, should they implement Magento 1 or 2?

Tough question. Magento 1.14 is stable, and I’ve enjoyed releasing many sites on it. Support for Magento 1 will last for three years past the initial launch of Magento 2. Therefore, if you decide to create your solution on Magento 1.14, you aren’t going to be left in the dust once Magento 2 comes out. Relatively speaking, 3 years is a long time in the world of software, so I wouldn’t say that I feel a sense of urgency in updating to Magento 2. Re-platforming or “upgrading” to Magento 2 will present the same challenges as any other re-platform project. Magento 2 will ship with a data migration tool for existing Magento 1 sites, but all extensions, customization, and theming will need to be reworked in some fashion. Currently, Magento has not verified any extensions for Magento 2, so you won’t find them in the Connect store, but several of our partners have already finished building extensions. SLI Systems, Bronto, AddShoppers, Listrak, aheadWorks, and dotmailer already have their Magento 2 extensions going through Magento’s verification process.

Is the code more testable?

Magento 2 provides a testing framework that allows developers to work within development methodologies that are much more aligned with Test-Driven Development (TDD). Additionally, Magento 2 ships with a full suite of tests: Functional, Integration, JS, Performance, Static, and Unit. The suite is a tool to ensure we know whether or not what is being developed will break what exists. This is good no matter the size of your store or the extent of your solution.

Will Magento 2 be easier to maintain and extend in the long run (because of a move toward better computing principles)?

Yes. The principles are much more advanced, and the added complexity will challenge the Magento development community to learn them. But in doing so, I am convinced that the Magento development community will continue to rise as one of the brightest groups of developers in the eCommerce industry. In the end, our developers will produce higher-quality code that is WAY more testable – maintainability/extensibility is a by-product of those characteristics. After Magento developers get over the steep learning curve, it’s going to be way easier to customize. I think online merchants are going to notice Magento 2 has put a lot of effort into page caching and indexing functionalities, which results in a platform that performs better and is more scalable than Magento 1.

What has Magento 2 done with unit testing? How does it compare to Magento 1? What sort of effect will this have on businesses?

Magento 2 allows us to see whether or not our customizations are going to break any piece of core functionality. It provides us that visibility through a set of unit tests that allow us to develop amongst a set of regression tests. Furthermore, the testing framework lets us write unit tests for our customizations and include them as part of the regression testing process. In simple terms, more automated testing means less cost to test and more reliable testing means better code stability.

Can you describe how conflict between extensions could be solved by Magento 2?

There are a few points to make here. Magento wanted to ensure that the extensions work properly. To make that happen, they require that all extensions submitted to Magento Connect ship with a set of test cases. Also, in order for an extension to be accepted by Magento, it must pass Magento’s set of regression tests, ensuring that it doesn’t break core functionality. With that, merchants have access to higher-quality extensions. Now, how are we sure that some sets of extensions don’t conflict with each other? Well, that’s where the re-architecture of the platform comes into play. The design patterns ensure extensions are modular (or in other words, decoupled from the rest of the system).

Magento 2 has taken a long time to come about. What sort of features are you seeing that has made it worth the wait?

Testing! Well, and performance/scalability improvements. Magento 2 will ship with the ability to utilize caching tools such as redis and varnish. Performance and scalability improvements have been accomplished through improved cache, cache invalidation, and indexing processes. Also, customizations have been made more streamlined, maintainable, and flexible by a revamped front-end framework. During the “Magento 2 Technical Overview for Hosting Partners” it was announced that we’re going to see a 114% improvement in checkout, from 42k orders per hour to 90k orders per hour, and a 1900% increase for page views. This increase in performance for page views will decrease the resources utilized on the server to serve a page. As a result, Magento 2 will be able to handle higher traffic volumes.

What are the benefits of moving to more modern technologies (eg. newer version of PHP)?

What are the benefits of buying the newer model of your car? Magento 2 is the same way. Magento 2 requires PHP 5.5+, MySQL 5.6+, Apache 2.2 or 2.4, as well as optional support for Redis v3.0 and Varnish v3.5 or 4.x. The newer versions of all these technologies mean that you are brought up to speed with any of the new features, bug fixes, performance increases, etc. of the technology.

What is the benefit of the new enhanced web services? More integration points?

A pain point of Magento 1 was the performance of the API. With Magento 2, this is less of a concern. With a revamped API service, Magento 2 will open a whole new world of possibilities for integrations (external services).

What kind of Magento 2 training have you and other Blue Acorn developers received from Magento?

Tyler Craft, one of our frontend developers, and I were lucky enough to go to Austin, Texas, for an exclusive developer beta conference in January, a meeting of the minds over a beta release of Magento 2. Attendees included several members of the Magento 2 team, including Alan Kent, Magento’s chief architect, and many community leaders. We have also sent some members of our own Magento 2 team to the training seminars at Magento HQ in Culver City, CA, and we plan on sending several more in the upcoming months. Additionally, we have all gone through (or are going through) the training materials provided by Magento 2.

As of now, our developers have been provided with all the training material released by Magento. By our estimates, it takes about 80 hours to go through all the training Magento has provided. We have bi-weekly lunch meetings (and lots of pizza) to share our learning experiences, ask questions, and grow as a team in preparation for our first project. The Magento 2 team, as with all teams here, is a group of incredibly ambitious developers. Overall, we are leaning on this group to become the strongest mentors and teachers for Magento 2.

How much harder is it to train someone from scratch, versus someone who knows Magento 1?

Both developers would spend the same amount of time learning the design patterns of Magento 2, but the developer with no Magento 1 experience would need more time to learn Magento’s core modules. That said, Magento 1 developers may struggle with dropping old habits and learning the ‘Magento 2’ way. It’s hard to quantify what kind of effect that would have on training time. Especially since the depth of experience, whether it’s one year or five, would have an effect as well.

Without knowing those variables, I might expect an average developer with no Magento 1 experience to require 25% more work than a developer with Magento 1 experience.

Likewise, how much harder is it to move a site from another platform, versus from Magento 1?

Well, as mentioned earlier, Magento 2 is providing data migration tools. This will help ease the transition from Magento 1 to Magento 2. Again, all customizations, extensions, and theming will have to be reworked for Magento 2, so the customizations of a site re-platforming vs. coming from Magento 1 would be rather similar in terms of time (although referencing Magento 1 code could help speed that up). The gap would lie in how long it takes to perform data migration and implement integrations to outside services.

The upgrade path within Magento 2 is supposedly easier. Why is it going to be an easier upgrade process once customers are on Magento 2?

Once you are on Magento 2, upgrades will become easier because Magento 2 utilizes a dependency management tool called Composer. With this, Magento is aware if any dependencies have moved up in versions, and if that is the case, Magento can pull in the updates.

What is the difference between Magento 2 Community and Magento 2 Enterprise?

For starters, the EE codebase is still locked up. However, based on discussions with those in the community, I expect EE will be rich with import/export features, configurable swatches, and transactional emails. The biggest benefits for EE that I’ve heard about are related to scalability improvements. These improvements involve changes at the database level as well as the application level (orders, checkout, catalog, etc.). And, ready for this? EE will support a standalone database for checkout, compatibility with MySQL Cluster, and more concurrent admin sessions. This means we can start to lessen the bottleneck which exists at the database layer in Magento 1.

The new platform sounds more complex. Has selecting the right partner become more difficult? If so, why?

Yes, the design patterns used in this architecture are much more advanced than Magento 1, but they are tried and true patterns that have withstood the test of time in all realms of software development. With that said, I think that selecting the right partner WILL be more difficult. The team of individuals that will be responsible for developing on this platform is required to have a MUCH higher level of expertise of not only Magento concepts, but development principles as well.

What’s the biggest opportunity on Magento 2?

If you are looking to implement a solution with the latest technologies, then Magento 2 is the way to go. As I said earlier, the platform is community-driven. Because of this characteristic, it has been developed to answer the demands of the eCommerce industry. It’s organic; the community asks and the community receives. The end result is a high-performing and stable platform that has streamlined approaches to speed up customizations if you are looking for a quick solution, yet robust enough to provide a framework for scaling your business. This has all been achieved by re-architecting the Magento 1 platform into a modern platform that forces its developers to write higher quality, better performing, and more modular code without them even knowing.

If you’re considering Magento 2 for your ecommerce platform, reach out to us here. We’ve helped brands build and maintain their Magento 2 commerce sites across several industries in B2B and B2C.