Hacker Newsnew | past | comments | ask | show | jobs | submit | dsanchez97's commentslogin

Hey HN community,

I am excited to share an early Alpha of Cdev, a new Python Serverless Development framework. Cdev is designed to help developers build and deploy Serverless applications on AWS quickly and easily by providing out of the box optimizations for a developer’s project. Although Serverless Development can provide many benefits, it can come with many challenges that require developers to change their workflows and development experience. Cdev was designed from scratch to tackle the problems that arise with Serverless Development while providing a familiar experience for Python developers.

Some of the key features of Cdev include:

- Easy deployments: Cdev makes it easy to deploy your code to AWS Lambda by allowing you deploy a Lambda function with just a single extra annotation.

- Serverless Optimizations: Cdev provides optimizations that understand and parse out individual functions from files to automatically create artifacts that are optimized for Serverless Platforms.

- Automated Third Party Package Deployments: Cdev manages the bundling of third party packages used by functions.

- Infrastructure as Code: Cdev provides high level constructs for other Serverless Resources (DynamoDB, SQS, S3, etc) that easily integrate with your Serverless Functions.

- Isolated Environments: Create isolated development environments in the Cloud using the Cdev CLI.

When I first began learning about Serverless Development, one of the points of friction that felt unique to Serverless Development was having to break my functions into individual files or accept tradeoffs(https://dev.to/cdkpatterns/learn-the-3-aws-lambda-states-tod...) around package size, cold starts (latency), and purity of each Serverless Function only containing its own logic. To solve this issue, I created a process that analyzes a project’s Abstract Syntax Tree to understand and create optimized deployment artifacts. The created artifacts contain only the code necessary for an individual function, which provides the ability to track changes to individual functions even if they are contained in the same file.

One of the other challenges when transitioning to Serverless Development is understanding the process of packaging a function’s dependencies. Using the outputted artifacts from the Syntax Tree optimization, Cdev provides automated bundling of relative and packaged dependencies for your functions. These created dependencies are optimized to only contain the dependencies used by an individual function, which helps lower the cold start of your functions and avoid platform limitation regarding package sizes.

These optimizations are provided as part of a larger framework that strives to provide an approachable place for any Python developer to begin building Serverless applications. The framework provides high level Infrastructure as Code components for the most popular Serverless Resources on AWS that attempt to simplify connecting different Serverless resources. Along with helping developers get started fast, Cdev provides features like isolated deployment environments to help keep development fast as a project grows.

Currently, the framework is in an early alpha stage and has many rough edges, but it has all the features necessary to start building Serverless Python projects. I hope that Cdev will be a valuable tool for Python developers who want to build and deploy serverless applications quickly and easily. Thanks for checking it out and looking forward to any feedback!


I really like yalls website design and UX; especially around scheduling the functions to run. I am working on the same problem in Python space at https://cdevframework.io, but I am building it first as a client side SDK. Mostly chose that way because I don't have much frontend skills! Impressive that you could getting this up and going so quickly!


Thanks! I really like your client side SDK approach, giving users the ability to use their own IDE / tools is always a plus. (+ building a web IDE is a pain haha)


I think my experience might align with your daughters side of this. Both my parents are dentists and my older brother is now in dental school, so dentistry and health care were the talk and expertise of my household growing up. I ended up switching from a Biology major to Computer Science major my first year at University, so I went from a track where my parents could provide guidance based on their own professional experiences and experience of their peers to something that was completely outside their domain of knowledge. After I switched, I quickly had more knowledge about computers and "tech" then they ever would, so I could not turn to them for detailed professional advice and guidance.

Although they can not provide detailed and expert level guidance, I still turn to them for career and life advice. I try to explain anything I am working on at a level that they can understand, but even then, I have to weigh their guidance against the fact they do not share the same context as me or someone in the field. It came a bit faster than both they and I expected, but I think all of us have realized we reached a point where they can't provide all the guidance I need and that it is on me to find mentors and decide the path that is best for me.


I am actually working on a python library that works like you described at https://cdevframework.io! The goal is the provided a developer experience like Django that then deploys onto Serverless Infrastructure. It is a long way from that goal, but one day it will get there!


I think CGI is a good high level way of think about AWS Lambda and other Serverless compute platforms. I think the key innovations are the integrations with cloud services, and the scaling/economic model. Videos like the one linked below really demonstrate the level of optimizations implemented to make this work on the "cloud" scale. I think Serverless Compute platforms are going to become a really meaningful part of the software development ecosystem.

[1] https://www.youtube.com/watch?v=A-7j0QlGwFk&ab_channel=Insid...


Looks like a great product! I am also working on a similar product (https://cdevframework.io) in the same space, but I am focusing only on Python at the moment.

Are you using a custom IaaC management tool for the deployments, or is it compiling down to something like Aws Cloudformation or Terraform Providers?


Stacktape is built on top of AWS Cloudformation.

We also use CF infrastructure modules, CF custom resources and aws-sdk for certain features and integration.

We're also trying to smooth out some of the rough edges of Cloudformation (for example translating some of the crypting CF errors into a more developer-friendly errors).

Also, since CF can be pretty slow in some cases, we have a "fast deploy" mode that avoids CF and deploys (lambda functions and containers) way faster.


I liked the Missing Semester by MIT. It provides a first principle style for learning some of the foundational tools. https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS....


If you are using Python and looking for a framework to quickly get your Aws Lambda Functions up and running, try out the framework I am developing. It is still in the early stages, but it has some optimizations that make it simple to do things like use 3rd party packages. If you are interested, a good place to start are the docs on how to connect functions to Api Gateway https://staging.cdevframework.io/docs/examples/httpendpoints....

If you want the developer experience of Django with the benefits of Serverless Compute platforms check it out!


Interesting read, but I think it exemplifies some of the problems people currently have with Serverless development. For the main population of people here on HN that have experience with deploying applications, this will seem like a lot of learning and effort to recreate an already positive experience they with whatever framework/setup they currently use to build applications. For new developers, it is now a mountain of tools and services they must learn, which takes away one of the selling points of Serverless as an easy paradigm to learn and start building apps on (hence the selling point of not needing to worry about how to setup servers).

With all that said, I am working on building a framework that I would describe to the crowd here as Django for Serverless. It is in early stages but you can check it out at https://staging.cdevframework.io/. One of the main focuses is to make it easier to write code that is not dependent on running on a Functions as a Service (FaaS) model, so that your code can eventually be bundled up and deployed on a traditional server when a FaaS platform becomes uneconomical.


It has rough edges and is still super earlier, but I am building something along those lines for Python with the deployments on Aws Lambda at https://staging.cdevframework.io.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: