Profile avatar
adamhjk.me
CEO of System Initiative, Co-Founder of Chef. Open source. Heavy metal and music. Comics. @adamhjk on Twitter, @[email protected] on Masotodon.
876 posts 3,304 followers 446 following
Regular Contributor
Active Commenter
comment in response to post
Happy birthday!
comment in response to post
Need to do something, like update a resource, or refresh a target group? No problem. Just schedule that too. It'll all be in the changeset waiting for your review. Yum. Just a few lines of code, for what would've been a very hard problem to solve with traditional IaC.
comment in response to post
It's so much more straightforward.
comment in response to post
Lets say you want to add more metrics - same move! It becomes easy. Then for things that are actual baselines? Idempotent and convergent functions work like you expect. So go ahead and use them!
comment in response to post
With programmable models, though - you start to encode the *transition* between things. Perhaps the #1 reason you move between environments is app deployment? Great! Write a function that describes what needs to happen - the config that must change, the actions to run. Then run it and observe.
comment in response to post
And of course then they try and drive the variation from a big pile of variables. The side effect is it's very hard to know what's about to happen when you do anything at all - did you make sure you aren't accidentally overriding that declaration?
comment in response to post
Look, it’s entertaining regardless.
comment in response to post
Congrats
comment in response to post
You just did. hit me up at [email protected] and we'll get it sorted.
comment in response to post
If you're ready to have the best time automating your infrastructure - hit me up. I'll teach you. You're gonna love it.
comment in response to post
It's remarkable how much more time you get back when you let the underlying model do the work for you. So much boilerplate you don't need. So much tooling you don't have to install. When students ran into trouble? We just switched into their workspace and helped them live! Multiplayer FTW.
comment in response to post
Totally! We’ll work one up. Happy to walk you through it. Adam at systeminit dot com
comment in response to post
Drift is so bad in tools like terraform and pulumi because reconciling the declarations is basically impossible. In SI it’s trivial, because there isn’t a “declaration” - just a digital twin. So it’s just data.
comment in response to post
Either! There isn’t really drift between SI and CF - CF does what it does, and your component is what you think you want it to be. If it drifts, you can just fix it.
comment in response to post
It’s the magic of having an underlying engine, rather than declarative code. We don’t care what we’re modeling - you just model it 1:1, and let the engine drive it. If “drift” happens, you can see it and decide to update the model (or the resource) as appropriate.
comment in response to post
By embracing it. We don’t try and turn those APIs into a common shape. When you use cloudformstion components, you literally connect them to a cf template and the template to a stack, and that’s what runs. We then track the cloudformation stack as the resource.
comment in response to post
even if it wasn't - who gives a fuck? when is the last time you cared about 3.6mb?
comment in response to post
You can import existing resources. You can discover existing resources, including refined discovery based on properties (give me all the subnets attached to this VPC that are public, for example). It's incredibly powerful.
comment in response to post
They're going to turn into straightforward components that just drive these low level abstractions. Your new workflow will be to build a working version of what you want your application teams to use, highlight it, turn it into a template, then augment it with options.
comment in response to post
They'll be turned on for everyone next week (maybe sooner!). They're great. But the actual killer feature? I didn't do anything special. I just.. wrote some typescript in SI. Which means *thats all you have to do as well*. All those custom systems? All those platform abstractions your building?
comment in response to post
I added CloudFormation support yesterday between meetings. I used nvim and watched the application update in real time as I tweaked things. The pipeline that generates the assets was straightforward to build, and it augments the official specs with all sorts of validation and options buried in docs
comment in response to post
Yeah, I felt awful for him. He does his best, but you can’t do a lot with that script. Even the costume looked bad.
comment in response to post
You might use an LLM to help augment the data. Maybe even if there is a pattern to be found across complex data, that’s good too. But it won’t be the heart of your system.
comment in response to post
The easiest way to think about it is this: if your goal is to encode a heuristic about how a system should behave, you’re almost certainly going to be happier if you have clean data and rules for how to act. The cleaner the data gets, the easier it is to just… write a program that uses it.
comment in response to post
Unless you’ve got very deep research chips and are going to pioneer some new technology around/above LLMs - I don’t see how you get from A to B.
comment in response to post
Are you trying to do literally anything else with it? Welcome to a universe of frustration and annoying development loops. The folks dreaming of autonomous ops systems built on these tools? Not happening any time soon.
comment in response to post
The more I try and use these tools as part of my daily workflow, the more I’m struck not by their potential, but by their limits. Do you have an intractable data extraction or transformation problem? LLMs to the rescue.
comment in response to post
Whew
comment in response to post
If you decide single vendor open source should be avoided, I promise you there will be less and less open source in the world. You’ll remove any incentive to do it.
comment in response to post
Instead of talking in terms of obligations, we should talk in terms of alignment, and how working together gets us all what we want. We always have the ultimate sanction if we don’t want to stay together.
comment in response to post
But it means they behave like consumers - they get a great product for $0. They get mad and entitled if that stops. But they also have an exit strategy - fork. That’s amazing.
comment in response to post
We’ve essentially removed any conversation about what end users have or don’t as responsibilities here. Most can’t name the four freedoms. Certainly they can’t chapter and verse the OSI definition.
comment in response to post
As a pure end user of open source, you’re very vulnerable to changes in this contract. You also have the least skin the game - you’re using the software, which is lovely, but as long as you can do that you’re good.
comment in response to post
Forking isn’t an act of retaliation. It’s the purest expression of the underlying freedoms that empower open source. We should stop trying to avoid it, and instead make it a normal part of the social fabric.
comment in response to post
Go get em, Sheperd