Evolution Of Cloud Tooling – From Black Box To User-Friendly, Extendable Solution
March 9, 2020
Every great customizable cloud solution requires powerful tooling to simplify day-to-day operations and help developers focus on the important things: delivery of project and required business customizations. When we first released our cloud tooling solution, ECE-Tools, about three years ago, it was not well-known outside of Magento. Since then, it has gained greater awareness and adoption after continuous improvements and community contributions to more than 20 releases.
With user experience in mind and a desire to improve processes and reduce operational burden, we came up with ECE-Tools as a unified solution to configure and deploy Magento into the cloud and locally. Since then, there have been many important milestones, helping us get ECE-Tools to its current state. This powerful cloud deployment and configuration tooling now offers extensive configuration and customization capabilities, while also keeping all Magento deployment best practices in mind, to help users avoid issues and downtime.
Creating A More Merchant-Friendly Architecture
ECE-Tools is a live and evolving project that requires many architectural decisions to be made to align with users' needs and the evolution of the core product.
• First, Magento Cloud Components was added, optimizing Magento for the cloud and improving cross-version compatibility of cloud tooling. This allows us to perform more complex operations, such as deeper cache warm-up. Magento Cloud Components integrates deeply with both core and ECE-Tools, providing nearly unlimited capabilities for deployment and configuration customization.
• Magento Cloud Patches got decoupled from ECE-Tools so that all Magento customers can apply hotfixes more easily by just adding one simple package. Magento Cloud Patches can easily determine the version of the Magento application and apply only the critical hotfixes required for this version, making the hotfixing process easier than ever before and reducing the time and cost of patching merchant stores.
• Finally, developers needed a powerful development devbox that would allow them to develop and test cloud installations. Magento Cloud Docker became a stand-alone product that can install and deploy your Magento instance into containers by using ECE-Tools. This allows users to test against production-like environments locally and develop in a consistent environment while also extending their continuous integration and continuous deployment (CI/CD) pipelines with additional cloud acceptance testing.
Introducing The Latest Suite Of Cloud Tooling
Now we have four separate packages in our suite of cloud deployment tooling, each playing its own role. They can each be used separately, but they provide the most value when used together with ECE-Tools. Learn how we’re improving the cloud development experience with the latest release of ECE-Tools and introduction of the three new packages in our suite of cloud deployment tooling.
ECE-Tools 2002.1.0 provides nearly unlimited extensibility capabilities. Deployment phases now become scenarios, which consist of many different steps and can be changed, removed, rearranged, or customized in a way that is familiar to Magento developers. We realized that Magento’s extensibility requires an extensible deployment flow, so developers are not limited in what they can do with Magento hosted in the cloud. Infrastructure should not stop anyone from building a unique experience for customers, so we now allow users to define exactly what they need to have happen in the deployment process. We still provide baseline scenarios and believe they fit most use cases, but for those unique, complex use cases, users now have powerful tooling to solve the complex cases. On top of that, ECE-Tools becomes a platform-agnostic solution, giving solution partners and developers a consistent development experience whether deployed in the cloud or on-premise. This will reduce the learning curve, lower operational costs, and open doors for the whole Magento community to contribute, while making it the best solution to deploy and configure Magento.
Magento Cloud Components now extend Magento Commerce core functionality for sites deployed in the cloud. This package provides additional cross-version compatible functionality for Magento, allowing developers to perform more complicated operations, such as pulling the list of URLs for warm-up from the Magento database based on regular expression.
Magento Cloud Patches now bundle all of the hotfixes previously published on the Magento.com website. Users no longer need to keep track of individual hotfixes being released – we’ve packaged all of them in a single package, while the logic inside helps to pick the required patches to be applied based on the version of Magento used. Users now need to only keep this package up to date and can be sure that main critical hotfixes are always there. An additional benefit to being deployed in our cloud is that these hotfixes are often made available sooner than for on-premise deployments, where they will have to wait for the next Magento Commerce patch release.
Magento Cloud Docker became a unique case of a community-driven project, which started as part of the cloud tooling and evolved to be the main official devbox for any local Magento development needs. Devbox includes reference architecture of a containerized cloud deployment, additional tooling for development needs, and support for cloud production mode to mimic cloud deployment for quality assurance and other purposes. It gets support for Magento-supported service versions (DB, Redis, etc.) as soon as those become known and helps to prepare for future infrastructure upgrades. It’s fast, reliable, and extremely customizable, allowing users to build any Magento project using it – from a simple store to a Progressive Web App.
The Future Of Cloud Development
We have big plans for upcoming releases, which will continue to make the development experience easier and production deployments simpler and more reliable. With unlimited extensibility just released, we expect extension providers and integrators to start improving their own installation flows by extending ECE-Tools and removing the need for manual operations to be made. Every deployment should be reliable, repeatable, and simple, making the developer experience as seamless as possible. In the meantime, we look to extend customization capabilities even further by providing better visibility into outcomes of ECE-Tools operations. Users should expect deeper cloud tooling integration with other systems, including the Magento Functional Testing Framework, GitHub Magento Core pull requests, and others, allowing every Magento community member to see the benefits of the evolving cloud tooling.
If you are as excited about the recent release as we are, please join us on the #cloud and #cloud-docker channels in the Community Engineering Slack to help improve the developer experience even further. We host demos and community grooming sessions, and we actively interact on Slack so we can better understand the needs of and get feedback directly from our users – the Magento developer community. Come join us on our community demos every other Thursday at 10 a.m. ET /7 a.m. PT.