DaySmart Software designs and deploys powerful business management solutions focused on scheduling and resource management for small to medium-sized businesses; especially appointment-based B-to-C service industries like hair and nail salons, spas, barbers, pet groomers and boarding facilities, and even tattoo and piercing parlors. These markets represent $50B+ annually in the US alone! DaySmart started 20 years ago with on-premise desktop applications and grew into designing and maintaining cloud instances on Amazon Web Services (AWS). DaySmart now enables thousands of businesses to simplify operations, automate client communication, optimize appointment scheduling and payment processing through its online web and mobile applications. Managing and processing the business data being created daily by these business owners (in real-time) is a big challenge.
DaySmart’s data management challenges took shape over many years, evolving from disparate desktop databases to shared cloud AWS instances. From its humble beginnings, DaySmart has been named one of America’s Fastest-Growing Private Companies by Inc. 500|5000 the last nine years in a row.
But during their early days, they produced desktop applications on local servers that DaySmart installed at customer sites. DaySmart began their cloud migration in 2009 with servers running .NET applications. While they were slowing their maintenance of customer site servers spread across the US; they were still responsible for the patching virtual servers and for scaling during seasonal daily usage peaks. Not surprisingly, DaySmart began seeking alternative solutions to minimize these efforts. They were already familiar with AWS from their early cloud adoption and quickly adopted AWS Lambda in 2016 for its customer-facing application and workload balancing.
Over the last three years, DaySmart has enjoyed a number of operational efficiencies with this serverless Lambda environment. They found they could build a separate data analytics pipeline for each customer and scale them separately. As they gained more experience with serverless, they built the first-ever full serverless mobile application at the beginning of 2019 using several AWS services such as AWS Lambda, API Gateway, AWS S3, AWS SQS.
“Thanks to serverless services provided by AWS, our time-to-market is reduced dramatically. We’re now much more capable of shipping our new applications that deal with huge amounts of data in weeks. It’s a very big improvement if you compare it with a couple of years before without serverless” said Tom Kowalski, the Chief Architect at DaySmart. DaySmart’s service industry solutions are a perfect use case for the pay-per-use model because their applications and data pipelines have almost no traffic during nights and national holidays, whereas they can have all-time-high traffic during weekends. Switching to serverless on AWS Lambda allowed DaySmart to save money because they do not have to pay for robust dedicated resources idling during the day, and can instead pay only for what they use.
When DaySmart needs to create a new project or benchmark, or to pilot new products, it takes far less time to spin these up with their serverless environment. The DaySmart team found that ‘going serverless’ has few barriers to entry for those already accustomed to AWS services. It’s easy to create an application and/or a high throughput data pipeline using native services like AWS Kinesis, AWS Lambda, AWS Firehose and many more.
Since DaySmart services are employed by over 200,000 users in their target markets, the applications process a large amount of traffic during peak business hours. This high frequency processing burdens the applications’ data pipelines. Common to distributed apps, DaySmart faced errors and application performance issues, especially during their highest traffic volumes. It was cumbersome to identify major issues given the high number of log files. Even after finding the logs for a single function, it was difficult to correlate with the other function logs within DaySmart’s system. This labor intensive process had to be repeated for every function log as well. In order to reduce the time to resolve critical production issues, it was crucial to have a holistic view of the entire process. Thundra came to the attention of DaySmart during this search for a single pane of glass from which to monitor their app performance. Thundra helps DaySmart engineers monitor the overall application while enabling the team to dive into the tiniest details at the same time. DaySmart estimates that they have reduced their MTTR by around 50% with Thundra’s actionable alerts and insightful traces.
When DaySmart ran the first full serverless application in production, it was hard to track the root cause of latencies in their architecture. With Thundra’s detailed traces, DaySmart is now able to identify the root cause of the high latency in a Lambda function at a glance. Thundra’s timeline view for local traces pinpoints the code changes that created the latency. Moreover, it’s easy to discover the delays between different Lambda functions in their data pipeline and to understand the lengths of synchronous calls, thanks to Thundra’s distributed tracing. For example, as seen in the following figure, some of the SQL queries in a Lambda function in the DaySmart data pipeline are slower than normal. With Thundra, DaySmart can see this at a glance and work to reduce the latency caused by an inefficient query.
The biggest headache for DaySmart with serverless is a common pain point: cold starts. Before they adopted Thundra in production, they considered building an in-house solution to reduce the frequency and duration of cold starts. Then, they came across Thundra’s warm-up solution. It helped them limit the number and the impact of cold starts. Thundra still helps DaySmart control cold starts by proactively checking through Thundra’s console and with the help of the warm-up plugin. Travis Walker, Cloud Engineer at DaySmart Software, stated that “Thundra is the best tool for us to monitor how many cold starts we have, how we are going to limit those and that is the biggest differentiator.”
Beyond the function-level granularity provided by Thundra, DaySmart also takes advantage of high-level visibility through Thundra’s architecture view.
Considering their use of third-party libraries, which can make unauthorized access to several resources, DaySmart needed to ensure their function resource consumption was perfoming as expected. Travis Walker added that “It is nice to see that you can display services that are in conjunction with your Lambda. I check this view at least daily, and after deployments, to see if everything is working smoothly and as expected.” The ability to dive into the details of problematic interactions is a unique point of Thundra’s architecture view, allowing DaySmart engineers to monitor and manage issues in their serverless architecture. According to DaySmart estimates, Thundra helped them double their productivity and allowed them create serverless solutions even faster.
Serverless delivered numerous advantages for DaySmart, such as faster time-to-market, boosted developer productivity, and significant savings in their total cost of ownership. DaySmart can now scale its applications and data pipelines dynamically. However, observability posed new challenges, because it was hard to track issues within a serverless architecture. After DaySmart adopted Thundra, monitoring and troubleshooting the serverless application no longer posed serious issues for DaySmart. DaySmart engineers feel confident boosting their serverless development given the powerful insights made possible by Thundra.