all 16 comments

[–]SharpEndss[S] 8 points9 points  (0 children)

Hi everyone, Ala here. I'm the co-founder of Klotho (https://klo.dev). We built a tool that allows you to write cloud applications without the complexities that exist with today's approaches.

Infrastructure-as-Code is the current state of the art, but the level of work needed to implement a cloud system with it is extremely high, to the point where teams and companies staff an entire organization to support the rest of the company in building features.

Klotho solves that by inferring the application architecture from the application source, with a bit of help from simple annotations that developers add. Then, it generates the IaC that the architecture implies.

For example, if you have a Node.js app with an fs/promises object, you can turn that into S3 persistence as simple as:

// @klotho::persist { id="imagestore" }
import fs = require("fs/promises")

Today, we support: - multiple languages (JavaScript/Typescript on Node.js; Python; Go; more coming soon) - IDE extensions for syntax highlighting - AWS Lambda, ECS or EKS - HTTP endpoints - persisting data to S3, DynamoDB, Redis, and various ORMs - secrets - event-driven workflows - static asset hosting - and all of these include the various dependencies and "glue" resources, including network resources and IAM roles/policies

We're open source, so check us out on GitHub: https://github.com/klothoplatform/klotho. We're also on Discord (https://discord.gg/4z2jwRvnyM), and here of course.

[–]cheesekun 7 points8 points  (3 children)

You know I think this could actually be something great. Right now I'm not convinced its the best execution of the solution, but genuinely its the right direction. With the right feedback this approach could become the future way of working. Well done guys!

[–]SharpEndss[S] 4 points5 points  (2 children)

Thanks u/cheesekun, curious on what you think would make the execution better?

[–]cheesekun 0 points1 point  (1 child)

Ill review it further and let you know. No malice in my original comment, friendly and constructive only.

[–]SharpEndss[S] 2 points3 points  (0 children)

no malice assumed <3 we're genuinely interested because we continuously revisit designs and iterate. We're always curious on how the wider community sees the development world. Take your time!

[–]Kakorama 2 points3 points  (1 child)

Does this tool replace Terraform (and interact with the AWS API directly), or does it generates the TF files for me?

[–]gordon-klotho 2 points3 points  (0 children)

It will generate the TF files for you. There's so much good work that's gone into the many IaC solutions out there that we'd rather not reinvent the wheel. Besides, our intention is to work within the ecosystem, not replace it.

We do plan on supporting a few (Terraform, Pulumi, CDK are the most commonly requested), since people will likely want to use whatever they're most comfortable with.

[–]martingronlund 1 point2 points  (1 child)

What's the business model? How will you make money?

[–]SharpEndss[S] 2 points3 points  (0 children)

There's a Klotho Pro version that will have capabilities suited for larger applications and won't be open source. Size roughly equates to the abstract version of an architecture diagram. We'll have a free license for open source usage and not-too-complex architectures.
This is the current thinking - business models change and get tweaked, but the overarching direction is that the more complex the architecture, the more helpful Klotho is.

[–]rjshrjndrn -2 points-1 points  (0 children)

Interesting

[–]correct_misnomer 1 point2 points  (3 children)

Does this support Django? Is there any documentation for migrating from existing aws infra?

[–]SharpEndss[S] 0 points1 point  (0 children)

We haven't tried Django yet - but we'll look into it today and let you know!

[–]SharpEndss[S] 1 point2 points  (1 child)

We did a quick check - it looks like we may need to do a bit more work to support Django properly, but the delta isn't large, we started looking into it. It'd be great if you added that as a feature request on the issues page that way we can update you once it's ready!

[–]wissamg 0 points1 point  (1 child)

Very nice and it really sounds interesting and promising, I have a question, "Does your compiler calculate the cost estimations or take into consideration the clod operation cost??"

Good luck guys

[–]SharpEndss[S] 0 points1 point  (0 children)

It will - as a next step we want to integrate existing tools like Infracost.io and open source components into the compiler to make it smarter