The world is cautiously moving into a new era of cannabis legalization and Canada is staking out a position at the head of the pack. The country’s systematic rollout and methodically planned national system is a model for other countries that might follow. And Ample Organics is powering almost all of it.
The company is a world leader in providing the infrastructure and essential services to the cannabis industry, offering a complete seed-to-sale platform that helps cannabis cultivators, processors, sellers, and clinics efficiently navigate the new world of legal cannabis. Providing such foundational services is a huge business opportunity, but one that comes with significant pressures from customers and government stakeholders alike.
“Our mission is to develop tools that foster transparency, facilitate compliance, and build trust between cannabis license holders, government bodies, and the public,” says Frank Lacalamita, the company’s Director of Security, Infrastructure, and DevOps. “But our previous workflows and technology choices made it really challenging to ensure systems availability, uphold the strict security and compliance standards, and deliver a robust feature set quickly and efficiently.”
As a pioneer in cannabis tech, Ample Organics had earned a dominant share of the Canadian market in just a few short years by providing customers with the basic and enhanced features for IT systems that their businesses command. To keep up with demand, the company initially turned to Kubernetes, recognizing that a containerized development environment was likely the best and fastest way to meet customer expectations. They quickly realized its limitations.
“Kubernetes was supposed to be the best thing since sliced bread because of how well it enables agile application creation and deployment,” says Glen Yu, a cloud architect at Ample Organics. “But it also needed to be architected and implemented in a very specific way to ensure the system availability, security, and consistent version control. Ours wasn’t.”
Lacalamita says that the team’s previous infrastructure didn’t support Kubernetes’ microservices capabilities, meaning the five-person team had to manually manage and update hundreds of Kubernetes clusters on their own. For example, much of the deployment code had to be manually edited, creating a different folder for each client that required attaching a new identification code to the Kubernetes pod name.
The added burden to an already busy staff dramatically slowed new product and feature development, while also increasing the risk of service outages and downtime when multiple services weren’t yet connected. Worse, while many companies can rely on managed services providers to manage and maintain their Kubernetes environment, the Canadian cannabis industry requires that customer and medical patient data reside exclusively within Canadian borders — something most qualified service providers couldn’t promise and forcing the company instead to take ownership of the entire Kubernetes deployment itself.
“We found ourselves constantly falling behind on enhanced feature development requests that severely impacted our time-to-market, facing increased interruptions and downtime, and even missing on some of our SLAs which made for some uncomfortable conversations with customers,” says Lacalamita. “And the fact that we were locked into a single cloud provider and datacenter meant we were limited on the types of services we could offer and on options for developing an appropriate disaster recovery plan.”
After briefly considering other orchestration tools, Ample Organics chose to replace Kubernetes with HashiCorp Nomad to streamline and simplify its app development and deployment processes. Already users of HashiCorp Consul, Vault, and Terraform, the team was drawn to Nomad’s familiar interface, intuitive operation, and HashiCorp’s ecosystem approach to automation tooling.
“Nomad with Consul gives us a single, unified interface to standardize our deployment processes and makes good old-fashioned systems networking more efficient,” Yu says. “The agnostic infrastructure resource pool and automated workflows let us deploy and manage our containers and apps across any on-premises, private, or public cloud environment, which dramatically expands our datacenter options while still meeting our data residency obligations.”
Currently, operating in one data center, HashiCorp technology has helped expedite the roadmap to be positioned to operate from multiple data centers around the globe, making it possible to serve both domestic and foreign customers while enabling a more robust disaster recovery strategy. The orchestrator standardizes deployment workflows, so provisioning services in Canada, Australia, or anywhere else in the world is the same and repeatable, while also providing the flexibility to choose preferred cloud providers as disaster recovery and failover options simply by federating Nomad clusters.
Lacalamita says that adding Nomad to the company’s existing Consul, Terraform, and Vault deployments has helped the company create an agnostic platform for rolling out its services quickly, efficiently, and anywhere they want. More importantly, the end-to-end development environment has been a revelation for the company’s operations — especially its bottom line.
“Consul alone has helped us reduce our operating costs by as much as 10% simply by eliminating the majority of the load balancers we used to use,” he says. “But the real value is in the efficiency and reliability we gain with Nomad. We’re now able to ship more than 125 client deployments per day, instead of the eight per week we used to do, with virtually zero downtime, and needing just two team members to run it.”
Both Lacalamita and Yu say that the proven successes with HashiCorp solutions and the consistent, reliable support from the team have them eager to push the envelope of what they — and their infrastructure — can offer customers and the flourishing industry for years to come.
HashiCorp Consul Service (HCS) on Azure can be launched directly from the Azure Portal, but you can also launch HCS using Terraform Cloud.
Use Vault-generated dynamic credentials to provision infrastructure. Learn how to inject secrets into your Terraform configuration using the Vault provider.
New starter modules are available for Nomad, Consul, and Vault in AWS.