28 comments

  • econner7 hours ago
    It's weird that one of the reasons that you endorse AWS is that you had regular meetings with your account manager but then you regret premium support which is the whole reason you had regular meetings with your account manager.
    • unsnap_biceps5 hours ago
      If you spend enough (or they think you'll spend enough), you'll get an account manager without the premium support contract, especially early in the onboarding
      • necubi4 hours ago
        Or if you’re a newish startup who they hope will eventually spend enough to justify it.
    • dangus5 hours ago
      As a counterpoint, I find our AWS super team to be a mix of 40% helpful, 40% “things we say are going over their head,” 20% attempting to upsell and expand our dependence. It’s nice that we have humans but I don’t think it’s a reason to choose it or not.<p>GCP’s architecture seems clearly better to me especially if you are looking to be global.<p>Every organization I’ve ever witnessed eventually ends up with some kind of struggle with AWS’ insane organizations and accounts nightmare.<p>GCP’s use of folders makes way more sense.<p>GCP having global VPCs is also potentially a huge benefit if you want your users to hit servers that are physically close to them. On AWS you have to architect your own solution with global accelerator which becomes even more insane if you need to cross accounts, which you’ll probably have to do eventually because of the aforementioned insanity of AWS account&#x2F;organization best practices.
      • 0xbadcafebee1 hour ago
        There&#x27;s a very large gap between &quot;seems&quot; and reality. GCP is a huge PITA. It&#x27;s not even stable to use, as the console is constantly unresponsive and buggy, the UX is insane, finding documentation is like being trapped in hell.<p>Know how you find all the permissions a single user in GCP has? You have to make 9+ API calls, then filter&#x2F;merge all the results. They finally added a web tool to try and &quot;discover&quot; the permissions for a user... you sit there and watch it spin while it madly calls backend APIs to try to figure it out. Permissions for a single user can be assigned to users, groups, orgs, projects, folders, resources, (and more I forget), and there&#x27;s inheritance to make it more complex. It can take all day to track down every single place the permissions could be set for a single user in a single hierarchical organization, or where something is <i>blocking</i> some permission. The complexity increases as you have more GCP projects, folders, orgs. But, of course, if you <i>don&#x27;t</i> do all this, GCP will fight you every step of the way.<p>Compare that to AWS, where you just click a user, and you see what&#x27;s assigned to it. They engineered it specifically so it wouldn&#x27;t be a pain in the ass.<p>&gt; Every organization I’ve ever witnessed eventually ends up with some kind of struggle with AWS’ insane organizations and accounts nightmare.<p>This was an issue in the early days, but it&#x27;s well solved now with newer integrations&#x2F;services. Follow their Well Architected Framework (<a href="https:&#x2F;&#x2F;docs.aws.amazon.com&#x2F;wellarchitected&#x2F;latest&#x2F;framework&#x2F;" rel="nofollow">https:&#x2F;&#x2F;docs.aws.amazon.com&#x2F;wellarchitected&#x2F;latest&#x2F;framework...</a>), ask customer support for advice, implement it. I&#x27;m not exaggerating when I say this is the best description of the best information systems engineering practice in the world, and it&#x27;s achievable by startups. It just takes a long time to read. If you want to become an excellent systems engineer&#x2F;engineering manager&#x2F;CTO&#x2F;etc, this is your bible. (Note: you have to read the entire thing, especially the appendixes; you can&#x27;t skim it like StackOverflow)
      • SkiFire131 hour ago
        &gt; Every organization I’ve ever witnessed eventually ends up with some kind of struggle with AWS’ insane organizations and accounts nightmare.<p>What are these struggles? The product I work on uses AWS and we have ~5 accounts (I hear they used to be more TBF) but nowadays all the infrastructure is on one of them and the other are for some niche stuff (tech support?). I could see how going overboard with many accounts could be an issue, but I don&#x27;t really see issues having everything on one account.
        • sleepychu32 minutes ago
          We were saved by the bell when they announced the increased account limit for S3 buckets (1M buckets, now, 1k I think before).<p>Just before they announced that I was working on creating org accounts specifically to contain S3 buckets and then permitting the primary app to use those accounts just for their bucket allocation.<p>AWS themselves recommend an account per developer, IIRC.<p>It&#x27;s as you say, some policy or limitation might require lots of accounts and <i>lots</i> of accounts can be pretty challenging to manage.
      • danpalmer3 hours ago
        Similar to my experience with the two. We didn&#x27;t have regular meetings with our GCP account manager, but they did help us and we had a technical support rep there we were in contact with sometimes. We rarely heard from anyone at AWS, and a friend had some horror stories of reporting security issues to AWS.<p>Architecturally I&#x27;d go with GCP in a heartbeat. Bigquery was also one of the biggest wins in my previous role. Completely changed out business for almost everyone, vs Redshift which cost us a lot of money to learn that it sucked.<p>You could say I&#x27;m biased as I work at Google (but not on any of this), but for me it was definitely the other way around, I joined Google in part because of the experience of using GCP and migrating AWS workloads to in.
      • UltraSane3 hours ago
        Global VPCs are very nice but they feel like a single blast radius.
        • dangus2 hours ago
          Whether or not your VPC can have subnets in multiple regions is entirely unrelated to security.
          • UltraSane1 hour ago
            I meant failure blast radius. Having isolated regions is a core part of the AWS reliability design. AWS has had entire regions fail but these failure have always been isolated to a single region. Global VPCs must rely on globally connected routers that can all fail in ways AWS regional VPCs can&#x27;t.
            • ses198452 minutes ago
              If you need global HA to the extent that you&#x27;re worried about global VPC failure modes, you&#x27;re going to have to spend a lot of effort to squeeze uptime to the max regardless of where you deploy.<p>Undersea cable failures are probably more likely than a google core networking failure.<p>In AWS a lot of &quot;global&quot; things are actually just hosted in us-east-1.
      • wetpaws4 hours ago
        [dead]
  • calmbonsai7 hours ago
    This is the <i>best</i> post to HN in quite some time. Kudos to the detailed and structured break-down.<p>If the author had a Ko-Fi they would&#x27;ve just earned $50 USD from me.<p>I&#x27;ve been thinking of making the leap away from JIRA and I concur on RDS, Terraform for IAC, and FaaS whenever possible. Google support is non-existent and I only recommend GC for pure compute. I hear good things about Big Table, but I&#x27;ve never used in in production.<p>I disagree on Slack usage aside from the postmortem automation. Slack is just gonna&#x27; be messy no matter what policies are put in place.
    • notyourwork8 minutes ago
      Curious from you or others when FaaS isn’t possible? What criteria do you look for to decide or migrate off?
    • xyzzy_plugh5 hours ago
      Anecdotally I&#x27;ve actually had pretty good interactions with GCP including fast turn arounds on bugs that couldn&#x27;t possibly affect many other customers.
    • unethical_ban7 hours ago
      What do you use if not slack? OPs advice is standard best practice. Respect peoples time by not expecting immediate response, and use team or function based channels as much as possible.<p>Other options are email of course, and what, teams for instant messages?
      • jasonpeacock5 hours ago
        I’ve always that forums are much better suited to corporate communications than email or chat.<p>Organized by topics, must be threaded, and default to asynchronous communications. You can still opt in to notifications, and history is well organized and preserved.
      • jasonpeacock5 hours ago
        The bullet points for using Slack basically describe email (and distribution lists).<p>It’s funny how we get an instant messaging platform and derive best practices that try to emulate a previous technology.<p>Btw, email is pretty instant.
        • nottorp51 minutes ago
          If you work in a team, email is limited to the people you cc: while a convo in a slack channel can have people you didn&#x27;t think of jump in* with information.<p>See the other point in the article about discouraging one on one private messages and encouraging public discussion. That is the main reason.<p>* half a day later or days later if you do true async, but that&#x27;s fine.
          • dijit35 minutes ago
            I am neutral in this particular topic, so don’t think I’m defending or attacking or anything.<p>But aren’t mailling lists and distribution groups pretty ubiquitous?
            • nottorp18 minutes ago
              But - from the people you actually want to get to contribute - emails come with an expectation of a well thought out text. IMs ... less so.<p>I&#x27;ve been working across time zones via IM and email since ... ICQ.<p>I&#x27;m probably biased by that but I consider email the place for questions lists and long statuses with request for comments, and for info that I want retained somewhere. While IM is a transient medium where you throw a quickie question or statement or whine every couple hours - and check what everyone else is whining about.
              • dijit12 minutes ago
                I have now been roped into talking more about a topic I have no interest in and am completely ambivalent to… :&#x2F;<p>But clearly, thats cultural.<p>If you keep your eyes on the linux kernel mailing you’ll see a lot of (on topic) short and informal messages flying in all directions.<p>If you keep your eyes on the emails from big tech CEOs that sometimes appear in court documents; you’ll see that the way they use email is the same way that I’d use slack or an instant messenger.<p>Thats likely because its <i>the tool they have available</i>- we have IM tools that connect us to people we need (inside the company)- making email the only place for long form content, which means its only perceived as being for long form content.<p>But when people have to use something federated more often, it does seem like email <i>is</i> actually used this way.
        • unethical_ban5 hours ago
          I get it, email accomplishes a lot. But it &quot;feels&quot; like a place these days for one-off group chats, especially for people from different organizations. Realtime chat has its places and can also step in to that email role within a team. All my opinion, none too strongly held.
  • kstrauser7 hours ago
    &gt; Picking Terraform over Cloudformation: Endorse<p>I, too, prefer McDonald&#x27;s cheeseburgers to ground glass mixed with rusty nails. It&#x27;s not so much that I love Terraform (spelled OpenTofu) as that it&#x27;s far and away the least bad tool I&#x27;ve used in the space.
    • orwin5 hours ago
      Terraform&#x2F;openTofu is more than OK. The fact that you can use to to configure your Cisco products as well as AWS is honestly great for us. It&#x27;s also a bit like ansible: if you don&#x27;t manage it carefully and try to separate as much as possible early, it starts bloating, so you have to curate early.<p>Terragrunt is the only sane way to deploy terraform&#x2F;openTofu in a professional environment though.
      • xorcist4 minutes ago
        I never understood this. Why not use Ansible instead, especially if you already use it? Doubly so when you have Cisco config to manage. The experience is generally so much better it&#x27;s not comparable, and it is much easier to infer running state.
      • kstrauser1 hour ago
        I curse at Terraform at least once a week, usually right after I’ve discovered some weird arbitrary limitation surprising misfeature. It’s still what I reach for when I need to manage a whole organization. And compared to CloudFormation, it’s the freaking Cistine Chapel of IaC.
      • MrDarcy3 hours ago
        We can also use expect to configure Cisco routers and AWS infrastructure, doesn’t mean we should.
    • walt_grata5 hours ago
      I&#x27;ve been very happy using cdk for interacting with aws. Much better than terraform and the like.
      • etothet2 hours ago
        I second this. I do use <i>some</i> terraform, but for most of our stacks, CDK has been fantastic.
    • MrDarcy2 hours ago
      CDK is far better than Terraform.
      • jauntywundrkind2 hours ago
        If you&#x27;re any good at all at CDK, it&#x27;s cdk8s is also a very solid clear &amp; clean way to do kubernetes too. <a href="https:&#x2F;&#x2F;cdk8s.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cdk8s.io&#x2F;</a><p>I&#x27;m trying to make the decision for where to go with my home lab, and while Pulumi and Cue look neat, cdk8s seems so predictable &amp; has such clear structure &amp; form to it.<p>That&#x27;s said the l1&#x2F;l2&#x2F;l3 distinction can be a brute to deal with. There&#x27;s significant hidden complexity there.
        • shepherdjerred1 hour ago
          I use cdk8s for my homelab and absolutely love it. 100% recommend.<p>Homelab CDKs: <a href="https:&#x2F;&#x2F;github.com&#x2F;shepherdjerred&#x2F;monorepo&#x2F;tree&#x2F;main&#x2F;packages&#x2F;homelab&#x2F;src&#x2F;cdk8s" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;shepherdjerred&#x2F;monorepo&#x2F;tree&#x2F;main&#x2F;package...</a><p>Script I wrote to generate types from Helm charts: <a href="https:&#x2F;&#x2F;github.com&#x2F;shepherdjerred&#x2F;monorepo&#x2F;tree&#x2F;main&#x2F;packages&#x2F;homelab&#x2F;src&#x2F;helm-types" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;shepherdjerred&#x2F;monorepo&#x2F;tree&#x2F;main&#x2F;package...</a>
    • nine_k5 hours ago
      Any opinion on Pulumi?
      • gouggoug4 hours ago
        Not an opinion on Pulumi specifically, but an opinion on using imperative programming languages for infrastructure configuration: don&#x27;t do it. (This includes using things like CDKTF)<p>Infrastructure needs to be consistent, intuitive and reproducible. Imperative languages are too unconstrained. Particularly, they allow you to write code whose output is unpredictable (for example, it&#x27;d be easy to write code that creates a resources based on the current time of day...).<p>With infrastructure, you want predictability and reproducibility. You want to focus more on writing _what_ your infra should look like, less _how_ to get there.
        • nothrabannosir1 hour ago
          Couldn&#x27;t disagree more.<p>I have written both TF and then CDKTF extensively (!), and I am absolutely never going back to raw TF. TF vs CDKTF isn&#x27;t declarative vs imperative, it&#x27;s &quot;anemic untyped slow feedback mess&quot; vs &quot;strong typesystem, expressive builtins and LSP&quot;. You can build things in CDKTF that are humanly intractable in raw TF and it requires far <i>less</i> discipline, not more, to keep it from becoming an unmaintainable mess. Having a typechecker for your providers is a &quot;cannot unsee&quot; experience. As is being able to use for loops and defining functions.<p>That being said, would I have preferred a CDKTF in Haskell, or a typed Nix dialect? Hell yes. CDKTF was awful, it was just the least bad thing around. Just like TF itself, in a way.<p>But I have little problems with HCL as a compilation target. Rich ecosystem and the abstractions seem sensible. Maybe that&#x27;s Stockholm syndrome? Ironically, CDKTF has made me stop hating TF :)<p>Now that Hashicorp put the kibosh on CDKTF though, the question is: where next...
        • kstrauser1 hour ago
          Thanks for saving me the trouble of writing exactly that. I want my IaC to be roughly as Turing complete as JSOJ. It’s sooo tempting to say “if only I could write this part with a for loop…” and down that path lies madness.<p>There are things I think Terraform could do to improve its declarative specs without violating the spirit. Yet, I still prefer it as-is to any imperative alternatives.
        • vanviegen1 hour ago
          &gt; Particularly, they allow you to write code whose output is unpredictable<p>Is that an easy mistake to make and a hard one to recover from, in your experience?<p>The way you have to bend over backwards in Terraform just to instantiate a thing multiple times based on some data really annoys me..
        • popalchemist4 hours ago
          yes. IaC is a misnomer. IaC implementations should have a spec (some kind of document) as the source of truth; not code.
      • x3n0ph3n34 hours ago
        My opinion is there are not enough good software developers doing DevOps, and HCL is simple enough and can have pretty good guardrails on it. My biggest concern is people shooting themselves in the foot because the static analysis tools available for HCL don&#x27;t work with Pulumi.
        • SlightlyLeftPad2 hours ago
          It’s an unfortunate truth that good software developers aren’t crazy enough to want to do it.
      • orthecreedence2 hours ago
        Pulumi is superior to Terraform for my use cases. It&#x27;s actually Infrastructure as Code. Terraform pretends to be, but uses a horrible config language that tries to skirt the line between programming language and config spec, and skirts it horribly. Reorganizing modules is a huge pain. I dreaded using Terraform and I spin things up and down in Pulumi all day. No contest.<p>Granted, I&#x27;m a programmer, have been for a long time, so using programming tools is a no brainer for me. If someone wants to manage infra but doesn&#x27;t have programming skills, then learning the Terraform config language is a great idea. Just kidding, it&#x27;s going to be just as confusing and obnoxious as learning the basic skills you need in python&#x2F;js to get up and running with Pulumi.
        • kstrauser1 hour ago
          I disagree with that. I think it’s satisfying to find a way to express my intent in HCL, and I don’t think I could do it as well without a strong programming background.
    • easterncalculus4 hours ago
      You can honestly do a lot of what people do with Terraform now just using Docker and Ansible. I&#x27;m surprised more people don&#x27;t try to. Most clouds are supported, even private clouds and stuff like MAAS.
      • x3n0ph3n34 hours ago
        Yeah, but ansible is one of the nine circles of hell and its support for various AWS services beyond EC2 and S3 is near nonexistant.
        • Tostino2 hours ago
          I have mixed feelings about it. On my first startup, I used ansible to automate all of the manual workflows and server setup that we had done. Everything was just completely manual and in people&#x27;s heads before, and translating it to ansible was a pain in the ass to say the least. I don&#x27;t think it would have been any easier to translate it to something else though. It ended up working fine and we had a solid system that I could reset up our environment from scratch on a set of VPS provided by some terraform scripts. We were originally on digitalocean, and had to migrate to Azure because of acquisition BS.<p>For my current startup I ended up not going a direction where I needed ansible. I&#x27;ve now got everything in helm charts and deployable to K8S clusters, and packaged with Dockerfiles. Not really missing ansible, but not exactly in love with K8S either. It works well enough I guess.
          • SkiFire1352 minutes ago
            &gt; on a set of VPS provided by some terraform scripts<p>You ended up needing Terraform too for the infrastructure though. At that point why not just use Terraform?
  • SoftTalker2 hours ago
    After listing dozens of infrastructure products&#x2F;projects, &quot;My general infrastructure advice is “less is better”.<p>That made me laugh. Yes I get that they probably didn&#x27;t use <i>all</i> of these at the same time.
  • lightyrs25 minutes ago
    Interested to know what&#x27;s changed (if anything) in the two years since this was written.
    • hambes17 minutes ago
      for one thing the ingress nginx is retiring[1], so they&#x27;re probably revsiting alternatives, maybe even the service meshes for the new gateway api.<p>1: <a href="https:&#x2F;&#x2F;kubernetes.io&#x2F;blog&#x2F;2026&#x2F;01&#x2F;29&#x2F;ingress-nginx-statement&#x2F;" rel="nofollow">https:&#x2F;&#x2F;kubernetes.io&#x2F;blog&#x2F;2026&#x2F;01&#x2F;29&#x2F;ingress-nginx-statemen...</a>
  • MaXtreeM22 minutes ago
    Previous discussion (626 comments): <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39313623">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39313623</a>
  • kolja0054 hours ago
    &gt;Since the database is used by everyone, it becomes cared for by no one. Startups don’t have the luxury of a DBA, and everything owned by no one is owned by infrastructure eventually.<p>This post was a great read.<p>Tangent to this, I&#x27;ve always found &quot;best practices&quot; to be a bit of a misnomer. In most cases in software and especially devops I have found it means &quot;pay for this product that constrains the way that you do things so you don&#x27;t shoot yourself in the foot&quot;. It&#x27;s not really a &quot;practice&quot; if you&#x27;re using a product that gives you one way to do something. That said my company uses a very similar tech stack and I would choose the same one if I was starting a company tomorrow, despite the fact that, as others have mentioned, it&#x27;s a ton to keep in your head all at once.
  • rixed1 hour ago
    Sure, let&#x27;s take advices about infrastructure from that guy wo needs a tool to automate postmortems.
  • ttoinou1 hour ago
    Nice but how do those services combine with each others ? How do you combine notion, slack, your git hosting, linear and your CI&#x2F;CD ? If there are only URLs between each others it’s hard to link all the work together
  • nevalainen2 hours ago
    There is a lot of &quot;stuff&quot; for liking to keep it simple. Great article though!
  • wavemode4 hours ago
    (2024)<p>past discussion: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39313623">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39313623</a>
  • neo_doom4 hours ago
    &gt; Regret: Not adopting an identity platform early on. I stuck with Google Workspace at the start...<p>I&#x27;ve worked with hundreds of customers to integrate IdP&#x27;s with our application and Google Workspace was by far the worst of the big players (Entra ID, Okta, Ping). Its extremely inflexible for even the most basic SAML configuration. Stay far, far away.
    • 0xbadcafebee1 hour ago
      And it&#x27;s a horrible moat. I&#x27;ve gotten locked out of a Google Workspace permanently because the person who set it up left, used a personal email&#x2F;phone to do it, and despite us owning&#x2F;controlling the domain, Google wouldn&#x27;t unlock admin access to the Workspace for us, they would only <i>delete it</i>. Unacceptable business risk.
  • Grimburger5 hours ago
    &gt; There are no great FaaS options for running GPU workloads<p>Knative on k8s works well for us, there&#x27;s some oddities about it but in general does the job
  • kaycey20225 hours ago
    Feels like a minor glimpse into what&#x27;s involved in running tech companies these days. Sure this list could be much simpler, but then so would the scope of the company&#x27;s offerings. So AI would offer enough accountability to replace all of this? Agents juggling million token contexts? It&#x27;s kind of hard to wrap my head around.
    • nine_k5 hours ago
      Agents run tools, too. You can make an LLM count by the means of language processing, but it&#x27;s much more efficient to let it run a Python script.<p>By the same <i>token</i>, it&#x27;s more efficient to let an LLM operate all these tools (and more) than to force an LLM to keep all of that on its &quot;mind&quot;, that is, context.
      • kaycey20224 hours ago
        Agents are just not deterministic. You will see wierd things like in one thread an agent simply says it cannot access a CLI tool for whatever reason. You inspect the call, it worked just fine in another thread. You eventually shrug your shoulders and close the thread, pick up from another instead of having the agent flail around some obvious BS for hours and hours.<p>Just because they can run tools, doesn&#x27;t mean they run them reliably. Running tools is not a be all and end all of the problem.<p>Amdahl&#x27;s law is still in play when it comes to agents orchestrating entire business processes on their own.
  • bigiain1 hour ago
    I initially read this wrong as &quot;Almost every infrastructure decision I make I regret after 4 years&quot;, and I nodded my head in agreement.<p>I&#x27;ve been working mostly at startups most of my career (for Sydney Australia values of &quot;start up&quot; which mostly means &quot;small and new or new-ish business using technology&quot;, not the Silicon Valley VC money powered moonshot crapshoot meaning). Two of those roles (including the one I&#x27;m in now) have been longer that a decade.<p>And it&#x27;s pretty much true that almost all infrastructure (and architecture) decisions are things that 4-5 years later become regrets. Some standouts from 30 years:<p>I didn&#x27;t choose Macromind&#x2F;Macromedia Director in &#x27;94 but that was someone else&#x27;s decision I regretted 5 years later.<p>I shouldn&#x27;t have chosen to run a web business on ISP web hosting and Perl4 in &#x27;95 (yay &#x2F;cgi-bin).<p>I shouldn&#x27;t have chosen globally colocated desktop pc linux machines and MySQL in &#x27;98&#x2F;99 (although I got a lot of work trips and airline miles out of that).<p>I shouldn&#x27;t have chosen Python2 in 2007, or even worse Angular2 in 2011.<p>I _probably_ shouldn&#x27;t have chosen Arch Linux (and a custom&#x2F;bastardised Pacman repo) for a hardware startup in 2013.<p>I didn&#x27;t choose Groovy on Grails in 2014 but I regretted being recruited into being responsible for it by 2018 or so.<p>I shouldn&#x27;t have chosen Java&#x2F;MySQL in 2019 (or at least I should have kept a much tighter leash on the backend team and their enterprise architecture astronaut).<p>The other perspective on all those decisions though, each of them allowed a business to do the things they needed to take money off customers (I know I know, that&#x27;s not the VC startup way...) Although I regretted each of those later, even in retrospect I think I made decent pragmatic choices at the time. And at this stage of my career I&#x27;ve become happy enough knowing that every decision is probably going to have regrets over a 4 or 5 year timeframe, but that most projects never last long enough for you to get there - either the business doesn&#x27;t pass out and closes the project down, or a major ground up rewrite happens for reasons often unrelated to 5 year old infrastructure or architecture choices.
  • jmward013 hours ago
    You will never agree 100% with someone else when it comes to decisions like this, but clearly there is a lot of history behind these decisions and they are a great starting point for conversations internally I think.
  • jbmsf4 hours ago
    Thanks. I&#x27;ve been meaning to write one of these for a long time, but you went into detail in a very effective, organized way.<p>I also reached a lot of similar decisions and challenges, even where we differ (ECS vs EKS) I completely understand your conclusions.
  • robszumski7 hours ago
    Thanks for sharing, really helpful to see your thinking. I haven&#x27;t fully embraced FaaS myself but never regretted it either.<p>Curious to hear more about Renovate vs Dependabot. Is it complicated to debug _why_ it&#x27;s making a choice to upgrade from A to B? Working on a tool to do app-specific breaking change analysis so winning trust and being transparent about what is happening is top of mind.<p>When were you using quay.io? In the pre-CoreOS years, CoreOS years (2014-2018), or the Red Hat years?
  • gib44434 minutes ago
    Infra guys doing DBA is a nightmare in my experience (usually clueless and it gets loved less than more sexy parts of infra). Devs too<p>Hire a DBA ASAP. They need to reign in also the laziness of all other developers when designing and interacting with the DB. The horrors a dev can create in the DB can take years to undo
  • gnarbarian2 hours ago
    given enough time you may regret every single one of them.
  • jrjeksjd8d7 hours ago
    I see you regret Datadog but there&#x27;s no alternative - did you end up homebrewing metrics, or are you just living with their insane pricing model? In my experience they suck but not enough to leave.
    • stackskipton6 hours ago
      Not author but Prometheus is perfectly acceptable alternative if you don&#x27;t want to go whole Otel route.
      • t-writescode4 hours ago
        Prometheus + … what? Datadog is a visualization platform, prometheus is a data gathering infrastructure.
    • jpgvm3 hours ago
      VictoriaMetrics stack. Better, cheaper, faster queries, more k8s native, etc. Easy to run with budget saved from not being on Datadog + attracts smart and observability minded engineers to your team.
    • velocity323032 minutes ago
      LGTM stack?
    • lelandbatey4 hours ago
      Currently going through leaving DD at work. Many potential options, many companies trying to break in. The one that calls to me spiritually is: throw it all in Clickhouse (hosted Clickhouse is shockingly cheap) with a hosted HyperDX (logs and metrics UI) instance in front of it. HyperDX has its issues, but it&#x27;s shocking how cheap it is to toss a couple hundred TB of logs&#x2F;metrics into Clickhouse per month (compared to the kings ransom DD charges). And you can just query the raw rows, which really comes in handy for understanding some in-the-weeds metrics questions.
  • dangoodmanUT4 hours ago
    &gt; There are no great FaaS options for running GPU workloads, which is why we could never go fully FaaS.<p>modal.com???
  • mwcampbell6 hours ago
    I disagree on Kubernetes versus ECS. For me, the reasons to use ECS are not having to pay for a control plane, and not having to keep up with the Kubernetes upgrade treadmill.
    • x3n0ph3n34 hours ago
      This. k8s is primarily resume driven development in most software shops. Hardly any product or service really needs its complexity.
      • karolist1 hour ago
        To replace Kubernetes, you inevitably have to reinvent Kubernetes. By the time you build in canaries, blue&#x2F;green deployments, and rolling updates with precise availability controls, you&#x27;ve just built a bespoke version of k8s. I&#x27;ll take the industry standard over a homegrown orchestration tool any day.
      • jauntywundrkind2 hours ago
        The amount of tools and systems here that work because of k8s is signficiant. K8s is a control plane and an integration plane.<p>I wish luck to the imo fools chasing the &quot;you may not need it&quot; logic. The vacuum that attitude creates in its wake demands many many many complex &amp; gnarly home-cooked solutions.<p>Can you? Sure, absolutely! But you are doing that on your own, glueing it all together every step of the way. There&#x27;s no other glue layer anywhere remotely as integrative, that can universally bind to so much. The value is astronomical, imho.
  • weedhopper7 hours ago
    Great post. I even wouldn’t mind more details, especially about datadog, or as others pointed out, the kind of contradiction with aws support.
  • zem7 hours ago
    I would love to read more about the pros and cons of using a single database, if anyone has pointers to articles
    • fidgetstick4 hours ago
      Martin Fowler:<p><a href="https:&#x2F;&#x2F;www.enterpriseintegrationpatterns.com&#x2F;patterns&#x2F;messaging&#x2F;SharedDataBaseIntegration.html" rel="nofollow">https:&#x2F;&#x2F;www.enterpriseintegrationpatterns.com&#x2F;patterns&#x2F;messa...</a>
    • rawgabbit4 hours ago
      The things that impact the most are locking&#x2F;blocking, data duplication (ghosting due to race conditions), and poor performance. The best advice is RTFM the documentation for your database; yes, it is a lot to digest that is why DBAs exist. Most of these foot guns are due to poor architecture. You have to imagine multiple users&#x2F;processes are literally trying to write to the same record at the same time; when you realize this, a single table with simple key-values is completely inadequate.
    • stackskipton6 hours ago
      SRE here who has dealt with this before.<p>Everything in article is excellent point but other big point is schema changes become extremely difficult because you have unknown applications possibly relying on that schema.<p>It&#x27;s also at certain point, the database becomes absolutely massive and you will need teams of DBAs care and feeding it.
      • x3n0ph3n34 hours ago
        Not only will you need a team of DBAs caring for it, but you&#x27;ll never be able to hire them.
        • hobs3 hours ago
          No organization I have seen prioritizes a DBA&#x27;s requirements, concerns, or approach. They certainly don&#x27;t pay them enough to deal with that bullshit, so I was out.
    • sgarland4 hours ago
      Pro: every team probably needs user information, so don’t duplicate it in weird ways with uncertain consistency.<p>Con: it’s sadly likely that no one on your staff knows a damn thing about how an RDBMS works, and is seemingly incapable of reading documentation, so you’re gonna run into footguns faster. To be fair, this will also happen with isolated DBs, and will then be much more effort to rein in.
    • brandmeyer3 hours ago
      They are very similar to the pros and cons of having a monorepo. It encourages information sharing and cross-linkage between related teams. This is simultaneously its biggest pro and its biggest con.
  • ink_135 hours ago
    (2024)<p>Just FYI article is two years old
  • 0xbadcafebee6 hours ago
    Using GCP gives me the same feeling as vibe-coded source code. Technically works but deeply unsettling. Unless GCP is somehow saving you boatloads of cash, AWS is much better.<p>RDS is a very quick way to expand your bill, followed by EC2, followed by S3. RDS for production is great, but you should avoid the bizarre HN trope of &quot;Postgres for everything&quot; with RDS. It makes your database unnecessarily larger which expands your bill. Use it strategically and your cost will remain low while also being very stable and easy to manage. You may still end up DIYing backups. Aurora Serverless v2 is another useful way to reduce bill. If you want to do custom fancy SQL&#x2F;host&#x2F;volume things, RDS Custom may enable it.<p>I&#x27;m starting to think Elasticache is a code smell. I see teams adopt it when they literally don&#x27;t know why they&#x27;re using it. Similar to the &quot;Postgres for everything&quot; people, they&#x27;re often wasteful, causing extra cost and introducing more complexity for no benefit. If you decide to use Elasticache, Valkey Serverless is the cheapest option.<p>Always use ECR in AWS. Even if you have some enterprise artifact manager with container support... run your prod container pulls with ECR. Do not enable container scanning, it just increases your bill, nobody ever looks at the scan results.<p>I no longer endorse using GitHub Actions except for non-business-critical stuff. I was bullish early on with their Actions ecosystem, but the whole thing is a mess now, from the UX to the docs to the features and stability. I use it for my OSS projects but that&#x27;s it. Most managed CI&#x2F;CD sucks. Use Drone.io for free if you&#x27;re small, use WoodpeckerCI otherwise.<p>Buying an IP block is a complicated and fraught thing (it may not seem like it, but eventually it is). Buy reserved IPs from AWS, keep them as long as you want, you never have to deal with strange outages from an RIR not getting the correct contact updated in the correct amount of time or some foolishness.<p>He mentions K8s, and it really is useful, but as a staging and dev environment. For production you run into the risk of insane complexity exploding, and the constant death march of upgrades and compatibility issues from the 12 month EOL; I would not recommend even managed K8s for prod. But for staging&#x2F;dev, it&#x27;s fantastic. Give your devs their own namespace (or virtual cluster, ideally) and they can go hog wild deploying infrastructure and testing apps in a protected private environment. You can spin up and down things much easier than typical AWS infra (no need for terraform, just use Helm) with less risk, and with horizontal autoscaling that means it&#x27;s easier to save money. Compare to the difficulty of least-privilege in AWS IAM to allow experiments; you&#x27;re constantly risking blowing up real infra.<p>Helm is a perfectly acceptable way to quickly install K8s components, big libraries of apps out there on <a href="https:&#x2F;&#x2F;artifacthub.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;artifacthub.io&#x2F;</a>. A big advantage is its atomic rollouts which makes simple deploy&#x2F;rollback a breeze. But ExternalSecrets is one of the most over-complicated annoying garbage projects I&#x27;ve ever dealt with. It&#x27;s useful, but I will fight hard to avoid it in future. There are multiple ways to use it with arcane syntax, yet it actually lacks some useful functionality. I spent way too much time trying to get it to do some basic things, and troubleshooting it is difficult. Beware.<p>I don&#x27;t see a lot of architectural advice, which is strange. You should start your startup out using all the AWS well-architected framework that could possibly apply to your current startup. That means things like 1) multiple AWS accounts (the more the better) with a management account &amp; security account, 2) identity center SSO, no IAM users for humans, 3) reserved CIDRs for VPCs, 4) transit gateway between accounts, 5) hard-split between stage &amp; prod, 6) openvpn or wireguard proxy on each VPC to get into private networks, 7) tagging and naming standards and everything you build gets the tags, 8) put in management account policies and cloudtrail to enforce limitations on all the accounts, to do things like add default protections and auditing. If you&#x27;re thinking &quot;well my startup doesn&#x27;t need that&quot; - only if your startup <i>dies</i> will you not need it, and it will be an absolute nightmare to do it later (ever changed the wheels on a moving bus before?). And if you plan on working for more than one startup in your life, doing it once early on means it&#x27;s easier the second time. Finally if you think &quot;well that will take too long!&quot;, we have AI now, just ask it to do the thing and it&#x27;ll do it for you.
    • zbentley4 hours ago
      &gt; Do not enable container scanning, it just increases your bill, nobody ever looks at the scan results.<p>God I wish that were true. Unfortunately, ECR scanning is often cheaper and easier to start consuming than buying $giant_enterprise_scanner_du_jour, and plenty of people consider free&#x2F;OSS scanners insufficient.<p>Stupid self inflicted problems to be sure, but far from “nobody uses ECR scanning”.
  • themafia2 hours ago
    &gt; “This EC2 instance type running 24&#x2F;7 at full load is way less expensive than a Lambda running”.<p>For the same amount of memory they should cost _nearly_ identical. Run the numbers. They&#x27;re not significantly different services. Aside from this you do NOT pay for IPv4 when using Lambda, you do on EC2, and so Lambda is almost always less expensive.