In early June, I took on the role of Acting Chief Technology Officer for Formula Chemicals, and I had four goals in this role.
- Find Formula Chemicals a permanent Chief Technology Officer.
- Fix their Marketing approach and increase time on site (A/B testing).
- Square away some missing items in their container quote shipping process.
- Move off of Commerce Cloud to a new platform.
Magento Commerce Cloud is a good offering for a lot of merchants; it offers scalability, reliability, support infrastructure, and Magento expertise when needed. It is also quite expensive for a smaller startup; the billing process makes it prohibitively expensive for certain types of business.
For many retailers that sell standard goods, it is a great option. Take a business selling clothing, doing a million to five million or so a year in business with an average cart value of thirty dollars. This business is an excellent client for Commerce Cloud, and it fits quite well into its market strategy.
Now let’s look at Formula Chemicals. They do not sell t-shirts, they sell chemicals, compounds, and powders to companies around the world to make dyes and additives. So they are primarily B2B, substantial cart value, and little traffic. Paying large sums of money to handle very high traffic is a waste here, so is spending dollars on things like traditional marketing, and many other ordinary expenses.
I decided to tackle item four on my list first. I worked with the executive team, got a budget, and the green light to start meeting with service providers for an alternative hosting solution. I had worked with several partners in the past. I got quotes or demos from several partners such as Rackspace, Nexcess, Amazon AWS, and Jetrails. All of these providers offer a great product, and I am not saying any of them are the wrong choice for everyone. As I have said before, decisions like these are specific to the business in question.
When I met with Tom at Jetrails, I was very impressed; he understood all of the reasons I wanted to take the company in this direction, including the tech requirements. I settled on moving to Jetrails; this has been a truly painless experience from a technical standpoint. I have a lot of work ahead of me for making some migration efforts (downgrading to Open Source among them) as well as some upgrades to the modules for container quote, but the actual server migration has been terrific. Their team has been very responsive to any issues that have come up, and the server has done well under some siege tests.
The choice of a platform should never be made with small sample sizes, and the same is true with the hosting provider. A company needs more than just a server in the cloud. They need a partner who will work with them side by side to reach their goals together. Gone are the days of running an eCommerce site on “a toaster in the kitchen.” These days everything from cache solutions to DDoS protection is needed to ensure you have a performant, secure, and reliable service for your clients.
One excellent addition for the technical among my readers is the ability to move away from the “black box” deployment process on Commerce Cloud to a more openly understood Ansible solution. This process allows for not only a rollback in the event something goes wrong but prevents new code from even getting deployed in the unlikely event it does. I added a database called “deployment,” where the incoming release package all runs on this database in place of production. Only when everything passes the initial tests does it put the site in maintenance mode and run a final setup-upgrade; this makes it to where any “nuclear” upgrade scripts do not run against a production-level database. This entire process gives our business a safety net against negatively impacting our customers.
In an ideal world, you want to run everything through staging and then production; sadly, even when doing that, sometimes things just go wrong. For CEO’s this is a frustrating part of the technical aspect of a business. For CTO’s, we expect it. We plan for the worst and hope for the best. I hope this database piece is never needed and ends up unused. Too many times as a developer, I have seen deployments on Commerce Cloud fail, the site is down, and we have to deploy a restored database, which can take over an hour, this process avoids that need.
This solution is not a “one size fits all” solution. For example, if you had a vast database, you would need to implement database sharding to meet the needs of the business, and this solution would not be as effective. In our case, this is a helpful safety net in case things ever go wrong.
It is critical in any business, on every level, that everyone involved always asks questions. What happens if this breaks? Am I exposing the company to significant risk? Am I exposing customers or clients to risk? How many points of failure does this feature have? Are my tests robust enough? These types of questions should be second nature to your team.
Working with Jetrails has offloaded some of those risks to an expert team, given me some peace of mind, and will end up saving Formula Chemicals a significant amount of money. If you have not considered their offering, especially with Magento 1 now at it’s EOL, you should.