The thing is I haven't used Terraform extensively so I can't compare.
The main downsides I found are probably IaC downsides in general. Such as scenarios where you need to click-ops to repair because only some of the infra was deployed. I think the clouds need to make their stuff IaC friendly to avoid this though.
My main fear is taking on that dependency on something newer. With Terraform if the company goes bust, the community could take over, and probably it would become an Apache project. Maybe Pulumi would too. It is not good enough for it to be open source. It needs to keep up with the daily changes in the cloud.
I will say it was very nice getting the type hints for infrastructure while developing as well as hints about something being unused, etc.
It overall worked better than I was probably expecting.
Also agree with your points on the pain of IaC - it's terrific when it works but there's always those special "except this resource doesn't follow any of those rules" cases to make things painful and extra complex.
I've also found that IaC can have a chilling effect for folks who haven't ever tried it before - it's a powerful abstraction tool - but at the end of the day you also need some level of understanding around what is happening under the hood - where to debug an error (which level), etc.
My one critique is sort of weird in the sense that Pulumi supports way more than its public documentation says. I hope they up their documentation game in the future, because there are a lot of things that I had to go digging through source code to find out how to implement. But that's really a minor nitpick in the grand scheme of things. Big Pulumi fan here.
This was my first time using Pulumi, and it was very much a delight. There's clearly been a lot of thought and effort put into the plugins and overall developer experience.
For example, you can have Pulumi handle the Docker image builds for you - as well as the ECR repository logins and pushes. This means that your end users don't need to manually build images, log into ECR and push them - they just run `pulumi up` instead.
Pulumi is (mostly) a bliss!
Hits a really nice sweet spot for me -- yes, you want your infra definition to be declarative, but being able to write real code in a real language (Typescript in my case) that generates that declarative infra definition is exactly the right level of abstraction imho.
It was my first time working with Pulumi and despite not being sure yet how I truly feel about TypeScript - it was a pleasant experience to be able to use programming constructs I'm already familiar with.
I think that's the real leg up that Pulumi has on Terraform.
With HCL / Terraform - you're supposed to be dealing with configuration, but - we also need loops and maps - so we sort of get a mix between a configuration language and a programming language.
As soon as you need to do something even moderately complex you're in a world of pain (automatically deploying and validating Route 53 records via DNS in AWS, I'm looking at you...).
I do use Grammarly for editing assistance when I'm writing something for work.
I work on Azure SQL, but it’s pretty clear that this is a cool demo. It may scale for some usages, but I wouldn’t build a production system on it.
https://news.ycombinator.com/item?id=36943318
[1] https://retool.com/reports/state-of-ai-2023
[2] https://state-of-llm.streamlit.app/#third
We get a lot of feedback that our many open-source Jupyter notebooks (github.com/pinecone-io/examples) are very helpful for learning new techniques and understanding how patterns work - even for starting new applications.
However, we're also often asked how to go from Notebook to prod. The Reference Architecture is a step in the direction of making this easier and more clear.
We are finding that JavaScript is an often overlooked language for working in AI:
https://www.pinecone.io/learn/javascript-ai/
There's also a very nice synergy between using a language like JavaScript (many are familiar enough to read through and understand what's happening) and the type safety that TypeScript introduces.
We are seeing a lot of interest in working with Typescript hence why many of our examples are TypeScript applications.
The images were generated via DALL-E - so they're not technically "autogenerated". They were created using a generative model, however.
The content itself definitely was not generated by an LLM - although that feels like a low-effort comment =/ What in particular felt LLM-generated to you?
I think this is on the main page because being able to set 3 environment variables and run `pulumi up` to get to a production-ready system in your own AWS account, without having to purchase anything, is a massive time-saver for anyone with a high-scale use cases that wants to use Pinecone's vector database.