On this episode of Remote Ruby, we have an awesome guest joining us. Today, we have Ken Collins, who’s a Principal Engineer and Cloud Architect at Custom Ink, an active member in the Ruby community for over fifteen years, a Microsoft open source contributor, PC Gamer, and an AWS Serverless Hero. We have so much to discuss today, as Ken fills us in on Lamby, Custom Ink, how Lambda evolved, a gem called Lambdakiq, and if you’re looking for cost optimization, why Lambda is the best compute service out there. We’ll also learn how CloudFormation can help developers, how CloudWatch Events is used, and we’ll hear about the different database options Amazon has such as Aurora Serverless, DynamoDB, and RDS. If you’ve never used Lambda, it’s a good time to try it out. Andrew realized he’s in the perfect place to try it since he recently built a proxy one. Download this episode to learn much more!
[00:01:52] Ken tells us about himself and his background
[00:04:47] Custom Ink makes some great products, and we’ll learn how Lamby came to be, the stuff they build, the cool tech behind it, and the services, such as AWS Lambda.
[00:08:16] How did Lambda evolve?
[00:09:17] Ken details what the OCI format is, and how Lambda works compared to deploying to a traditional server. We hear about Lambda releasing Function URLs, a free API gateway, and what it does.
[00:12:16] We hear the whole process from end-to-end, starting from a web request, what happens, how it gets to Rails, Dynos are running, the database gets affected, and how those containers can be used for other things like an event driven architectures.
[00:16:03] Chris asks Ken how Kubernetes and Lambda compare. Also, we hear how background jobs and cron jobs fit in, and a gem that Ken wrote called, Lambdakiq.
[00:20:30] How does Ken manage connections being made and the events being sent to the right place? Also, Chris wonders if CloudFormation is something you should learn as one of the starting points or you should later for it to be more useful, and Ken tells us about the AWS Cloud Development Kit and what it does.
[00:24:10] Amazon has many different database options and Ken explains that you can use any database you want, wherever you want.
[00:25:39] Ken explains the differences between Aurora Serverless, DynamoDB, and RDS.
[00:30:23] We’re going back to talking about Lambda now and Ken tells us about their website, a documentation website where they cover things, and a Quick Start Guide on how you can deploy a new Rails APP on Rails 3.2 to Lambda in 5 minutes.
[00:33:02] Chris mentions how Taylor Otwell modified Laravel to run on Lambda, and Vapor is their tool for deploying to Lambda.
[00:36:25] Are there any gotchas? Chris heard people were talking about Rails being slow to boot and issues with connecting to your Lambda to a VPC was slow. Ken tells us the VPC has been solved very well.
[00:39:31] Ken and Chris chat about the hardest things are learning and change management, like setting up CI for the first time can be challenging, Heroku is amazing but has its limits, and using CloudWatch Logs which is a change for people. Also, Ken shares a hotspot with Lambda, and he tells us about Lambda Punch and New Relic.
[00:42:47] Ken tells us to use CloudWatch Events for setting up Cronjobs that run on a schedule.
[00:44:51] Chris wonders if there are concerns or ways you have to change things for assets, and Ken explains what they do with turning on the magic environment variable, but if you need something else, it goes into the CI/CD Pipeline creation.
[00:48:30] Andrew is going to try Lambda now, and we hear Ken’s thoughts on how different development is from production when you use Lambda. Find out why he loves Microsoft’s Development Containers Specification, and Chris mentions DHH’s MRSK project and what it’s going to do.
[00:56:06] Find out where to follow Ken, if you’re interested in Custom Ink, check them out, and please try out Lambda because he could use some contributors to help write the guides.
Creators & Guests
What is Remote Ruby?
Three Rubyists having conversations and interviewing others about Ruby and web development.