<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gonzalo Gjuka</title>
    <description>The latest articles on DEV Community by Gonzalo Gjuka (@gonzalogjuka).</description>
    <link>https://dev.to/gonzalogjuka</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4203133%2F9f9124f3-7c93-425f-a6dc-34fc421c7b7b.jpg</url>
      <title>DEV Community: Gonzalo Gjuka</title>
      <link>https://dev.to/gonzalogjuka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gonzalogjuka"/>
    <language>en</language>
    <item>
      <title>Shutting down dev and QA after hours: how much you actually save</title>
      <dc:creator>Gonzalo Gjuka</dc:creator>
      <pubDate>Thu, 22 Oct 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/gonzalogjuka/apagar-dev-y-qa-fuera-de-horario-cuanto-se-ahorra-de-verdad-16ah</link>
      <guid>https://dev.to/gonzalogjuka/apagar-dev-y-qa-fuera-de-horario-cuanto-se-ahorra-de-verdad-16ah</guid>
      <description>&lt;p&gt;The question always arrives the same way: "if we shut dev down at night, how much does the invoice drop?". The short answer is less than the compute math says and more than most people expect. The long answer has a formula and a list of things that keep billing with everything turned off.&lt;/p&gt;

&lt;h2&gt;
  
  
  The math: 108 of 168 hours
&lt;/h2&gt;

&lt;p&gt;A week has 168 hours. If the team uses the environment from 8am to 8pm, Monday to Friday, the VM is in use for 60 hours (12 × 5). The other 108 are nights and weekend: five 12-hour nights plus the 48 hours of Saturday and Sunday. 108 / 168 = 64%.&lt;/p&gt;

&lt;p&gt;For any window, with N hours off every weekday night:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;share off = (48 + 5 × N) / 168
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;N = 8 (on 16 hours a day): 88 / 168 = 52%&lt;/li&gt;
&lt;li&gt;N = 10: 98 / 168 = 58%&lt;/li&gt;
&lt;li&gt;N = 12: 108 / 168 = 64%&lt;/li&gt;
&lt;li&gt;N = 14: 118 / 168 = 70%&lt;/li&gt;
&lt;li&gt;N = 16 (on 8 hours a day): 128 / 168 = 76%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As an example: a VM billed at USD 0.10 per hour costs USD 73 per month running all the time (730 hours). With N = 12 it stops billing 64% of those hours: USD 46.93 less per month. The &lt;a href="https://controlcloud.dev/en/calculadora" rel="noopener noreferrer"&gt;savings calculator&lt;/a&gt; does this same math with your number of VMs, their cost and your schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does not drop when you turn the VMs off
&lt;/h2&gt;

&lt;p&gt;The 64% applies to the compute of the VM, not to the invoice of the environment. A dev environment has more pieces, and several keep billing with the VMs off:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Disks. They are billed per provisioned GB, with the VM on or off. The disk of a stopped VM keeps billing in full.&lt;/li&gt;
&lt;li&gt;Managed databases. RDS, Azure SQL or Cloud SQL have their own lifecycle: turning off the VMs that use them does not stop them. On AWS, a stopped RDS instance starts again on its own after seven days.&lt;/li&gt;
&lt;li&gt;Load balancers and NAT gateways. They are billed per hour of existence, plus processed traffic. With no VMs behind them they still bill the hour.&lt;/li&gt;
&lt;li&gt;Public IPs. On AWS every public IPv4 address costs USD 0.005 per hour, attached or not, so the Elastic IP of a stopped instance keeps billing. The details are in &lt;a href="https://controlcloud.dev/en/blog/ips-publicas-que-cobran-aws-gcp" rel="noopener noreferrer"&gt;unused public IPs&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Committed capacity. A VM covered by a reservation or a usage commitment is paid for regardless: turning it off returns nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One Azure detail: a VM shut down from inside the operating system still holds its hardware and bills compute. It stops billing only once it is deallocated, which is what the Stop button in the portal or &lt;code&gt;az vm deallocate&lt;/code&gt; does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three lists, not a percentage
&lt;/h2&gt;

&lt;p&gt;That is why the Control Cloud cost advisor does not apply a percentage to the invoice total. It keeps three lists apart, because each one carries a different certainty:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unused: paying for nothing. Proven orphaned resources that bill, such as disks with no VM, unassociated IPs or interfaces with no owner. The saving is their full cost. Anything that could not be verified stays out.&lt;/li&gt;
&lt;li&gt;Disks of stopped VMs. The VM bills no compute, but its disk does. If the VM is not coming back, a snapshot and deleting the disk end that charge.&lt;/li&gt;
&lt;li&gt;Off-hours shutdown. Running VMs billed by the hour. The saving of each one is its monthly cost times the share off, (48 + 5 × N) / 168, with N chosen on the page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each resource appears in one list only, so no saving is counted twice. And the number at the top, the possible saving, is the exact sum of the rows below it: every amount is an inventory row, at the same rates as the rest of the page. If a figure cannot be traced back to a resource, it is not there.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A saving you cannot point to in an inventory row is a marketing estimate, not an operations number.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Before the first shutdown
&lt;/h2&gt;

&lt;p&gt;The math says how much can be cut; what is left is deciding who turns off what, and keeping a record. With cron scripts spread around, that turns opaque quickly, and it is the subject of &lt;a href="https://controlcloud.dev/en/blog/ventanas-operativas-non-prod-audit-log-vs-cron" rel="noopener noreferrer"&gt;operating windows in non-prod&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The order that works: first the paying-for-nothing list, then the disks of stopped VMs, and only then the schedule. The first two cut the full cost of each resource without changing anybody's working hours; the third needs the window agreed with the team that uses the environment.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>finops</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
