Terraform vs Pulumi - DSLs Are Better

Поделиться
HTML-код
  • Опубликовано: 4 сен 2023
  • Just a "quick" video about why I disagree with Lee's comments on DSLs and DSLs in general. I especially wanted to highlight a few issues with using imperative languages to define infrastructure. I go on and on a bit, so brace yourself ;-)
    Lee's blog post: leebriggs.co.uk/blog/2023/09/...
    (Note: Lee is awesome and I love his work.)
  • НаукаНаука

Комментарии • 29

  • @syrus3k
    @syrus3k 8 месяцев назад +12

    I suppose it depends on the organisation. We're a fairly small business and I think terraform is massively overkill. Only one person (me) understands the HCL which means I'm the bottleneck, however we are a python company and have lots of python engineers. Pulumi probably makes more sense for us, as we just need to get things working quickly and terraform slows us down a lot.

    • @MichaelCrilly
      @MichaelCrilly  8 месяцев назад

      A well articulated, excellent argument. Thanks for sharing.

  • @user-hf8dr3yj3d
    @user-hf8dr3yj3d 4 месяца назад +1

    I have worked with both. TF is messy unless you're infra is extremely simple. The power of a true language is great to have

  • @JeremyAndersonBoise
    @JeremyAndersonBoise 5 месяцев назад

    Brilliant assessment!

  • @Tulah
    @Tulah 10 месяцев назад +3

    I've been wanting to use pulumi for a while now, but mostly in a homelab environment for further learning of language I already have interest for. As for infrastructure at work I'd still rather use terraform, although right now there's no real reason for that either as the infrastructure is mostly defined with cloudfront and right now there's no real reason to change that just for the sake of change.
    Though this video did get me to wondering about how well pulumi works with yaml over imperative languages.
    Either way that was an interesting perspective on the matter.

  • @sandywang1195
    @sandywang1195 10 месяцев назад +1

    Can't agree more!

  • @aminnairidev
    @aminnairidev 8 месяцев назад +4

    To quote you « I don't know JavaScript » and to quote again (like minutes earlier) « Go read the documentation ».

    • @MichaelCrilly
      @MichaelCrilly  8 месяцев назад

      What’s your point?

    • @aminnairidev
      @aminnairidev 8 месяцев назад +5

      @MichaelCrilly My perspective is that Domain-Specific Languages (DSL) aren't universally superior. They excel in scenarios focused on infrastructure management, making them ideal for teams primarily engaged in that domain. However, when it comes to software engineers aiming to provision and deploy applications, the choice becomes more nuanced.
      Undoubtedly, Terraform is a robust tool, but instructing a team of, let's say, five software engineers to exclusively use HCL instead of Pulumi might not be the most prudent advice. Each tool has its merits, and a good engineer recognizes the context where one tool is more fitting than another. It's crucial to consider the unique needs of the project and the team's skill set.
      Conversely, advocating for Pulumi over Terraform without considering the preferences and expertise of an infrastructure team could also lead to suboptimal results. Engineers are generally adept at discerning the right tool for the job and are willing to set personal preferences aside for the project's success.
      I'm disappointed to observe that the title of your video appears to be clickbait. In 2023, we should strive for more nuanced discussions. The reality is that the choice between HCL and other tools depends on various factors. Team dynamics, individual preferences, and the nature of the project play pivotal roles. It's more productive to guide your audience toward a structured and objective viewpoint rather than promoting bias against certain programming languages.
      It's essential to avoid making sweeping statements like "Use Terraform, Use HCL, use a DSL, it's just better!" without considering the specific needs of the team. Your initial advice to refer to the documentation is valuable, and it's equally important to encourage teams to choose a solution that aligns with their collective skills and the scalability requirements of the client.
      I hope you'll consider adopting a more balanced perspective in your content, steering clear of biases against particular languages or paradigms. Remember, the goal is to help teams make informed decisions based on their unique circumstances, not to impose personal preferences.
      Ultimately, I hold no personal grievances against you; you seem like cool dude, and I've genuinely enjoyed some of your other videos. However, it's disheartening to witness the persistence of clickbait strategies in RUclips video titles these days for some content creators. I sincerely wish you the best with your channel and the endeavors you're pursuing at your home!

  • @jamesbelchamber
    @jamesbelchamber 10 месяцев назад +4

    Aren't most programming languages just DSLs for Software Development? 🤔

  • @astronemir
    @astronemir 9 месяцев назад +3

    I feel that code is way better but Pulumi is too expensive.
    Go read the documentation is the shittiest thing to say when in most programming languages it’s completely Obvious what is being done if you write good clean code
    HCL isn’t even a good DSL..
    Learning a coding language when you know one is super easy. It’s not a problem at all.

  • @m.iqbalmaulana7328
    @m.iqbalmaulana7328 5 месяцев назад

    I think both of lee briggs and your statement is right. I feel that lee is come from a software development background, I assume because he also state that he contribute quite much into terraform code. Me myself is also a soft dev, and from our perspective is learning new DSL or new languange for spesific task is quite tiring, when I start to learn Terraform, all the keyword is really strange to me, I never use this term before haha, but pulumi make IaC more approachable by me, since it using the same keywords/term/syntax that I used everyday.
    But after I watch your video from the infrastructure engineer or devops perspective, I agree that by using pulumi is introduce unnecessary options, where one company comfortable using JS as their IaC, but the other say use Golang for example.
    Just writing this comment make me wonder which technology I will invest to learn more haha, not really want to switch career into devops or anything, just wanted to learn tech to make my personal app deployment easier, but who knows maybe I can use it in my professional work too

  • @JanosFeher
    @JanosFeher 7 месяцев назад +1

    If we want developers to own the "you built it, you run it" mantra, we better code the infrastructure in a language they already familiar with. Terraform has serious limitations with providers, e.g. you can't defer their initialisation nor you can create a loop to dynamically iterate to create them (e.g. if you have to apply something for a dozen of regions, you will end up with a dozen copypasta). Not to mention TF providers are resource hungry, it is not unheard of a having a small TF run that eats more than 16GB RAM for no apparent reason.

    • @tristanthomas1262
      @tristanthomas1262 5 месяцев назад +1

      Any thoughts on terragrunt?

    • @JanosFeher
      @JanosFeher 5 месяцев назад

      @@tristanthomas1262 Yeah, I could use it, but unfortunately when it comes to Terraform, additional tools, linters, policy checkers, IDE, etc. does not support Terragrunt. Even the Terraform support is kinda iffy.

    • @tristanthomas1262
      @tristanthomas1262 5 месяцев назад

      @JanosFeher I'm using it for a client project. Any things I should keep in mind that your familiar with? I like that I don't need multiple repeated module inputs and repeated variable files. But yea with a new tool, i already noticed the lack of vscode support.

  • @aknotthemalik
    @aknotthemalik 5 месяцев назад +2

    For pulumi, when a company hires engineers, they would include Python as a requirement if they were to use Python for Pulumi. I think the premise of Polyglot is either not understood or the content creator is so much vested in Terraform that there is lack of acknowledgement for anything else and deliberate discreditation attempt for other options.
    Pulumi is created for developers. Period. If you continue to apply a infrastrcuture only lens to it, you will continue to find the holes as you described in this video, and will continue to misguide people that are less informed. Please acknowledge the communities that these two tools (Terraform and Pulumi) are designed for.
    I am not in any way associated with Pulumi. Just a developer benefiting from its approach.

  • @bazookaman3
    @bazookaman3 10 месяцев назад +4

    Completely agree!

  • @stanislauyan3204
    @stanislauyan3204 10 месяцев назад +1

    I do prefer crossplane. And I do not like pulumi because it is too loose

  • @kevinc.7730
    @kevinc.7730 10 месяцев назад +1

    As long as we can all agree that Heat sucks lol

  • @Tom.Weston
    @Tom.Weston 6 месяцев назад

    You are under thinking this

  • @murtadha96
    @murtadha96 2 месяца назад

    Promising channel but very bad mic quality

    • @MichaelCrilly
      @MichaelCrilly  2 месяца назад

      On every video or just this one?

    • @MichaelCrilly
      @MichaelCrilly  2 месяца назад

      I just checked that video again - it’s just quiet. I solved that ages ago.

  • @ytdlgandalf
    @ytdlgandalf 4 месяца назад +1

    Hcl is such a handicapping tool. The idiotic type system is the bane of my devops life.