<?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: Boris Teplitsky</title>
    <description>The latest articles on DEV Community by Boris Teplitsky (@boristep).</description>
    <link>https://dev.to/boristep</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1979094%2Fb185a14c-d2fc-44fe-b15e-8aa70fd2418f.png</url>
      <title>DEV Community: Boris Teplitsky</title>
      <link>https://dev.to/boristep</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/boristep"/>
    <language>en</language>
    <item>
      <title>Setting Up a GCP Landing Zone for Organizations with Strict Regulatory Requirements</title>
      <dc:creator>Boris Teplitsky</dc:creator>
      <pubDate>Mon, 20 Apr 2026 07:46:06 +0000</pubDate>
      <link>https://dev.to/boristep/setting-up-a-gcp-landing-zone-for-organizations-with-strict-regulatory-requirements-3p59</link>
      <guid>https://dev.to/boristep/setting-up-a-gcp-landing-zone-for-organizations-with-strict-regulatory-requirements-3p59</guid>
      <description>&lt;p&gt;Setting up a GCP Landing Zone for organizations with strict compliance requirements is not a trivial task. Cloud Foundation Fabric with a suitable template can significantly simplify the work — but what if no appropriate template exists, or your specific requirements go beyond what the templates cover? In this article, we explain how a tool we built, Merlin Studio, can help set up a landing zone under complex compliance requirements. We use a US healthcare provider as an example, walking through a landing zone aligned with the HIPAA compliance framework. The same approach applies to other regulations in the US and EU.&lt;/p&gt;

&lt;p&gt;The setup process with Merlin Studio consists of three parts:&lt;br&gt;
&lt;strong&gt;Discovery&lt;/strong&gt; — defining business requirements and conditions&lt;br&gt;
&lt;strong&gt;Configuration&lt;/strong&gt; — setting parameters for all landing zone sections&lt;br&gt;
&lt;strong&gt;Generation&lt;/strong&gt; — producing a package of Cloud Foundation Fabric YAML files, scorecards, documentation, and guides.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzmk4zzcyzobv18fse0xt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzmk4zzcyzobv18fse0xt.png" alt="info" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you want to try Merlin on your own landing zone, drop us an email at &lt;a href="mailto:intentarcha@gmail.com"&gt;intentarcha@gmail.com&lt;/a&gt; and we’ll set up your access — it’s free.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Discovery
&lt;/h2&gt;

&lt;p&gt;The goal of this stage is to determine who and what we are setting up. During Discovery, the user fills out 7 forms describing the company and project's business environment. The forms cover general information about the organization and specific GCP implementation conditions: deployment strategy (GCP-only, hybrid with on-premises, or multi-cloud), workload types, company size, timeline, and budget expectations. A critical section is compliance — which regulatory frameworks must be implemented.&lt;br&gt;
In our example, we use a US healthcare provider that needs to connect GCP to an on-premises data center via Partner Interconnect. The required compliance frameworks are HIPAA, SOC 2, and CIS Benchmarks. Infrastructure requirements include multi-region deployment (us-east1 as primary, us-west1 as secondary) with warm standby disaster recovery.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F144aj5yedvugmqdyhdzu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F144aj5yedvugmqdyhdzu.png" alt="sc1" width="800" height="755"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuam1gc8csmzuknvgvd32.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuam1gc8csmzuknvgvd32.png" alt="sc2" width="800" height="737"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6w7s4iozerm1fttuk41y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6w7s4iozerm1fttuk41y.png" alt="sc3" width="800" height="688"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8v8eblijgcfce7abguwc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8v8eblijgcfce7abguwc.png" alt="sc4" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Based on the information provided during Discovery, Merlin sets the default landing zone configuration parameters, determines the profile complexity, identifies which configuration sections are required, and recommends a configuration mode: Express (accept best-practice defaults), Guided (review recommendations, customize as needed), or Expert (full control over all options). The user can change the configuration mode at any time, but to change the profile, they must return to the Discovery stage.&lt;br&gt;
In our example, Merlin recommends the Standard profile and activates 17 configuration sections. The user selects Guided mode.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbi495moqrdu5y3z481v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbi495moqrdu5y3z481v.png" alt="sc5" width="800" height="834"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foofqumknty4a5jg1433q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foofqumknty4a5jg1433q.png" alt="sc6" width="800" height="683"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

