Launch HN: Seed (YC W21) – A Fully-Managed CI/CD Pipeline for Serverless https://ift.tt/3bZJIE9
Launch HN: Seed (YC W21) – A Fully-Managed CI/CD Pipeline for Serverless Hi HN, we are Jay and Frank from Seed ( https://seed.run ). We've built a service that makes it easy to manage a CI/CD pipeline for serverless apps on AWS. There are no build scripts and our custom deployment infrastructure can speed up your deployments almost 100x by incrementally deploying your services and Lambda functions. For some background, Serverless is an execution model where you send a cloud provider (AWS in this case), a piece of code (called an AWS Lambda function). The cloud provider is responsible for executing it and scaling it to respond to the traffic needs. And you are billed for the exact number of milliseconds of execution. Back in 2016 we were really excited to discover serverless and the idea that you could just focus on your code. So we wrote a guide to show folks how to build full-stack serverless applications — https://ift.tt/2iQiT8Y . But once we started using serverless internally, we started hitting all the operational issues that come with it. Serverless Framework apps are typically made up of multiple services (20-40). Where each service might have 10-20 Lambda functions. To deploy a service, you'll need to package each Lambda function (generate a zip of the source). This can take 3-5 mins. So the entire app might take over 45 mins to deploy. To fix this, folks will have a script that deploys them concurrently. But some services might need to be deployed after another, or in a specific order. And if a large number of services are deployed concurrently, you tend to run into rate-limit errors (at least in the AWS case). Meaning, your deployment scripts need to handle retries. These services might also be deployed to multiple environments in different AWS accounts, or regions. Managing a CI/CD pipeline for these apps can be difficult, the build scripts can be quite large and hard to maintain. We spoke to a few folks in the community that were using serverless in production and found that this was a common issue. So we decided to fix it. We built a fully-managed CI/CD pipeline specifically for Serverless Framework and CDK apps on AWS. We support deploying to multiple environments, regions, using most common git workflows. There's no need for a build script. You connect your git repo, point to the services, add your environments, and specify the order in which you want your services to be deployed. And Seed does the rest. It'll concurrently and reliably (handle any retries) deploy all your services. It'll also remove the services reliably when a branch is removed or a PR is closed. Recently we launched incremental deploys, which can really speed up deployments. We do this by checking which services have been updated, and which of the Lambda functions in those services need to be deployed. We internally store the checksums for the Lambda function packages and concurrently do these checks. We then deploy only those Lambda functions that've been updated. We've also optimized the way the dependencies (node_modules) in your apps are cached and installed. We download and restore them asynchronously, so they are not blocking the build steps. Since its launch in 2017, hundreds of teams rely on Seed everyday to deploy their serverless apps. Our pricing plans are based on the number of build minutes you use and we do not charge extra for the number of concurrent builds. We also have a great free tier — https://ift.tt/39L1A2z Thank you for reading about us. We would love to hear what you think and how we can improve Seed, or serverless in general. January 19, 2021 at 05:44PM
No comments