Persona Scales their Primary Dev Environments beyond Single Machines with Crafting
“Crafting sandboxes solved our scaling issues and kept our development environments fast and stable.”
As an industry-leading provider for identity management solutions, Persona powers some of the world’s largest brands behind the scenes for their end-to-end identity operation needs including Data collection, Fraud management, KYB/KYC compliance.
Persona creates B2B SaaS solutions for enterprises, boasting a complex suite of products that necessitate a sophisticated software architecture. To accommodate the scalability demands of large clients, some components require extensive computational resources. Furthermore, given the sensitive nature of the identification data they manage, Persona prioritizes strict security standards in their development process.
Persona engineers must build numerous complex features and flows in their system swiftly in order to match the growing demand from their customers. At the same time, being such a critical cornerstone for their customers requires Persona to accomplish a near zero change failure rate (CFR). The software development practice at Persona must provide solid guarantees on correctness while avoiding a heavy prolonged process to ensure efficiency.
To meet this need, Persona chooses end-to-end development environments where they can run entire product flows. “We let our capable engineers be in charge of quality and give them tools to do that”, says Charles Yeh, CTO of Persona. “It’s critical for our engineers to run things end-to-end during development.”
Persona engineers used to solely rely on their local laptops for development. However, as the software architecture became more complex, a single machine could no longer scale to run all of the services required for end-to-end product flows. The restricted computational resources available on a single dev machine became a significant productivity constraint for developers. “My laptop gets very hot and the IDE becomes laggy after I launch the service.” “Docker is too heavy on my Mac, there is just not enough memory to run them (the services).” engineers complained.
As our product involves multiple services and some resource-heavy dependencies, running it end-to-end on a single machine is no longer viable.
In addition, as more local dev machines use the M1 chip with an ARM architecture, the consistency gap between local and production machines (x86) widens. “The python library we use generates results with minor numerical differences on M1 chips. It’s still correct but makes our testing really hard.” A better production-like dev environment is needed.
Faced with these challenges, Persona must scale beyond the single, local dev machine. “Running dev containers online is the right solution. I have used this approach at previous companies,” said Ian Chesal, Head of Infrastructure at Persona. “There are a lot of issues to get right for a solution to work, but the potential benefits are huge.”
After thorough research and trial, Persona chose Crafting as the solution for scaling their day-to-day development environments and allowed the powerful cloud machines to handle the heavy-lifting. Managed by Crafting, the required services for their development are now running in containers distributed on a Kubernetes cluster with configurable node pools.
Persona engineers are no longer constrained by CPU and memory available on a single machine. “Crafting solved the (scaling) problem and it’s pretty easy to use, I just start my sandbox and everything is ready for me,” “Having a disposable environment is great, I don’t need to worry about upgrades any more”, engineers said.
Persona engineers find Crafting is flexible to fit their development workflows and preferences. Some connect their desktop IDEs (VS Code and IntelliJ) to the sandbox and directly write code there. “Coding on sandbox with my local VS Code is pretty easy, I have all my extensions and aliases preloaded in a snapshot.” Others choose to sync the source files from their local to the cloud. “It’s great that Crafting integrates code sync, it’s easy to set up for us.” In either case, the code changes take effect instantly as the engineer writes them, allowing him/her to test them with the entire product flow in their dev environment.
Crafting sandboxes solved our scaling issues and kept our development environments fast and stable. Developers can easily collaborate on changes with anyone in the company, sharing Crafting sandboxes with other developers, product managers and designers.
Persona solved the scalability and architecture consistency issues in their development environments with Crafting. Scaling beyond a single machine’s capability allows Persona engineers to develop more efficiently. “Now my laptop is much more responsive when I’m coding and running tests.” Resolving the issue of local resource contention increases the velocity of coding by up to 75%. This change also makes Persona’s dev environment future proof, and adding a new service on Crafting is a simple procedure from the already defined docker files.
Crafting has helped alleviate the pains of running a complex development environment on laptops.
Furthermore, Persona engineers can test more effectively and more quickly thanks to the architecture consistency Crafting’s environments provide. “Now I can run individual tests on Crafting and fix issues quickly, instead of waiting for the CI to run everything every time.”
Persona adheres to the highest security standards and Crafting is fully compliant. Persona requires such a development platform to be hosted on the internal cloud while minimizing maintenance overhead. Both needs are met by Crafting’s “managed self-hosting” solution. In addition, a personal level of security standard is required for each engineer to only use their own credentials for accessing dev resources on the cloud, which is properly achieved on Crafting with the personal-level secrets.
“Setting up the self-hosted Crafting in our cloud is easier than I thought. The Crafting team really went above and beyond to help make the setup easy for us,” Ian said. “Switching dev environments is usually a big deal and I’m surprised how smooth it went.”
Persona is a leading provider of identity management solutions. As a B2B SaaS targeting enterprise, it powers some of the world’s largest brands for all their identity operation needs, such as Data collection, Fraud management, and KYB/KYC compliance.
- Development environment is too heavy to run on a single machine
- Database seeding is hard and slow on local machines
- Local machine architecture (ARM) is inconsistent with production (x86)
- Productivity suffers as a result of limited resources on a single machine
- Slow iteration speed from the inability to test with production architecture locally
- Docker and Docker compose consume a lot of local resources
- Persona engineers use Crafting to scale beyond resource limits on single machines
- Take advantage of Data Snapshots to accelerate dev database seeding
- Distribute dev containers on a Crafting-managed Kubernetes cluster
- Use on-demand production-like sandboxes as dev environments for fast iteration
- Use both full-on-cloud and hybrid local+cloud with code sync to fit their development styles