&lt;p&gt;Configuration is organized into sections, each covering a specific domain — IAM, Networking, Security, and others. In our example, Merlin recommended 17 sections. A sidebar allows free navigation between sections in any order — completed sections are marked, so the user always knows where they are. This allows focusing on specific sections and leaving others at their default values.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1533kvq6k465an7nx26b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1533kvq6k465an7nx26b.png" alt="sc7" width="774" height="648"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe158m7mjt5txiwrilfni.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe158m7mjt5txiwrilfni.png" alt="sc8" width="800" height="418"&gt;&lt;/a&gt;&lt;br&gt;
In order to set up a landing zone, it is necessary to define hundreds of parameters. Merlin makes this task as straightforward as possible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Most fields have default values, set based on data collected during Discovery and the selected compliance framework requirements.&lt;/li&gt;
&lt;li&gt;Almost every field has a help panel with a short explanation, a link to the relevant Google documentation, and an optional LLM prompt.&lt;/li&gt;
&lt;li&gt;Fields required by compliance frameworks are marked with a badge — red for mandatory, orange for recommended.&lt;/li&gt;
&lt;li&gt;Merlin validates field values in real time and warns about errors and invalid inputs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The final step of the Configuration stage is generating a specification. Clicking the "Generate Spec" button triggers cross-section validation and produces a structured JSON document summarizing all configuration parameters. The results screen shows two things: any unmet compliance requirements with direct links to the relevant configuration sections, and the full specification in a readable format.&lt;br&gt;
The compliance posture summary is particularly useful — it shows exactly how many requirements are met per framework (in our example: SOC 2 12/13, HIPAA 28/29, CIS Benchmarks 16/17), lists each unmet requirement with the specific control reference, and provides a direct link to the configuration section where it can be fixed. No cross-referencing external documentation — everything needed to reach full compliance is on one screen.&lt;br&gt;
If the user is satisfied with the configuration, they proceed to the next stage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfgatm2odyulcd0bc306.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfgatm2odyulcd0bc306.png" alt="sc11" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Generation
&lt;/h2&gt;

&lt;p&gt;In the final stage, Merlin produces artifacts for setting up the landing zone with minimal effort compared to starting from scratch. All generated artifacts are divided into four categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scorecards — Merlin evaluates the configuration from architecture and security perspectives and provides a score with an explanation of any issues found. In our example, the security scan scored 100/100 (Checkov) and the architecture scorecard 98/100 — Overall Grade A. This is shift-left in practice: issues are caught at design time, before deployment, without waiting for findings from Security Command Center or Wiz.&lt;/li&gt;
&lt;li&gt;Terraform — Merlin generated 61 YAML files ready to use with Cloud Foundation Fabric. The files cover all five FAST stages: bootstrap (org setup, IAM, org policies), networking (VPC, subnets, firewall, DNS), security (KMS, SCC), project factory (workload projects), and VPC Service Controls (service perimeters). Dependencies between stages are handled automatically via FAST's $-interpolation tokens — no manual ID copying between stages.&lt;/li&gt;
&lt;li&gt;Documentation — A landing zone description and a step-by-step deployment guide explaining how to use the generated YAML files with Cloud Foundation Fabric.&lt;/li&gt;
&lt;li&gt;Diagrams — A set of diagrams describing the landing zone structure. Merlin produces Mermaid (.mmd) files rather than static images. Diagrams can be rendered at &lt;a href="https://mermaid.live" rel="noopener noreferrer"&gt;https://mermaid.live&lt;/a&gt; or converted to any graphics format.
The complete set of generated files and other Merlin examples are available at &lt;a href="https://github.com/Merlin-Studio" rel="noopener noreferrer"&gt;https://github.com/Merlin-Studio&lt;/a&gt;. Merlin Studio is currently free — registration only at &lt;a href="https://site.merlin-studio.cloud" rel="noopener noreferrer"&gt;https://site.merlin-studio.cloud&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1rrludmlnndcp5gezba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1rrludmlnndcp5gezba.png" alt="Sc12" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4v5hzkr0m6s4ymmruzk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4v5hzkr0m6s4ymmruzk.png" alt="sc13" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In our example we showed how weeks of work can be reduced to a single interactive session. Starting from business requirements and technical conditions, and with guidance from the tool throughout, the user ends up with 61 ready-to-use Cloud Foundation Fabric files, architecture and security scorecards, a deployment guide, and Mermaid diagrams — all aligned with HIPAA, SOC 2, and CIS Benchmarks.&lt;/p&gt;

