When one small enterprise experienced serverless computing slowdowns, it turned to startup DevZero to provide internal developer tooling and speed up development.
The idea behind serverless computing is that development teams no longer need to tackle infrastructure management tasks such as configuring and maintaining servers. Instead, they can focus on coding. However, that doesn't mean development is always faster, nor does it mean developers never have to think about infrastructure.
Extend, a San Francisco-based company that provides extended warranties to merchants, experienced significant serverless computing slowdowns when using Amazon's Cloud Development Kit (CDK). CDK is a superset of CloudFormation that AWS uses behind the scenes to define its infrastructure; if a developer wants a new piece of infrastructure stood up, CDK spits out a large YAML file.
As Extend heavily uses CDK, that means all its infrastructure lives in code, said Matthew Schrepel, senior manager of developer experience at Extend. So, when an engineer is developing a new feature, for example, they also must define the infrastructure that lives with that, he said.
"We were deploying our CDK infrastructure manually and then testing it, which means that our cycle was slow," Schrepel said. "So, you have to deploy your code in order to test your code. And if something goes wrong, then you fix your code, deploy your code and test your code again. It becomes a long, arduous, annoying cycle."
The search for serverless tooling
When Extend embarked on a search for a tool to speed up development, it found few options on the market, Schrepel said. The team looked at Serverless Framework, open source software that deploys software packages to the cloud, and LocalStack, a replica of AWS that runs from a Docker box on a developer's machine. But neither of those options was a perfect fit, he said.
The team settled on startup DevZero's developer environment platform, which gives individual developers a copy of their production environment with which to write and test code.
When engineers write code on their own computer and then send the code out to a fellow engineer for review, no one can see the end-to-end subsystem working in its entirety. In this scenario, after the code goes into CI for more testing, CD will deploy it to a preproduction environment, which is the first time an engineer can validate that a subsystem is working. By contrast, DevZero offers virtual development environments in the cloud, which gives engineers a view into the whole process without having to send code back and forth from their local machine.
The Seattle-based private company launched its platform last month and has raised $26 million in series A and seed funding to date.
DevZero tailors its developer environments to whatever production configuration a company might have, operating in all major cloud providers such as AWS, Google Cloud Platform and Azure. Internally developed tooling that larger companies might use for this, such as Uber's Devpod, is often not an option for smaller enterprises because it is costly and time-consuming to develop, said Debo Ray, CEO and co-founder of DevZero.
Matthew SchrepelSenior manager of developer experience, Extend
Extend enrolled in a pilot program last year to test DevZero, which it completed in December 2022; it is currently working on further integrating DevZero within its infrastructure.
DevZero is a CLI tool. "So, it works off the CDK stuff that we already have defined and just deploys that," Schrepel said. "The integration was essentially -- none. Because we already have our infrastructure defined as CDK, it's as easy as typing, 'Deploy this stack and open an IDE against it.'"
One implementation challenge that cropped up was due to a customized setup around Extend's CDK code, Schrepel said.
"It's choices that we've made that are nonstandard in terms of CDK that have made [implementation] difficult," he said.
For example, a CDK CLI command to deploy a stack only works in serial; if an application has nested stacks, those stacks will deploy one at a time. For Extend, this meant deployment was too slow, so Extend's developers wrote custom code to deploy nested stacks in parallel, Schrepel said. To make DevZero work in its developer environment, Extend's developers had to code around their customizations.
One improvement Schrepel would like to see to DevZero's platform is aggregate logging. Amazon's natural logging service, CloudWatch, provides monitoring for AWS resources and customer applications running on the service. However, CloudWatch is a pain to use, Schrepel said. For example, it can be a challenge to figure out what a single request kicked off if it involves multiple systems and services. Developers must figure out multiple cloud streams or use a central logging system such as Datadog, he said.
"Aggregating a bunch of logs together in a way that makes that easy would be a big boon to developer tooling," Schrepel said.
DevZero does not have an option for aggregate logging, but the company plans to implement that option this year, Ray said.