<story><title>Does your startup need complex cloud infrastructure?</title><url>https://www.hadijaveed.me/2024/09/08/does-your-startup-really-need-complex-cloud-infrastructure/</url></story><parent_chain><item><author>kbolino</author><text>Leaning into LTS is nice &lt;i&gt;until&lt;/i&gt; you near EOL and have to migrate everything in an often Herculean effort to work with the next LTS release.</text></item><item><author>ghomem</author><text>Well that&amp;#x27;s exactly the point! Creating complex cloud resources with, for instance, Terraform, is less reproducible than a shell script on an LTS system like Ubuntu or RHEL - that&amp;#x27;s because the cloud provider interfaces drifts and from time to time stops accepting the terraform manifests that previously worked. And to fix it, you have to interrupt your normal work for yet another unplanned intervention in the terraform code - this happened to my teams several times.&lt;p&gt;This does not happen with Puppet + Linux, because LTS distributions have a long release cycle where compatibility is not broken.&lt;p&gt;I tried to explain this topic in the article linked above. Not sure how far I succeeded.</text></item><item><author>hliyan</author><text>I started my career in a world where we did everything using shell scripts running directly on bare metal servers, usually running Solaris, and later SuSe or RedHat. I never understood the &amp;quot;how would you reproduce your setup without Docker (or X, where X is some other technology)&amp;quot;. The scripts were deterministic. The dependency versions were locked. The configurations were identical. The input arguments were identical. The order of execution was identical. It all ran on a deterministic computational device. How could it &lt;i&gt;not&lt;/i&gt; be reproducible?</text></item><item><author>ghomem</author><text>I went through sweat and tears with this on different projects. People wanting to be cool because they use hype-train-tech ending up doing things of unbelievably bad quality because &amp;quot;hey, we are not that many in the team&amp;quot; but &amp;quot;hey, we need infinite scalability&amp;quot;. Teams immature to the point of not understanding what LTS means have decided that they needed Kubernetes because yes. I could go on.&lt;p&gt;I currently have distilled, compact Puppet code to create a hardened VM of any size on any provider that can run one more more Docker services or run directly a python backend, or serve static files. With this I create a service on a Hetzner VM in 5 minutes whether the VM has 2 cores or 48 cores and control the configuration in source controlled manifests while monitoring configuration compliance with a custom Naemon plugin. A perfectly reproducible process. The startups kids are meanwhile doing snowflakes in the cloud spending many KEUR per month to have something that is worse than what devops pioneers were able to do in 2017. And the stakeholders are paying for this ship.&lt;p&gt;I wrote a more structured opinion piece about this, called The Emperor&amp;#x27;s New clouds:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;logical.li&amp;#x2F;blog&amp;#x2F;emperors-new-clouds&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;logical.li&amp;#x2F;blog&amp;#x2F;emperors-new-clouds&amp;#x2F;&lt;/a&gt;</text></item></parent_chain><comment><author>ghomem</author><text>Like 12 years of life cycle is not enough for you to plan a transition?&lt;p&gt;You &lt;i&gt;can&lt;/i&gt; use the entire life cycle but not one is forcing you to. You can update from one LTS to another every 2 years, or 4 years, or 5 years... you decide.</text></comment>
<story><title>Does your startup need complex cloud infrastructure?</title><url>https://www.hadijaveed.me/2024/09/08/does-your-startup-really-need-complex-cloud-infrastructure/</url></story><parent_chain><item><author>kbolino</author><text>Leaning into LTS is nice &lt;i&gt;until&lt;/i&gt; you near EOL and have to migrate everything in an often Herculean effort to work with the next LTS release.</text></item><item><author>ghomem</author><text>Well that&amp;#x27;s exactly the point! Creating complex cloud resources with, for instance, Terraform, is less reproducible than a shell script on an LTS system like Ubuntu or RHEL - that&amp;#x27;s because the cloud provider interfaces drifts and from time to time stops accepting the terraform manifests that previously worked. And to fix it, you have to interrupt your normal work for yet another unplanned intervention in the terraform code - this happened to my teams several times.&lt;p&gt;This does not happen with Puppet + Linux, because LTS distributions have a long release cycle where compatibility is not broken.&lt;p&gt;I tried to explain this topic in the article linked above. Not sure how far I succeeded.</text></item><item><author>hliyan</author><text>I started my career in a world where we did everything using shell scripts running directly on bare metal servers, usually running Solaris, and later SuSe or RedHat. I never understood the &amp;quot;how would you reproduce your setup without Docker (or X, where X is some other technology)&amp;quot;. The scripts were deterministic. The dependency versions were locked. The configurations were identical. The input arguments were identical. The order of execution was identical. It all ran on a deterministic computational device. How could it &lt;i&gt;not&lt;/i&gt; be reproducible?</text></item><item><author>ghomem</author><text>I went through sweat and tears with this on different projects. People wanting to be cool because they use hype-train-tech ending up doing things of unbelievably bad quality because &amp;quot;hey, we are not that many in the team&amp;quot; but &amp;quot;hey, we need infinite scalability&amp;quot;. Teams immature to the point of not understanding what LTS means have decided that they needed Kubernetes because yes. I could go on.&lt;p&gt;I currently have distilled, compact Puppet code to create a hardened VM of any size on any provider that can run one more more Docker services or run directly a python backend, or serve static files. With this I create a service on a Hetzner VM in 5 minutes whether the VM has 2 cores or 48 cores and control the configuration in source controlled manifests while monitoring configuration compliance with a custom Naemon plugin. A perfectly reproducible process. The startups kids are meanwhile doing snowflakes in the cloud spending many KEUR per month to have something that is worse than what devops pioneers were able to do in 2017. And the stakeholders are paying for this ship.&lt;p&gt;I wrote a more structured opinion piece about this, called The Emperor&amp;#x27;s New clouds:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;logical.li&amp;#x2F;blog&amp;#x2F;emperors-new-clouds&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;logical.li&amp;#x2F;blog&amp;#x2F;emperors-new-clouds&amp;#x2F;&lt;/a&gt;</text></item></parent_chain><comment><author>toast0</author><text>It&amp;#x27;s a tradeoff. Doing a big effort once every 4 or 5 years, vs a hopefully smaller effort every year. Sometimes the intermediate smaller steps help you move forward, sometimes it just means more migrations. Sometimes the software&amp;#x2F;hardware you need means you can&amp;#x27;t use a LTS OS at all.&lt;p&gt;If possible, it&amp;#x27;s nicer to pick established, mature software for as much of your stack as you can, so that there&amp;#x27;s less of a difference in APIs over longer time frames. But it&amp;#x27;s not always possible.</text></comment>