From 294388b8ef03dbae3bd555338e568cb2065c777c Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sat, 26 Apr 2025 15:10:03 -0700 Subject: [PATCH 01/12] Blog: The Data Surrender Trap --- .../TheDataSurrenderTrap.svg | 1 + content/post/the-data-surrender-trap/index.md | 132 +++ .../the_data_surrender_trap.monopic | Bin 0 -> 3808 bytes .../the_data_surrender_trap_architecture.svg | 1016 +++++++++++++++++ 4 files changed, 1149 insertions(+) create mode 100644 content/post/the-data-surrender-trap/TheDataSurrenderTrap.svg create mode 100644 content/post/the-data-surrender-trap/index.md create mode 100644 content/post/the-data-surrender-trap/the_data_surrender_trap.monopic create mode 100644 content/post/the-data-surrender-trap/the_data_surrender_trap_architecture.svg diff --git a/content/post/the-data-surrender-trap/TheDataSurrenderTrap.svg b/content/post/the-data-surrender-trap/TheDataSurrenderTrap.svg new file mode 100644 index 0000000..07b4006 --- /dev/null +++ b/content/post/the-data-surrender-trap/TheDataSurrenderTrap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/post/the-data-surrender-trap/index.md b/content/post/the-data-surrender-trap/index.md new file mode 100644 index 0000000..92bb787 --- /dev/null +++ b/content/post/the-data-surrender-trap/index.md @@ -0,0 +1,132 @@ ++++ +title = "The Data Surrender Trap: How Enterprises Are Losing Control in the AI Gold Rush—and the Simple Fix" +description = "Avoid the data-surrender trap: keep data in-place with open standards and governance, share securely, and bring AI to your data—not the other way around. " +date = 2025-04-26T18:07:52-08:00 + +[taxonomies] +tags = ["AI", "Data Governance", "Data Engineering", "Artificial Intelligence", "AI"] +categories = ["Data Engineering", "Artificial Intelligence", "Data Governance"] + +[extra] +toc = true +keywords = ["AI", "Databricks", "Data Governance", "Data Engineering", "Artificial Intelligence", "Data Surrender Trap", "Data Sharing", "Data Security", "Data Privacy", "Open Standards", "Zero-Copy Sharing", "Google Cloud", "AWS", "Microsoft Azure", "Snowflake", "Data Residency", "Data Compliance", "Data Strategy", "Iceberg", "Delta Lake", "Apache Ranger", "Open Policy Agent", "Unity Catalog", "Data Lineage", "Data Sharing Protocols", "MosaicML", "Model Serving", "Data Architecture", "DuckDB"] ++++ + +![The Data Surrender Trap](TheDataSurrenderTrap.svg) + +Generative AI has lit a fire under every product road-map. Faced with “ship it yesterday” pressure, many teams reach for a turnkey vendor: upload data, call an API, launch the feature. It works—until the bill comes due. + +Handing raw customer data to a third party introduces two long-term headaches: + +1. Governance and compliance risk – once data leaves your perimeter, you lose direct control over how long it’s stored, where it resides, and who can see it. A single mis-configuration or model-training clause could violate GDPR, HIPAA, or internal policy. +2. Technical debt – the day you need to swap providers, migrate regions, or delete a customer record, you discover tight coupling in schemas, pipelines, and security controls that were never designed for portability. + +## Best practices: bring the AI to the data, not the data to the AI + +Enterprise architects have converged on four guard-rails for safe, future-proof AI: + +| Guard-rail | Why it matters | Practical test | +| --- | --- | --- | +| Open, in-place storage | Avoid proprietary traps; support multi-cloud or on-prem moves | “If the vendor disappeared tomorrow, could I still read my data in Parquet/Delta/Iceberg?” | +| Unified governance layer | Single set of fine-grained permissions, lineage, and audit logs | “Can I give a partner read-only access to one column and see every query they run?” | +| Zero-copy sharing | Eliminate fragile CSV exports; revoke access instantly | “When a collaboration ends, can I cut off data without chasing down replicas?” | +| Integrated model lifecycle | Training, registry, and serving inside the governed perimeter | “Can I trace every prediction back to its training dataset and code commit?” | + +Platforms that deliver all four let you innovate quickly and satisfy CISOs and regulators. + +## Open Standards — Give AI Strict Access Without Handing Over the keys + +Before we look at any vendor implementation, it helps to know the building-block standards that let you: + +- keep data right where it is +- yet expose just enough for analytics or AI + +| Layer | Open standard | Why it matters | +| --- | --- | --- | +| Table formats | Apache Iceberg, Delta Lake, Apache Hudi, Parquet | Column-oriented, ACID-capable tables that sit in ordinary cloud storage and are readable by engines like Spark, Trino, Flink, etc. Iceberg’s spec is fully open, so any vendor can implement it—preventing lock-in and enabling multi-cloud lakes. | +| Governance / access control | Apache Ranger, Open Policy Agent, Unity Catalog | Centralize table/row/column policies, data masking, and audit logs across dozens of engines and clouds—without embedding rules in every service. Ranger policies even support dynamic row-level filters. | +| Data lineage | OpenLineage | A vendor-neutral API for emitting and collecting lineage events from Spark, Airflow, dbt, BigQuery, and more. Lets you trace every model back to the exact inputs that produced it. | +| Zero-copy data sharing | Delta Sharing (REST), Iceberg REST Catalog, Arrow Flight SQL | Instead of emailing CSVs, expose live tables through open protocols. Recipients query directly—Spark, Pandas, BI tools—while you keep full revocation and audit control. Delta Sharing is the first open REST protocol for this purpose; Iceberg’s REST catalog spec and Arrow Flight do the same for metadata and high-speed transport. | + +What this unlocks: + +- **Bring compute to data**. Spin up Spark, DuckDB, or an LLM fine-tuning job inside the VPC that owns the storage, using the open format directly. No data export required. +- **Share surgically**. Grant a vendor or partner a token that exposes only the columns or partitions they need, over an open protocol you can turn off instantly. +- **Stay future-proof.** Because storage and governance are defined by community specs, you can mix-and-match clouds or engines without rewriting pipelines. + +With these open standards in place, any platform that respects them can satisfy the four guard-rails—open storage, unified governance, zero-copy sharing, in-platform ML. + +## Databricks: the platform that delivers all four guard-rails + +Databricks’ Lakehouse architecture assembles the pieces in one stack: + +- **Delta Lake** – Open-source ACID tables on cloud object storage. You keep data in your S3/ADLS/GCS buckets; Databricks adds versioning, upserts, and time-travel without changing file formats. +- **Unity Catalog** – A multicloud metastore that applies table/row/column permissions, tags, and audit logs across SQL, Python, BI dashboards, and ML pipelines. Governance once, enforced everywhere. +- **Delta Sharing** – The first open protocol for zero-copy sharing. Providers grant token-based access to live tables; recipients query in Spark, Pandas, Power BI, or even Snowflake without relocating data. Access is revocable in seconds. +- **MosaicML + Databricks Model Serving** – High-efficiency training and hosting of LLMs inside the Lakehouse. You fine-tune open-source or foundation models on proprietary data that never leaves your cloud account, then expose a governed HTTPS endpoint. All lineage (data → model → endpoint) is captured in Unity Catalog. + +Because compute clusters run inside your VPC, and storage stays in your buckets, data residency and encryption standards remain under your control. The Lakehouse “brings compute to data,” satisfying the four guard-rails by design. + +If you are already using Databricks for your data engineering needs, you are in safe hands, leverage these features for the greater good of your data strategy. + +## How the other majors compare—neutral and concise + +| Area | Databricks | AWS | Google Cloud | Microsoft Azure | Snowflake | +| --- | --- | --- | --- | --- | --- | +| Open table format | Delta Lake (native) | Iceberg & Hudi support via Glue | BigLake now queries Delta & Iceberg | Delta via Synapse Spark | Native storage is proprietary; external tables support Iceberg/Delta | +| Central governance | Unity Catalog | Lake Formation + Glue Catalog | Dataplex + BigLake | Purview | Object tagging, masking policies | +| Zero-copy sharing | Open Delta Sharing (any tool) | Cross-account Lake Formation permissions; Data Exchange | BigQuery authorized views; BigLake metadata | Azure Data Share (Azure-only) | Snowflake Secure Data Sharing (Snowflake-only) | +| In-platform ML | Spark ML + MosaicML + Serving | SageMaker (integrated with Lake Formation) | Vertex AI (ties to BigQuery/BigLake) | Azure ML (ties to Synapse/ADLS) | Snowpark ML + Model Registry | +| Control plane | Runs in vendor account; data plane in your VPC | All in AWS | All in Google Cloud | All in Azure | Managed by Snowflake (still in your cloud region) | + +Key take-aways: + +- Every provider now markets a “lakehouse” story; the difference is openness and ecosystem lock-in. +- AWS, Google, and Azure each solve the problem well inside their cloud. Multi-cloud or future migration can be harder. +- Snowflake excels at instant sharing inside its service but requires you to load data into Snowflake storage (or at least pay Snowflake to query external tables). +- Databricks’ bet is that open formats + open sharing + multi-cloud governance reduce long-term friction. +- Google Cloud's BigLake provides external connection to Delta Lake and Iceberg + + +## Architecture snapshot for engineers and data scientists + + +![architecture diagram](the_data_surrender_trap_architecture.svg) + + +- External AI vendors have two strictly-controlled entry points +- Model-Serving API (top) They can request predictions from your governed endpoint—no direct data access required. +- Delta Sharing (middle-right) If a vendor truly needs training or feature data, you grant a scoped, revocable token that exposes only the tables/columns you approve. + +All other layers—compute, governance, storage—live inside your VPC / cloud account, so raw data never leaves your perimeter unless you explicitly share it through the Delta Sharing gateway. + +## Putting It into Practice – an Up-to-Date Migration & Safe-Sharing Playbook + +Each step below tightens control, reduces copies, and shows how to give an external AI vendor only the data they truly need—without falling into the data-surrender trap. + +| Step | Action | Why / Tips | +| --- | --- | --- | +| Inventory & classify | | You can’t apply least-privilege sharing if you don’t know what’s sensitive. | +| Land everything in open, governed tables | | Open formats + immutable history make later audits and deletions possible. | +| Switch on a unified catalog | | One policy engine ≫ dozens of per-tool ACLs. | +| Harden the perimeter | | Keeps “shadow ETL” from copying data out the side door. | +| Safely share with an external AI vendor (zero-copy) |
  1. Minimise first – aggregate, pseudonymise, or drop columns the vendor doesn’t need.
  2. Create a Share (Delta Sharing / Iceberg REST / Arrow Flight):  
    • Grant only the filtered table or view.
    • Attach row-level filters & column masks.
    • Issue a time-boxed bearer token (7-, 30-, or 90-day TTL) and pin it to the vendor’s IP range. Databricks DocumentationDatabricks
  3. Contract & controls – DPA, usage policy, no onward sharing.
  4. Monitor – streaming audit of every query; set alerts for unusually large scans.
  5. Revoke or rotate the token the moment the engagement ends (one CLI/API call).