&lt;p&gt;Despite providing a rich set of deployment-ready files, Merlin does not replace the cloud architect. Design review, stakeholder discussions, and alignment with networking and security teams remain an essential part of any landing zone project. What Merlin does is take the tedious part off the table.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Interested in trying it? Email &lt;a href="mailto:intentarcha@gmail.com"&gt;intentarcha@gmail.com&lt;/a&gt; — we’ll get you set up within 24 hours.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>infrastructureascode</category>
      <category>googlecloud</category>
      <category>terraform</category>
      <category>hipaa</category>
    </item>
    <item>
      <title>GCP Landing Zone Setup Automation</title>
      <dc:creator>Boris Teplitsky</dc:creator>
      <pubDate>Mon, 16 Mar 2026 10:30:04 +0000</pubDate>
      <link>https://dev.to/boristep/gcp-landing-zone-setup-automation-31f8</link>
      <guid>https://dev.to/boristep/gcp-landing-zone-setup-automation-31f8</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every GCP engagement starts the same way. Discovery call, spreadsheet &lt;br&gt;
of requirements, weeks of manual Terraform, IAM wiring, VPC design, &lt;br&gt;
org policies, budget alerts. Then a review cycle to catch what was &lt;br&gt;
missed. Then another.&lt;/p&gt;

&lt;p&gt;For a process that happens at the start of every cloud project, &lt;br&gt;
it's remarkably unautomated.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Landing Zone Actually Requires
&lt;/h2&gt;

&lt;p&gt;A production-ready GCP landing zone typically includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organization hierarchy and folder structure&lt;/li&gt;
&lt;li&gt;VPC and shared networking&lt;/li&gt;
&lt;li&gt;IAM roles and service accounts&lt;/li&gt;
&lt;li&gt;Org policies and constraints&lt;/li&gt;
&lt;li&gt;Budget alerts and billing controls&lt;/li&gt;
&lt;li&gt;Security baselines&lt;/li&gt;
&lt;li&gt;FAST-compatible configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Getting all of this right manually takes 2-3 weeks minimum.&lt;/p&gt;

&lt;h2&gt;
  
  
  A New Approach: Merlin
&lt;/h2&gt;

&lt;p&gt;Merlin is a GCP landing zone generator. Answer an architecture &lt;br&gt;
questionnaire — org structure, environments, compliance, networking &lt;br&gt;
— and it outputs a complete production-ready landing zone.&lt;/p&gt;

&lt;p&gt;What comes out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FAST-compatible Terraform files&lt;/li&gt;
&lt;li&gt;Architecture and security scorecards&lt;/li&gt;
&lt;li&gt;Mermaid diagrams&lt;/li&gt;
&lt;li&gt;Validation warnings&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  See the Real Output
&lt;/h2&gt;

&lt;p&gt;Published openly on GitHub — no signup required:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/Merlin-Studio" rel="noopener noreferrer"&gt;github.com/Merlin-Studio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Includes Simple, Standard, and Advanced profile examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Worth Knowing About
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://site.merlin-studio.cloud" rel="noopener noreferrer"&gt;site.merlin-studio.cloud&lt;/a&gt;&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>terraform</category>
      <category>devops</category>
      <category>cloudarchitecture</category>
    </item>
  </channel>
</rss>
