<?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: Lucas Bennett</title>
    <description>The latest articles on DEV Community by Lucas Bennett (@packetsnifferben).</description>
    <link>https://dev.to/packetsnifferben</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%2F4053509%2F731bab6e-e1e9-4731-a62d-96e43ce1e534.jpg</url>
      <title>DEV Community: Lucas Bennett</title>
      <link>https://dev.to/packetsnifferben</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/packetsnifferben"/>
    <language>en</language>
    <item>
      <title>Why I’m Documenting My Google Cloud Journey (And What I’m Learning</title>
      <dc:creator>Lucas Bennett</dc:creator>
      <pubDate>Thu, 30 Jul 2026 03:10:47 +0000</pubDate>
      <link>https://dev.to/packetsnifferben/why-im-documenting-my-google-cloud-journey-and-what-im-learning-268i</link>
      <guid>https://dev.to/packetsnifferben/why-im-documenting-my-google-cloud-journey-and-what-im-learning-268i</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;When I first started learning Google Cloud Platform (GCP), I quickly realized that memorizing high-level service names wasn’t enough. To truly master cloud architecture, you need to understand the underlying mechanics, practical trade-offs, and common architectural traps.&lt;/p&gt;

&lt;p&gt;Instead of sharing just a high-level study roadmap, I want to dive straight into &lt;strong&gt;3 key structural lessons and practical takeaways&lt;/strong&gt; I’ve compiled during my GCP journey so far.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Identity &amp;amp; Access Management (IAM): The Hierarchy &amp;amp; Inheritance Trap
&lt;/h2&gt;

&lt;p&gt;One of the most crucial foundational concepts in GCP is how resource hierarchy affects permissions.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Core Structure
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Organization&lt;/code&gt; ➔ &lt;code&gt;Folders&lt;/code&gt; ➔ &lt;code&gt;Projects&lt;/code&gt; ➔ &lt;code&gt;Resources&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 Crucial Takeaways &amp;amp; Practical Pitfalls:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Permissions Are Inherited Downward&lt;/strong&gt;: If you assign a user the &lt;code&gt;Roles/Viewer&lt;/code&gt; role at the Folder level, they automatically inherit Read access to &lt;strong&gt;all&lt;/strong&gt; Projects inside that folder. You &lt;strong&gt;cannot deny&lt;/strong&gt; an inherited permission at a lower level.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primitive Roles vs. Predefined Roles&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primitive Roles&lt;/strong&gt; (&lt;code&gt;Owner&lt;/code&gt;, &lt;code&gt;Editor&lt;/code&gt;, &lt;code&gt;Viewer&lt;/code&gt;) are broad and dangerous for production. Granting &lt;code&gt;Editor&lt;/code&gt; at the Project level gives write access to almost &lt;em&gt;every&lt;/em&gt; service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Practice&lt;/strong&gt;: Always use &lt;strong&gt;Predefined Roles&lt;/strong&gt; (e.g., &lt;code&gt;roles/storage.objectViewer&lt;/code&gt;) or &lt;strong&gt;Custom Roles&lt;/strong&gt; following the Principle of Least Privilege (PoLP).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Service Accounts are Both Identities AND Resources&lt;/strong&gt;: A Service Account can act as an identity (assigned permissions to run VMs) AND as a resource (where users need &lt;code&gt;iam.serviceAccountUser&lt;/code&gt; permissions to act as that service account).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. Cloud Storage (GCS): Choosing the Right Storage Class
&lt;/h2&gt;

&lt;p&gt;Google Cloud Storage (GCS) is simple on the surface, but choosing the wrong storage class or lifecycle policy can dramatically impact cost and latency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Decision Framework:
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Storage Class&lt;/th&gt;
&lt;th&gt;Minimum Storage Duration&lt;/th&gt;
&lt;th&gt;Typical Use Case&lt;/th&gt;
&lt;th&gt;Access Frequency&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Standard&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Hot data, active website assets&lt;/td&gt;
&lt;td&gt;Multiple times a day&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Nearline&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;30 days&lt;/td&gt;
&lt;td&gt;Monthly backups, infrequent reports&lt;/td&gt;
&lt;td&gt;Less than once a month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Coldline&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;90 days&lt;/td&gt;
&lt;td&gt;Disaster recovery, quarterly archives&lt;/td&gt;
&lt;td&gt;Less than once a year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Archive&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;365 days&lt;/td&gt;
&lt;td&gt;Regulatory compliance, long-term logs&lt;/td&gt;
&lt;td&gt;Rare (highest retrieval cost)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  💡 Practical Cost Traps:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Early Deletion Fees&lt;/strong&gt;: If you delete an object in &lt;strong&gt;Coldline&lt;/strong&gt; storage after 10 days, GCP will still charge you for the remaining 80 days of storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lifecycle Rules for Cost Savings&lt;/strong&gt;: Automate storage tiering using Object Lifecycle Management. For example: Set a rule to transition logs from &lt;code&gt;Standard&lt;/code&gt; to &lt;code&gt;Nearline&lt;/code&gt; after 30 days, and delete them after 360 days.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. BigQuery: Architecture &amp;amp; Cost-Optimization Rules
&lt;/h2&gt;

&lt;p&gt;BigQuery is Google's serverless data warehouse. Because compute and storage are decoupled, it scales effortlessly—but inefficient SQL queries can quickly drain your budget.&lt;/p&gt;

&lt;h3&gt;
  
  
  How BigQuery Charges You:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;On-Demand Pricing&lt;/strong&gt;: You are charged based on the &lt;strong&gt;number of bytes scanned&lt;/strong&gt; by your query (typically $6 per TB scanned).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💡 3 Rules to Prevent Massive BigQuery Bills:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Never Run &lt;code&gt;SELECT *&lt;/code&gt;&lt;/strong&gt;: BigQuery is a columnar database. &lt;code&gt;SELECT *&lt;/code&gt; forces the engine to scan every single column in the table, drastically increasing query cost. Only select the explicit columns you need.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Partitioning and Clustering&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Partitioning&lt;/strong&gt;: Divide large tables by date or integer ranges (e.g., partition by &lt;code&gt;event_timestamp&lt;/code&gt;). This ensures queries only scan data within the specified date range.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clustering&lt;/strong&gt;: Sort data within partitions based on high-cardinality columns (e.g., &lt;code&gt;user_id&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preview Data for Free&lt;/strong&gt;: Use the &lt;strong&gt;Preview&lt;/strong&gt; tab in the BigQuery console or table metadata to inspect table content without incurring query costs.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🚀 Summary &amp;amp; What's Next
&lt;/h2&gt;

&lt;p&gt;Understanding these nuanced behaviors—how IAM permission inheritance works, how early deletion penalty fees apply in GCS, and how columnar scanning impacts BigQuery pricing—is what separates a theoretical learner from a practical cloud architect.&lt;/p&gt;

&lt;p&gt;This is my first deep-dive post here on DEV.to! I will continue publishing technical breakdowns and architectural notes as I progress. &lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>cloudcomputing</category>
      <category>gcp</category>
    </item>
  </channel>
</rss>