| Zero-copy protocols let the vendor query live tables without replicating them. Instant revocation closes the door the second you’re done. | +| Move internal ML pipelines onto the platform | | No more exporting giant CSVs to Jupyter on someone’s laptop. | +| Expose governed model endpoints | | External apps can call for predictions without direct data access. | +| Automate audits & drift detection | | Governance-as-code keeps guard-rails from eroding over time. | + + +**Result**: engineers still use the notebooks, SQL editors, and BI dashboards they love—but every byte of sensitive data stays in your buckets, under traceable, revocable control. External AI vendors get exactly the slice you permit, for exactly as long as you permit, with a full audit trail to keep everyone honest. + + +## Conclusion – Bring AI to Your Data and Future-Proof the Business + +The AI race rewards the companies that can move fast without surrendering their crown-jewel data. The way to do that is simple—but non-negotiable: + +- **Keep data where it lives** in your own cloud buckets or data centers. +- **Wrap it in open standards**—Delta, Iceberg, Parquet, Ranger, OpenLineage, zero-copy sharing protocols—so any engine or vendor can work with it, and you can walk away at any time. +- **Follow a disciplined playbook:** classify → convert → govern → harden → share surgically → train in-place → serve under guard → audit continuously. + +Do those three things and you flip the script: instead of pushing raw tables out to a black-box vendor, you invite algorithms, fine-tuning jobs, and BI tools into a tightly controlled environment. The result is faster experimentation (no week-long data exports), fewer compliance nightmares (every read is logged and revocable), and zero re-platform tax when the next cloud, model, or regulation arrives. + +In short, **bringing AI to your data—under open, governed standards—isn’t just best practice; it’s the only sustainable data strategy for the decade ahead.** Adopt it now, and each new AI breakthrough becomes an easy plugin rather than a risky migration. Your teams keep innovating, your security team keeps sleeping, and your customers keep trusting you with their data. diff --git a/content/post/the-data-surrender-trap/the_data_surrender_trap.monopic b/content/post/the-data-surrender-trap/the_data_surrender_trap.monopic new file mode 100644 index 0000000000000000000000000000000000000000..95a9e320d11d3fa1445627f6f8139542e26617f5 GIT binary patch literal 3808 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 24c50b2a2eb7b59c51939e9218dfc097634b7d3b Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sat, 26 Apr 2025 18:01:54 -0700 Subject: [PATCH 02/12] duplicate tag correction --- content/post/the-data-surrender-trap/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/post/the-data-surrender-trap/index.md b/content/post/the-data-surrender-trap/index.md index 92bb787..4d62e93 100644 --- a/content/post/the-data-surrender-trap/index.md +++ b/content/post/the-data-surrender-trap/index.md @@ -4,7 +4,7 @@ description = "Avoid the data-surrender trap: keep data in-place with open stand date = 2025-04-26T18:07:52-08:00 [taxonomies] -tags = ["AI", "Data Governance", "Data Engineering", "Artificial Intelligence", "AI"] +tags = ["AI", "Data Governance", "Data Engineering", "Artificial Intelligence"] categories = ["Data Engineering", "Artificial Intelligence", "Data Governance"] [extra] From 336853b2a73979629b26609c77086f4b125ff879 Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sat, 26 Apr 2025 20:43:21 -0700 Subject: [PATCH 03/12] update resume --- content/resume.md | 59 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/content/resume.md b/content/resume.md index a39d67f..5014ba2 100644 --- a/content/resume.md +++ b/content/resume.md @@ -5,22 +5,22 @@ date = "2018-04-16T09:16:07-05:00" [extra] isso = false -keywords = ["Salar", "Rahmanian", "Salar Rahmanian", "Resume", "CV"] +keywords = ["Salar", "Rahmanian", "Salar Rahmanian", "Resume", "CV", "softinio"] +++ # Salar Rahmanian # ## My Location ## San Francisco Bay Area, California ## Profile ## -I have been developing software since the age of eleven. +I have been developing software since the age of eleven. I have extensive experience: -- *Programming in:* Java, Scala and Python +- *Programming in:* Java, Scala, Python and Swift - *Databases:* Oracle, Postgresql, MySQL, IBM DB2 -- *Frameworks:* Spring and Hibernate (Java), Akka / Akka-http (Scala), Django (Python), Flask (Python) +- *Frameworks:* Spring and Hibernate (Java), Akka / Akka-http (Scala), Typelevel (Scala), FastAPI (Python), Langchain(Python), Django (Python), Flask (Python) - *OS:* NixOS, Linux, Unix (Solaris, Aix) -- *Other:* Apache Spark (Databricks), Redis, Kafka, RabbitMQ, Apache Nifi +- *Other:* Apache Spark (Databricks), Redis, Kafka, RabbitMQ, Apache Nifi, Terraform, Google Cloud (Vertex AI, Document AI, Dialogflow, BigQuery) ## Domain Experience ## - Healthcare @@ -33,9 +33,15 @@ I have extensive experience: So far my work has involved: +- Building AI features using: + - OpenAI + - Langchain + - Google Cloud (Vertex AI, Document AI, Dialogflow, Vertex AI Search, Gemini) + - Databricks Model Serving and experimentation using MLflow + - Created internal framework and tools to be used by other engineers to build AI features - Building Data pipelines using Databricks, Apache Spark, Airflow and Python - Building Microservices and REST API's using Java, Spring, Dropwizard -- Kubernetes, AWS, PostgreSQL +- Kubernetes, AWS, PostgreSQL, Terraform - Design and Architecture of new features ### Staff Software Engineer, Mya Systems: 2018-2020 ### @@ -45,7 +51,7 @@ My accomplishments at Mya: - Scaled our platforms conversations with our AI assistant to be asynchronous and queue/streaming driven - Integration of Mya's platform with several external ATS's most notably this included Workday, Bullhorn, Paychex/MyStaffing Pro and Textkernel. -- Building new microservices and adding features to Mya existing platform using Python, Django, Flask, Celery, Redis (Including Redis Streams) and Postgresql. This included building REST Services. +- Building new microservices and adding features to Mya existing platform using Python, Django, Flask, Celery, Redis (Including Redis Streams) and Postgresql. This included building REST Services. ### Senior Principal Engineer, Snagajob: 2016-2018 ### I built a new data ingestion pipeline to ingest high volume of job postings received from multiple sources and partners. I built this using Scala, akka, akka-http, Play Framework, Kafka and Apache Nifi. I also setup a Kubernetes cluster running on AWS which was used for this new ingestion pipeline. I was responsible for introducing all these wonderful technologies to Snagajob. @@ -61,17 +67,17 @@ I worked on the modernization of the Dept of Veteran Affairs eHmp health care sy ### Chief Technology Officer, Healthy Choices At Work: 2012-2014 ### I was a hands on CTO and Engineer at this startup. I architected and developed a custom CRM system for the business. This provided a full end to end solution which allowed customers to sign up for the service and manage their own accounts. On the business side it provided the means to run the business by providing the delivery scheduling of the orders and the billing and invoicing management of customers. -The stack used for this was Python, Django, Postgresql and Elasticsearch. For payments our system integrated with Stripe APIs. +The stack used for this was Python, Django, Postgresql and Elasticsearch. For payments our system integrated with Stripe APIs. ### Principal Software Engineer, Incito Networks LLC: 2009-2013 ### -Worked as a freelance software developer developing custom apps for local small businesses and entrepreneurs. Worked on several software development projects which included me using: +Worked as a freelance software developer developing custom apps for local small businesses and entrepreneurs. Worked on several software development projects which included me using: - Java, Spring - Python, Django -- I developed two IOS apps for clients using Objective C +- I developed two IOS apps for clients using Objective C ### Principal Software Engineer, Powermax Computing Ltd: 1998-2009 ### -If you have worked in the UK as an experienced software developer, you realize that the best jobs from all angles are contract / consultant positions. So during this period whilst living in London UK i worked for many well known companies on the biggest projects as a Principal Software Engineer. In the early years my work solely involved coding using C Programming on a Unix Platform (such as Solaris and AIX) with an Oracle Database backend (included Pro*C and PL/SQL). +If you have worked in the UK as an experienced software developer, you realize that the best jobs from all angles are contract / consultant positions. So during this period whilst living in London UK i worked for many well known companies on the biggest projects as a Principal Software Engineer. In the early years my work solely involved coding using C Programming on a Unix Platform (such as Solaris and AIX) with an Oracle Database backend (included Pro*C and PL/SQL). In the more later years my coding was mostly done using Java, Spring, Hibernate and Oracle again as the database backend. @@ -93,7 +99,31 @@ You can find more of my projects on my [GitHub](https://github.com/softinio?tab= I have a passion to learn and network with like minded people with similar interests in technology. Hence I am very active in the conference, meetup and open source communities: -#### Past Meetups #### +#### Organizer for following Meetup groups #### + +##### San Francisco and Bay Area Scala Meetup Groups ##### + +Organizer from *June 2018* to **NOW**: + +- +- +- + +##### Data and AI Engineering Meetup ##### + +Organizer from *June 2018* to **NOW**: + +- +- + + +##### Bay Area Nix/NixOS User Group ##### + +Organizer from *October 2024* to **NOW**: + +- + +#### Past Meetups I was organizer for #### ##### Silicon Valley Nix / NixOS User Group ##### @@ -111,10 +141,6 @@ Organizer from *2021* to *2023*: -##### San Francisco Scala Meetup ##### - -Organizer from *June 2018* to *April 2021*: - ##### Elastic San Francisco User group ##### Organizer from *November 2017* to *April 2021*: @@ -130,4 +156,3 @@ Organizer from *April 2019* to *April 2021*: - From 019c4d0f0f44c2fe5eab184d9b0244bcfd6c6b96 Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sat, 26 Apr 2025 20:57:30 -0700 Subject: [PATCH 04/12] Project: Fishee --- content/projects/fishee/FisheeLogo.jpeg | Bin 0 -> 80388 bytes content/projects/fishee/index.md | 27 ++++++++++++++++++++++++ content/projects/zio-actors/index.md | 4 +--- 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 content/projects/fishee/FisheeLogo.jpeg create mode 100644 content/projects/fishee/index.md diff --git a/content/projects/fishee/FisheeLogo.jpeg b/content/projects/fishee/FisheeLogo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4230ae7fe15ef60218f7bd91df53ebf677f6022b GIT binary patch literal 80388 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
    Y=*XRhVkXW(5{x7IlO&3IaWK1K5S1!Rbqo`z{ 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 dMp$rv`mF7s&+2$m19E)_3b;bwUy + - README: diff --git a/content/projects/zio-actors/index.md b/content/projects/zio-actors/index.md index af47503..3f95f5f 100644 --- a/content/projects/zio-actors/index.md +++ b/content/projects/zio-actors/index.md @@ -1,7 +1,7 @@ +++ title = "ZIO Actors" description = "A High performance, purely functional library for building, composing, and supervising typed actors based on ZIO using Scala." -weight = 3 +weight = 4 [taxonomies] tags = ["actor model", "concurrency", "distributed systems", "scala", "functional programming", "zio"] @@ -31,5 +31,3 @@ Original creator of this project, though I do not maintain it anymore. - Repository: - README: - Documentation: - - From ff8d0aceb7e074f7fddf79bc2eef6c357ec8b4d7 Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sat, 26 Apr 2025 21:19:01 -0700 Subject: [PATCH 05/12] Add social media image to new blog --- content/post/the-data-surrender-trap/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/post/the-data-surrender-trap/index.md b/content/post/the-data-surrender-trap/index.md index 4d62e93..418070c 100644 --- a/content/post/the-data-surrender-trap/index.md +++ b/content/post/the-data-surrender-trap/index.md @@ -8,6 +8,7 @@ tags = ["AI", "Data Governance", "Data Engineering", "Artificial Intelligence"] categories = ["Data Engineering", "Artificial Intelligence", "Data Governance"] [extra] +social_media_card = "TheDataSurrenderTrap.svg" toc = true keywords = ["AI", "Databricks", "Data Governance", "Data Engineering", "Artificial Intelligence", "Data Surrender Trap", "Data Sharing", "Data Security", "Data Privacy", "Open Standards", "Zero-Copy Sharing", "Google Cloud", "AWS", "Microsoft Azure", "Snowflake", "Data Residency", "Data Compliance", "Data Strategy", "Iceberg", "Delta Lake", "Apache Ranger", "Open Policy Agent", "Unity Catalog", "Data Lineage", "Data Sharing Protocols", "MosaicML", "Model Serving", "Data Architecture", "DuckDB"] +++ From 13c170e7780a29eb15092e54599e05f1bf2c9cc9 Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sun, 27 Apr 2025 13:42:13 -0700 Subject: [PATCH 06/12] New blog enhancements --- content/post/the-data-surrender-trap/index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/content/post/the-data-surrender-trap/index.md b/content/post/the-data-surrender-trap/index.md index 418070c..8df51ae 100644 --- a/content/post/the-data-surrender-trap/index.md +++ b/content/post/the-data-surrender-trap/index.md @@ -10,7 +10,7 @@ categories = ["Data Engineering", "Artificial Intelligence", "Data Governance"] [extra] social_media_card = "TheDataSurrenderTrap.svg" toc = true -keywords = ["AI", "Databricks", "Data Governance", "Data Engineering", "Artificial Intelligence", "Data Surrender Trap", "Data Sharing", "Data Security", "Data Privacy", "Open Standards", "Zero-Copy Sharing", "Google Cloud", "AWS", "Microsoft Azure", "Snowflake", "Data Residency", "Data Compliance", "Data Strategy", "Iceberg", "Delta Lake", "Apache Ranger", "Open Policy Agent", "Unity Catalog", "Data Lineage", "Data Sharing Protocols", "MosaicML", "Model Serving", "Data Architecture", "DuckDB"] +keywords = ["AI", "Databricks", "Data Governance", "Data Engineering", "Artificial Intelligence", "Data Surrender Trap", "Data Sharing", "Data Security", "Data Privacy", "Open Standards", "Zero-Copy Sharing", "Google Cloud", "AWS", "Microsoft Azure", "Snowflake", "Data Residency", "Data Compliance", "Data Strategy", "Iceberg", "Delta Lake", "Apache Ranger", "Open Policy Agent", "Unity Catalog", "Data Lineage", "Data Sharing Protocols", "MosaicML", "Model Serving", "Data Architecture", "DuckDB", "Lakekeeper"] +++ ![The Data Surrender Trap](TheDataSurrenderTrap.svg) @@ -21,6 +21,7 @@ Handing raw customer data to a third party introduces two long-term headaches: 1. Governance and compliance risk – once data leaves your perimeter, you lose direct control over how long it’s stored, where it resides, and who can see it. A single mis-configuration or model-training clause could violate GDPR, HIPAA, or internal policy. 2. Technical debt – the day you need to swap providers, migrate regions, or delete a customer record, you discover tight coupling in schemas, pipelines, and security controls that were never designed for portability. +3. Technical debt - having to synchronize data between multiple vendors and your own systems, which can lead to data inconsistencies and increased complexity. ## Best practices: bring the AI to the data, not the data to the AI @@ -45,7 +46,7 @@ Before we look at any vendor implementation, it helps to know the building-block | Layer | Open standard | Why it matters | | --- | --- | --- | | Table formats | Apache Iceberg, Delta Lake, Apache Hudi, Parquet | Column-oriented, ACID-capable tables that sit in ordinary cloud storage and are readable by engines like Spark, Trino, Flink, etc. Iceberg’s spec is fully open, so any vendor can implement it—preventing lock-in and enabling multi-cloud lakes. | -| Governance / access control | Apache Ranger, Open Policy Agent, Unity Catalog | Centralize table/row/column policies, data masking, and audit logs across dozens of engines and clouds—without embedding rules in every service. Ranger policies even support dynamic row-level filters. | +| Governance / access control | Apache Ranger, Open Policy Agent, Unity Catalog, Lakekeeper | Centralize table/row/column policies, data masking, and audit logs across dozens of engines and clouds—without embedding rules in every service. Ranger policies even support dynamic row-level filters. | | Data lineage | OpenLineage | A vendor-neutral API for emitting and collecting lineage events from Spark, Airflow, dbt, BigQuery, and more. Lets you trace every model back to the exact inputs that produced it. | | Zero-copy data sharing | Delta Sharing (REST), Iceberg REST Catalog, Arrow Flight SQL | Instead of emailing CSVs, expose live tables through open protocols. Recipients query directly—Spark, Pandas, BI tools—while you keep full revocation and audit control. Delta Sharing is the first open REST protocol for this purpose; Iceberg’s REST catalog spec and Arrow Flight do the same for metadata and high-speed transport. | @@ -109,7 +110,7 @@ Each step below tightens control, reduces copies, and shows how to give an exter | --- | --- | --- | | Inventory & classify |
    • Tag PII, payment data, trade secrets, regulated logs.
    • Record legal basis (GDPR, HIPAA, SOC-2 scope, etc.).
    | You can’t apply least-privilege sharing if you don’t know what’s sensitive. | | Land everything in open, governed tables |
    • Convert CSV/Parquet to Delta / Iceberg with schema enforcement & time-travel.
    • Store in your S3 buckets / Google Cloud Storage; enable server-side encryption and object-lock.
    | Open formats + immutable history make later audits and deletions possible. | -| Switch on a unified catalog |
    • Unity Catalog / Lake Formation / Purview / Dataplex.
    • Import IAM groups, apply column masks, row filters, dynamic data tags (“pii = true”).
    | One policy engine ≫ dozens of per-tool ACLs. | +| Switch on a unified catalog |
    • Unity Catalog / Lake Formation / Purview / Dataplex / Lakekeeper.
    • Import IAM groups, apply column masks, row filters, dynamic data tags (“pii = true”).
    | One policy engine ≫ dozens of per-tool ACLs. | | Harden the perimeter |
    • Private subnets, VPC peering, and storage firewall rules so only approved compute can touch raw data.
    • Disable public buckets & open egress unless justified.
    | Keeps “shadow ETL” from copying data out the side door. | | Safely share with an external AI vendor (zero-copy) |
    1. Minimise first – aggregate, pseudonymise, or drop columns the vendor doesn’t need.
    2. Create a Share (Delta Sharing / Iceberg REST / Arrow Flight):  
      • Grant only the filtered table or view.
      • Attach row-level filters & column masks.
      • Issue a time-boxed bearer token (7-, 30-, or 90-day TTL) and pin it to the vendor’s IP range. Databricks DocumentationDatabricks
    3. Contract & controls – DPA, usage policy, no onward sharing.
    4. Monitor – streaming audit of every query; set alerts for unusually large scans.
    5. Revoke or rotate the token the moment the engagement ends (one CLI/API call).
    | Zero-copy protocols let the vendor query live tables without replicating them. Instant revocation closes the door the second you’re done. | | Move internal ML pipelines onto the platform |
    • Use Spark + MosaicML (or SageMaker/Vertex/Azure ML) inside the governed workspace.
    • Log models to a central registry; tag each with source-data lineage.
    | No more exporting giant CSVs to Jupyter on someone’s laptop. | From e7bbc60279987aaf42f2ba62747a73ea571c11ec Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sun, 27 Apr 2025 14:27:03 -0700 Subject: [PATCH 07/12] Diagram update --- content/post/the-data-surrender-trap/index.md | 2 +- .../the_data_surrender_trap.monopic | Bin 3808 -> 3813 bytes .../the_data_surrender_trap_architecture.png | Bin 0 -> 140135 bytes .../the_data_surrender_trap_architecture.svg | 1016 ----------------- 4 files changed, 1 insertion(+), 1017 deletions(-) create mode 100644 content/post/the-data-surrender-trap/the_data_surrender_trap_architecture.png delete mode 100644 content/post/the-data-surrender-trap/the_data_surrender_trap_architecture.svg diff --git a/content/post/the-data-surrender-trap/index.md b/content/post/the-data-surrender-trap/index.md index 8df51ae..a0b5d4e 100644 --- a/content/post/the-data-surrender-trap/index.md +++ b/content/post/the-data-surrender-trap/index.md @@ -93,7 +93,7 @@ Key take-aways: ## Architecture snapshot for engineers and data scientists -![architecture diagram](the_data_surrender_trap_architecture.svg) +![architecture diagram](the_data_surrender_trap_architecture.png) - External AI vendors have two strictly-controlled entry points diff --git a/content/post/the-data-surrender-trap/the_data_surrender_trap.monopic b/content/post/the-data-surrender-trap/the_data_surrender_trap.monopic index 95a9e320d11d3fa1445627f6f8139542e26617f5..3456a73409de2ab54c90a48edb8d132dabc16b9a 100644 GIT binary patch literal 3813 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
    l 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%0D6q#Z(%O;a$tSo4x!oUgKip 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 qLxvMu4mk5miu7A|{l9q9buR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 141588fad7237ec03ba7c73cbffc91b5f85f972a Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Mon, 28 Apr 2025 09:47:55 -0700 Subject: [PATCH 08/12] Correction to unicode character --- content/post/the-data-surrender-trap/index.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/content/post/the-data-surrender-trap/index.md b/content/post/the-data-surrender-trap/index.md index a0b5d4e..3dda4e3 100644 --- a/content/post/the-data-surrender-trap/index.md +++ b/content/post/the-data-surrender-trap/index.md @@ -19,7 +19,7 @@ Generative AI has lit a fire under every product road-map. Faced with “ship it Handing raw customer data to a third party introduces two long-term headaches: -1. Governance and compliance risk – once data leaves your perimeter, you lose direct control over how long it’s stored, where it resides, and who can see it. A single mis-configuration or model-training clause could violate GDPR, HIPAA, or internal policy. +1. Governance and compliance risk – once data leaves your perimeter, you lose direct control over how long it's stored, where it resides, and who can see it. A single mis-configuration or model-training clause could violate GDPR, HIPAA, or internal policy. 2. Technical debt – the day you need to swap providers, migrate regions, or delete a customer record, you discover tight coupling in schemas, pipelines, and security controls that were never designed for portability. 3. Technical debt - having to synchronize data between multiple vendors and your own systems, which can lead to data inconsistencies and increased complexity. @@ -45,10 +45,10 @@ Before we look at any vendor implementation, it helps to know the building-block | Layer | Open standard | Why it matters | | --- | --- | --- | -| Table formats | Apache Iceberg, Delta Lake, Apache Hudi, Parquet | Column-oriented, ACID-capable tables that sit in ordinary cloud storage and are readable by engines like Spark, Trino, Flink, etc. Iceberg’s spec is fully open, so any vendor can implement it—preventing lock-in and enabling multi-cloud lakes. | +| Table formats | Apache Iceberg, Delta Lake, Apache Hudi, Parquet | Column-oriented, ACID-capable tables that sit in ordinary cloud storage and are readable by engines like Spark, Trino, Flink, etc. Iceberg's spec is fully open, so any vendor can implement it—preventing lock-in and enabling multi-cloud lakes. | | Governance / access control | Apache Ranger, Open Policy Agent, Unity Catalog, Lakekeeper | Centralize table/row/column policies, data masking, and audit logs across dozens of engines and clouds—without embedding rules in every service. Ranger policies even support dynamic row-level filters. | | Data lineage | OpenLineage | A vendor-neutral API for emitting and collecting lineage events from Spark, Airflow, dbt, BigQuery, and more. Lets you trace every model back to the exact inputs that produced it. | -| Zero-copy data sharing | Delta Sharing (REST), Iceberg REST Catalog, Arrow Flight SQL | Instead of emailing CSVs, expose live tables through open protocols. Recipients query directly—Spark, Pandas, BI tools—while you keep full revocation and audit control. Delta Sharing is the first open REST protocol for this purpose; Iceberg’s REST catalog spec and Arrow Flight do the same for metadata and high-speed transport. | +| Zero-copy data sharing | Delta Sharing (REST), Iceberg REST Catalog, Arrow Flight SQL | Instead of emailing CSVs, expose live tables through open protocols. Recipients query directly—Spark, Pandas, BI tools—while you keep full revocation and audit control. Delta Sharing is the first open REST protocol for this purpose; Iceberg's REST catalog spec and Arrow Flight do the same for metadata and high-speed transport. | What this unlocks: @@ -60,7 +60,7 @@ With these open standards in place, any platform that respects them can satisfy ## Databricks: the platform that delivers all four guard-rails -Databricks’ Lakehouse architecture assembles the pieces in one stack: +Databricks' Lakehouse architecture assembles the pieces in one stack: - **Delta Lake** – Open-source ACID tables on cloud object storage. You keep data in your S3/ADLS/GCS buckets; Databricks adds versioning, upserts, and time-travel without changing file formats. - **Unity Catalog** – A multicloud metastore that applies table/row/column permissions, tags, and audit logs across SQL, Python, BI dashboards, and ML pipelines. Governance once, enforced everywhere. @@ -86,7 +86,7 @@ Key take-aways: - Every provider now markets a “lakehouse” story; the difference is openness and ecosystem lock-in. - AWS, Google, and Azure each solve the problem well inside their cloud. Multi-cloud or future migration can be harder. - Snowflake excels at instant sharing inside its service but requires you to load data into Snowflake storage (or at least pay Snowflake to query external tables). -- Databricks’ bet is that open formats + open sharing + multi-cloud governance reduce long-term friction. +- Databricks' bet is that open formats + open sharing + multi-cloud governance reduce long-term friction. - Google Cloud's BigLake provides external connection to Delta Lake and Iceberg @@ -108,12 +108,12 @@ Each step below tightens control, reduces copies, and shows how to give an exter | Step | Action | Why / Tips | | --- | --- | --- | -| Inventory & classify |
    • Tag PII, payment data, trade secrets, regulated logs.
    • Record legal basis (GDPR, HIPAA, SOC-2 scope, etc.).
    | You can’t apply least-privilege sharing if you don’t know what’s sensitive. | +| Inventory & classify |
    • Tag PII, payment data, trade secrets, regulated logs.
    • Record legal basis (GDPR, HIPAA, SOC-2 scope, etc.).
    | You can't apply least-privilege sharing if you don't know what's sensitive. | | Land everything in open, governed tables |
    • Convert CSV/Parquet to Delta / Iceberg with schema enforcement & time-travel.
    • Store in your S3 buckets / Google Cloud Storage; enable server-side encryption and object-lock.
    | Open formats + immutable history make later audits and deletions possible. | | Switch on a unified catalog |
    • Unity Catalog / Lake Formation / Purview / Dataplex / Lakekeeper.
    • Import IAM groups, apply column masks, row filters, dynamic data tags (“pii = true”).
    | One policy engine ≫ dozens of per-tool ACLs. | | Harden the perimeter |
    • Private subnets, VPC peering, and storage firewall rules so only approved compute can touch raw data.
    • Disable public buckets & open egress unless justified.
    | Keeps “shadow ETL” from copying data out the side door. | -| Safely share with an external AI vendor (zero-copy) |
    1. Minimise first – aggregate, pseudonymise, or drop columns the vendor doesn’t need.
    2. Create a Share (Delta Sharing / Iceberg REST / Arrow Flight):  
      • Grant only the filtered table or view.
      • Attach row-level filters & column masks.
      • Issue a time-boxed bearer token (7-, 30-, or 90-day TTL) and pin it to the vendor’s IP range. Databricks DocumentationDatabricks
    3. Contract & controls – DPA, usage policy, no onward sharing.
    4. Monitor – streaming audit of every query; set alerts for unusually large scans.
    5. Revoke or rotate the token the moment the engagement ends (one CLI/API call).
    | Zero-copy protocols let the vendor query live tables without replicating them. Instant revocation closes the door the second you’re done. | -| Move internal ML pipelines onto the platform |
    • Use Spark + MosaicML (or SageMaker/Vertex/Azure ML) inside the governed workspace.
    • Log models to a central registry; tag each with source-data lineage.
    | No more exporting giant CSVs to Jupyter on someone’s laptop. | +| Safely share with an external AI vendor (zero-copy) |
    1. Minimise first – aggregate, pseudonymise, or drop columns the vendor doesn't need.
    2. Create a Share (Delta Sharing / Iceberg REST / Arrow Flight):  
      • Grant only the filtered table or view.
      • Attach row-level filters & column masks.
      • Issue a time-boxed bearer token (7-, 30-, or 90-day TTL) and pin it to the vendor's IP range. Databricks DocumentationDatabricks
    3. Contract & controls – DPA, usage policy, no onward sharing.
    4. Monitor – streaming audit of every query; set alerts for unusually large scans.
    5. Revoke or rotate the token the moment the engagement ends (one CLI/API call).
    | Zero-copy protocols let the vendor query live tables without replicating them. Instant revocation closes the door the second you're done. | +| Move internal ML pipelines onto the platform |
    • Use Spark + MosaicML (or SageMaker/Vertex/Azure ML) inside the governed workspace.
    • Log models to a central registry; tag each with source-data lineage.
    | No more exporting giant CSVs to Jupyter on someone's laptop. | | Expose governed model endpoints |
    • Deploy behind Model Serving (or cloud equivalent).
    • Protect with catalog-level ACLs, network policies, and request logging.
    | External apps can call for predictions without direct data access. | | Automate audits & drift detection |
    • Scheduled jobs that flag:  – Tables without tags / owners  – Shares approaching token expiry  – Models trained on untagged data
    • Pipe findings to Slack / JIRA for triage.
    | Governance-as-code keeps guard-rails from eroding over time. | @@ -131,4 +131,4 @@ The AI race rewards the companies that can move fast without surrendering their Do those three things and you flip the script: instead of pushing raw tables out to a black-box vendor, you invite algorithms, fine-tuning jobs, and BI tools into a tightly controlled environment. The result is faster experimentation (no week-long data exports), fewer compliance nightmares (every read is logged and revocable), and zero re-platform tax when the next cloud, model, or regulation arrives. -In short, **bringing AI to your data—under open, governed standards—isn’t just best practice; it’s the only sustainable data strategy for the decade ahead.** Adopt it now, and each new AI breakthrough becomes an easy plugin rather than a risky migration. Your teams keep innovating, your security team keeps sleeping, and your customers keep trusting you with their data. +In short, **bringing AI to your data—under open, governed standards—isn't just best practice; it's the only sustainable data strategy for the decade ahead.** Adopt it now, and each new AI breakthrough becomes an easy plugin rather than a risky migration. Your teams keep innovating, your security team keeps sleeping, and your customers keep trusting you with their data. From 60f14550c6e2f63cd2727bc9dfdb97bd9f1a84af Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Mon, 28 Apr 2025 09:51:20 -0700 Subject: [PATCH 09/12] Correction to unicode character - 2 --- content/post/the-data-surrender-trap/index.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/post/the-data-surrender-trap/index.md b/content/post/the-data-surrender-trap/index.md index 3dda4e3..1022a40 100644 --- a/content/post/the-data-surrender-trap/index.md +++ b/content/post/the-data-surrender-trap/index.md @@ -19,8 +19,8 @@ Generative AI has lit a fire under every product road-map. Faced with “ship it Handing raw customer data to a third party introduces two long-term headaches: -1. Governance and compliance risk – once data leaves your perimeter, you lose direct control over how long it's stored, where it resides, and who can see it. A single mis-configuration or model-training clause could violate GDPR, HIPAA, or internal policy. -2. Technical debt – the day you need to swap providers, migrate regions, or delete a customer record, you discover tight coupling in schemas, pipelines, and security controls that were never designed for portability. +1. Governance and compliance risk - once data leaves your perimeter, you lose direct control over how long it's stored, where it resides, and who can see it. A single mis-configuration or model-training clause could violate GDPR, HIPAA, or internal policy. +2. Technical debt - the day you need to swap providers, migrate regions, or delete a customer record, you discover tight coupling in schemas, pipelines, and security controls that were never designed for portability. 3. Technical debt - having to synchronize data between multiple vendors and your own systems, which can lead to data inconsistencies and increased complexity. ## Best practices: bring the AI to the data, not the data to the AI @@ -62,10 +62,10 @@ With these open standards in place, any platform that respects them can satisfy Databricks' Lakehouse architecture assembles the pieces in one stack: -- **Delta Lake** – Open-source ACID tables on cloud object storage. You keep data in your S3/ADLS/GCS buckets; Databricks adds versioning, upserts, and time-travel without changing file formats. -- **Unity Catalog** – A multicloud metastore that applies table/row/column permissions, tags, and audit logs across SQL, Python, BI dashboards, and ML pipelines. Governance once, enforced everywhere. -- **Delta Sharing** – The first open protocol for zero-copy sharing. Providers grant token-based access to live tables; recipients query in Spark, Pandas, Power BI, or even Snowflake without relocating data. Access is revocable in seconds. -- **MosaicML + Databricks Model Serving** – High-efficiency training and hosting of LLMs inside the Lakehouse. You fine-tune open-source or foundation models on proprietary data that never leaves your cloud account, then expose a governed HTTPS endpoint. All lineage (data → model → endpoint) is captured in Unity Catalog. +- **Delta Lake** - Open-source ACID tables on cloud object storage. You keep data in your S3/ADLS/GCS buckets; Databricks adds versioning, upserts, and time-travel without changing file formats. +- **Unity Catalog** - A multicloud metastore that applies table/row/column permissions, tags, and audit logs across SQL, Python, BI dashboards, and ML pipelines. Governance once, enforced everywhere. +- **Delta Sharing** - The first open protocol for zero-copy sharing. Providers grant token-based access to live tables; recipients query in Spark, Pandas, Power BI, or even Snowflake without relocating data. Access is revocable in seconds. +- **MosaicML + Databricks Model Serving** - High-efficiency training and hosting of LLMs inside the Lakehouse. You fine-tune open-source or foundation models on proprietary data that never leaves your cloud account, then expose a governed HTTPS endpoint. All lineage (data → model → endpoint) is captured in Unity Catalog. Because compute clusters run inside your VPC, and storage stays in your buckets, data residency and encryption standards remain under your control. The Lakehouse “brings compute to data,” satisfying the four guard-rails by design. @@ -102,7 +102,7 @@ Key take-aways: All other layers—compute, governance, storage—live inside your VPC / cloud account, so raw data never leaves your perimeter unless you explicitly share it through the Delta Sharing gateway. -## Putting It into Practice – an Up-to-Date Migration & Safe-Sharing Playbook +## Putting It into Practice - an Up-to-Date Migration & Safe-Sharing Playbook Each step below tightens control, reduces copies, and shows how to give an external AI vendor only the data they truly need—without falling into the data-surrender trap. @@ -112,16 +112,16 @@ Each step below tightens control, reduces copies, and shows how to give an exter | Land everything in open, governed tables |
    • Convert CSV/Parquet to Delta / Iceberg with schema enforcement & time-travel.
    • Store in your S3 buckets / Google Cloud Storage; enable server-side encryption and object-lock.
    | Open formats + immutable history make later audits and deletions possible. | | Switch on a unified catalog |
    • Unity Catalog / Lake Formation / Purview / Dataplex / Lakekeeper.
    • Import IAM groups, apply column masks, row filters, dynamic data tags (“pii = true”).
    | One policy engine ≫ dozens of per-tool ACLs. | | Harden the perimeter |
    • Private subnets, VPC peering, and storage firewall rules so only approved compute can touch raw data.
    • Disable public buckets & open egress unless justified.
    | Keeps “shadow ETL” from copying data out the side door. | -| Safely share with an external AI vendor (zero-copy) |
    1. Minimise first – aggregate, pseudonymise, or drop columns the vendor doesn't need.
    2. Create a Share (Delta Sharing / Iceberg REST / Arrow Flight):  
      • Grant only the filtered table or view.
      • Attach row-level filters & column masks.
      • Issue a time-boxed bearer token (7-, 30-, or 90-day TTL) and pin it to the vendor's IP range. Databricks DocumentationDatabricks
    3. Contract & controls – DPA, usage policy, no onward sharing.
    4. Monitor – streaming audit of every query; set alerts for unusually large scans.
    5. Revoke or rotate the token the moment the engagement ends (one CLI/API call).
    | Zero-copy protocols let the vendor query live tables without replicating them. Instant revocation closes the door the second you're done. | +| Safely share with an external AI vendor (zero-copy) |
    1. Minimise first - aggregate, pseudonymise, or drop columns the vendor doesn't need.
    2. Create a Share (Delta Sharing / Iceberg REST / Arrow Flight):  
      • Grant only the filtered table or view.
      • Attach row-level filters & column masks.
      • Issue a time-boxed bearer token (7-, 30-, or 90-day TTL) and pin it to the vendor's IP range. Databricks DocumentationDatabricks
    3. Contract & controls - DPA, usage policy, no onward sharing.
    4. Monitor - streaming audit of every query; set alerts for unusually large scans.
    5. Revoke or rotate the token the moment the engagement ends (one CLI/API call).
    | Zero-copy protocols let the vendor query live tables without replicating them. Instant revocation closes the door the second you're done. | | Move internal ML pipelines onto the platform |
    • Use Spark + MosaicML (or SageMaker/Vertex/Azure ML) inside the governed workspace.
    • Log models to a central registry; tag each with source-data lineage.
    | No more exporting giant CSVs to Jupyter on someone's laptop. | | Expose governed model endpoints |
    • Deploy behind Model Serving (or cloud equivalent).
    • Protect with catalog-level ACLs, network policies, and request logging.
    | External apps can call for predictions without direct data access. | -| Automate audits & drift detection |
    • Scheduled jobs that flag:  – Tables without tags / owners  – Shares approaching token expiry  – Models trained on untagged data
    • Pipe findings to Slack / JIRA for triage.
    | Governance-as-code keeps guard-rails from eroding over time. | +| Automate audits & drift detection |
    • Scheduled jobs that flag:  - Tables without tags / owners  - Shares approaching token expiry  - Models trained on untagged data
    • Pipe findings to Slack / JIRA for triage.
    | Governance-as-code keeps guard-rails from eroding over time. | **Result**: engineers still use the notebooks, SQL editors, and BI dashboards they love—but every byte of sensitive data stays in your buckets, under traceable, revocable control. External AI vendors get exactly the slice you permit, for exactly as long as you permit, with a full audit trail to keep everyone honest. -## Conclusion – Bring AI to Your Data and Future-Proof the Business +## Conclusion - Bring AI to Your Data and Future-Proof the Business The AI race rewards the companies that can move fast without surrendering their crown-jewel data. The way to do that is simple—but non-negotiable: From 0d3a4c12c64df0305fc434eb21f61365850f570f Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Mon, 28 Apr 2025 10:03:53 -0700 Subject: [PATCH 10/12] Correction to unicode character - 3 --- content/post/the-data-surrender-trap/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/post/the-data-surrender-trap/index.md b/content/post/the-data-surrender-trap/index.md index 1022a40..2ef868c 100644 --- a/content/post/the-data-surrender-trap/index.md +++ b/content/post/the-data-surrender-trap/index.md @@ -97,8 +97,8 @@ Key take-aways: - External AI vendors have two strictly-controlled entry points -- Model-Serving API (top) They can request predictions from your governed endpoint—no direct data access required. -- Delta Sharing (middle-right) If a vendor truly needs training or feature data, you grant a scoped, revocable token that exposes only the tables/columns you approve. +- Model-Serving API - They can request predictions from your governed endpoint—no direct data access required. +- Delta Sharing - If a vendor truly needs training or feature data, you grant a scoped, revocable token that exposes only the tables/columns you approve. All other layers—compute, governance, storage—live inside your VPC / cloud account, so raw data never leaves your perimeter unless you explicitly share it through the Delta Sharing gateway. @@ -112,10 +112,10 @@ Each step below tightens control, reduces copies, and shows how to give an exter | Land everything in open, governed tables |
    • Convert CSV/Parquet to Delta / Iceberg with schema enforcement & time-travel.
    • Store in your S3 buckets / Google Cloud Storage; enable server-side encryption and object-lock.
    | Open formats + immutable history make later audits and deletions possible. | | Switch on a unified catalog |
    • Unity Catalog / Lake Formation / Purview / Dataplex / Lakekeeper.
    • Import IAM groups, apply column masks, row filters, dynamic data tags (“pii = true”).
    | One policy engine ≫ dozens of per-tool ACLs. | | Harden the perimeter |
    • Private subnets, VPC peering, and storage firewall rules so only approved compute can touch raw data.
    • Disable public buckets & open egress unless justified.
    | Keeps “shadow ETL” from copying data out the side door. | -| Safely share with an external AI vendor (zero-copy) |
    1. Minimise first - aggregate, pseudonymise, or drop columns the vendor doesn't need.
    2. Create a Share (Delta Sharing / Iceberg REST / Arrow Flight):  
      • Grant only the filtered table or view.
      • Attach row-level filters & column masks.
      • Issue a time-boxed bearer token (7-, 30-, or 90-day TTL) and pin it to the vendor's IP range. Databricks DocumentationDatabricks
    3. Contract & controls - DPA, usage policy, no onward sharing.
    4. Monitor - streaming audit of every query; set alerts for unusually large scans.
    5. Revoke or rotate the token the moment the engagement ends (one CLI/API call).
    | Zero-copy protocols let the vendor query live tables without replicating them. Instant revocation closes the door the second you're done. | +| Safely share with an external AI vendor (zero-copy) |
    1. Minimise first - aggregate, pseudonymise, or drop columns the vendor doesn't need.
    2. Create a Share (Delta Sharing / Iceberg REST / Arrow Flight):
      • Grant only the filtered table or view.
      • Attach row-level filters & column masks.
      • Issue a time-boxed bearer token (7-, 30-, or 90-day TTL) and pin it to the vendor's IP range. Databricks DocumentationDatabricks
    3. Contract & controls - DPA, usage policy, no onward sharing.
    4. Monitor - streaming audit of every query; set alerts for unusually large scans.
    5. Revoke or rotate the token the moment the engagement ends (one CLI/API call).
    | Zero-copy protocols let the vendor query live tables without replicating them. Instant revocation closes the door the second you're done. | | Move internal ML pipelines onto the platform |
    • Use Spark + MosaicML (or SageMaker/Vertex/Azure ML) inside the governed workspace.
    • Log models to a central registry; tag each with source-data lineage.
    | No more exporting giant CSVs to Jupyter on someone's laptop. | | Expose governed model endpoints |
    • Deploy behind Model Serving (or cloud equivalent).
    • Protect with catalog-level ACLs, network policies, and request logging.
    | External apps can call for predictions without direct data access. | -| Automate audits & drift detection |
    • Scheduled jobs that flag:  - Tables without tags / owners  - Shares approaching token expiry  - Models trained on untagged data
    • Pipe findings to Slack / JIRA for triage.
    | Governance-as-code keeps guard-rails from eroding over time. | +| Automate audits & drift detection |
    • Scheduled jobs that flag: - Tables without tags / owners - Shares approaching token expiry - Models trained on untagged data
    • Pipe findings to Slack / JIRA for triage.
    | Governance-as-code keeps guard-rails from eroding over time. | **Result**: engineers still use the notebooks, SQL editors, and BI dashboards they love—but every byte of sensitive data stays in your buckets, under traceable, revocable control. External AI vendors get exactly the slice you permit, for exactly as long as you permit, with a full audit trail to keep everyone honest. From 5ed9282f101ac784e7069940df598875ef675ec1 Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Mon, 28 Apr 2025 10:06:05 -0700 Subject: [PATCH 11/12] Correction to unicode character - 4 --- content/post/the-data-surrender-trap/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/post/the-data-surrender-trap/index.md b/content/post/the-data-surrender-trap/index.md index 2ef868c..c5d9558 100644 --- a/content/post/the-data-surrender-trap/index.md +++ b/content/post/the-data-surrender-trap/index.md @@ -97,7 +97,7 @@ Key take-aways: - External AI vendors have two strictly-controlled entry points -- Model-Serving API - They can request predictions from your governed endpoint—no direct data access required. +- Model-Serving API - They can request predictions from your governed endpoint—no direct data access required. - Delta Sharing - If a vendor truly needs training or feature data, you grant a scoped, revocable token that exposes only the tables/columns you approve. All other layers—compute, governance, storage—live inside your VPC / cloud account, so raw data never leaves your perimeter unless you explicitly share it through the Delta Sharing gateway. From 8768a8e395de3b48222beb8684d121b63c61d2d4 Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sat, 3 May 2025 15:26:28 -0700 Subject: [PATCH 12/12] update woodpecker config --- .woodpecker.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index a5c6981..3aa04b0 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -3,13 +3,17 @@ steps: image: nixos/nix commands: - echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf - - nix profile install nixpkgs#gnused --impure + - nix profile install nixpkgs#gnused --impure - sed -i "s|base_url = \"https://www.softinio.com\"|base_url = \"https://$CI_COMMIT_BRANCH.softinio.com\"|" ./config.toml - nix build - nix flake show - ls result - nix develop --command wrangler pages deploy result --branch=$CI_COMMIT_BRANCH --project-name=softinio --commit-dirty=true - secrets: [ cloudflare_account_id, cloudflare_api_token ] + environment: + CLOUDFLARE_ACCOUNT_ID: + from_secret: cloudflare_account_id + CLOUDFLARE_API_TOKEN: + from_secret: cloudflare_api_token when: event: [push] branch: @@ -21,8 +25,11 @@ steps: - echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf - nix build - nix develop --command wrangler pages deploy result --project-name=softinio --commit-dirty=true - secrets: [ cloudflare_account_id, cloudflare_api_token ] + environment: + CLOUDFLARE_ACCOUNT_ID: + from_secret: cloudflare_account_id + CLOUDFLARE_API_TOKEN: + from_secret: cloudflare_api_token when: event: push branch: main -