What is the role of ๐๐ฎ๐๐ฎ ๐๐ผ๐ป๐๐ฟ๐ฎ๐ฐ๐๐ in the Data Pipeline?
In its simplest form Data Contract is an agreement between Data Producers and Data Consumers on what the Data being produced should look like, what SLAs it should meet and the semantics of it.
๐๐ฎ๐๐ฎ ๐๐ผ๐ป๐๐ฟ๐ฎ๐ฐ๐ ๐๐ต๐ผ๐๐น๐ฑ ๐ต๐ผ๐น๐ฑ ๐๐ต๐ฒ ๐ณ๐ผ๐น๐น๐ผ๐๐ถ๐ป๐ด ๐ป๐ผ๐ป-๐ฒ๐ ๐ต๐ฎ๐๐๐๐ถ๐๐ฒ ๐น๐ถ๐๐ ๐ผ๐ณ ๐บ๐ฒ๐๐ฎ๐ฑ๐ฎ๐๐ฎ:
๐ Schema of the Data being Produced.
๐ Schema Version - Data Sources evolve, Producers have to ensure that it is possible to detect and react to schema changes. Consumers should be able to process Data with the old Schema.
๐ SLA metadata - Quality: is it meant for Production use? How late can the data arrive? How many missing values could be expected for certain fields in a given time period?
๐ Semantics - what entity does a given Data Point represent. Semantics, similar to schema, can evolve over time.
๐ Lineage - Data Owners, Intended Consumers.
๐ โฆ
๐ฆ๐ผ๐บ๐ฒ ๐ฃ๐๐ฟ๐ฝ๐ผ๐๐ฒ๐ ๐ผ๐ณ ๐๐ฎ๐๐ฎ ๐๐ผ๐ป๐๐ฟ๐ฎ๐ฐ๐๐:
โก๏ธ Ensure Quality of Data in the Downstream Systems.
โก๏ธ Prevent Data Processing Pipelines from unexpected outages.
โก๏ธ Enforce Ownership of produced data closer to where it was generated.
โก๏ธ Improve scalability of your Data Systems.
โก๏ธ Reduce intermediate Data Handover Layer.
โก๏ธ โฆ
Example implementation for Data Contract Enforcement:
1๏ธโฃ Schema changes are implemented in a git repository, once approved - they are pushed to the Applications generating the Data and a central Schema Registry.
2๏ธโฃ Applications push generated Data to Kafka Topics. Separate Raw Data Topics for CDC streams and Direct emission.
3๏ธโฃ A Flink Application(s) consumes Data from Raw Data streams and validates it against schemas in the Schema Registry.
4๏ธโฃ Data that does not meet the contract is pushed to Dead Letter Topic.
5๏ธโฃ Data that meets the contract is pushed to Validated Data Topic.
6๏ธโฃ Applications that need Real Time Data consume it directly from Validated Data Topic or its derivatives.
7๏ธโฃ Data from the Validated Data Topic is pushed to object storage for additional Validation.
8๏ธโฃ On a schedule Data in the Object Storage is validated against additional SLAs and is pushed to the Data Warehouse to be Transformed and Modeled for Analytical purposes.ย ย
9๏ธโฃ Consumers and Producers are alerted to any SLA breaches.
๐ Data that was Invalidated in Real Time is consumed by Flink Applications that alert on invalid schemas. There could be a recovery Flink App with logic on how to fix invalidated Data.
Leave your thoughts in the comment section ๐
--------
Follow me to upskill in #MLOps, #MachineLearning, #DataEngineering, #DataScience and overall #Data space.
Also hit ๐to stay notified about new content.
๐๐ผ๐ปโ๐ ๐ณ๐ผ๐ฟ๐ด๐ฒ๐ ๐๐ผ ๐น๐ถ๐ธ๐ฒ ๐, ๐๐ต๐ฎ๐ฟ๐ฒ ๐ฎ๐ป๐ฑ ๐ฐ๐ผ๐บ๐บ๐ฒ๐ป๐!
Join a growing community of Data Professionals by subscribing to my ๐ก๐ฒ๐๐๐น๐ฒ๐๐๐ฒ๐ฟ: https://t.co/qgNCnGtF4A
๐ช๐ต๐ฎ๐ ๐ถ๐ ๐๐๐ฏ๐ฒ๐ฟ๐ป๐ฒ๐๐ฒ๐ and why should you ๐น๐ฒ๐ฎ๐ฟ๐ป ๐ถ๐ ๐ฎ๐ ๐ ๐๐ข๐ฝ๐/๐ ๐/๐๐ฎ๐๐ฎ ๐๐ป๐ด๐ถ๐ป๐ฒ๐ฒ๐ฟ?
Today we look into the Kubernetes system from a bird's eye view.
๐ฆ๐ผ, ๐๐ต๐ฎ๐ ๐ถ๐ ๐๐๐ฏ๐ฒ๐ฟ๐ป๐ฒ๐๐ฒ๐ (๐๐ด๐)?
๐ญ: It is a container orchestrator that performs the scheduling, running and recovery of your containerised applications in a horizontally scalable and self-healing way.
Kubernetes architecture consists of two main logical groups:
๐ฎ: Control plane - this is where K8s system processes that are responsible for scheduling workloads defined by you and keeping the system healthy live.
๐ฏ: Worker nodes - this is where containers are scheduled and run.
๐๐ผ๐ ๐ฑ๐ผ๐ฒ๐ ๐๐๐ฏ๐ฒ๐ฟ๐ป๐ฒ๐๐ฒ๐ ๐ต๐ฒ๐น๐ฝ ๐๐ผ๐?
๐ฐ: You can have thousands of Nodes (usually you only need tens of them) in your K8s cluster, each of them can host multiple containers. Nodes can be added or removed from the cluster as needed. This enables unrivaled horizontal scalability.
๐ฑ: Kubernetes provides an easy to use and understand declarative interface to deploy applications. Your application deployment definition can be described in yaml, submitted to the cluster and the system will take care that the desired state of the application is always up to date.
๐ฒ: Users are empowered to create and own their application architecture in boundaries pre-defined by Cluster Administrators.
โ In most cases you can deploy multiple types of ML Applications into a single cluster, you donโt need to care about which server to deploy to - K8s will take care of it.
โ You can request different amounts of dedicated machine resources per application.
โ If your application goes down - K8s will make sure that a desired number of replicas is always alive.
โ You can roll out new versions of the running application using multiple strategies - K8s will safely do it for you.
โ You can expose your ML Services for other Product Apps to use with few intuitive resource definitions.
โ โฆ
โ๏ธHaving said this, while it is a bliss to use, usually the operation of Kubernetes clusters is what is feared. It is a complex system.
โ๏ธMaster Plane is an overhead, you need it even if you want to deploy a single small application.
Are you deploying your ML applications in Kubernetes? What are the main pain points you are facing? Let me know in the comments ๐
--------
Follow me to upskill in #MLOps, #MachineLearning, #DataEngineering, #DataScience and overall #Data space.
Also hit ๐to stay notified about new content.
๐๐ผ๐ปโ๐ ๐ณ๐ผ๐ฟ๐ด๐ฒ๐ ๐๐ผ ๐น๐ถ๐ธ๐ฒ ๐, ๐๐ต๐ฎ๐ฟ๐ฒ ๐ฎ๐ป๐ฑ ๐ฐ๐ผ๐บ๐บ๐ฒ๐ป๐!
Join a growing community of Data Professionals by subscribing to my ๐ก๐ฒ๐๐๐น๐ฒ๐๐๐ฒ๐ฟ: https://t.co/qgNCnGtF4A
/1 Why is a credit card called a โ๐๐ซ๐๐๐ข๐ญโ card?
Why is a debit card called a โ๐๐๐๐ข๐ญโ card?
An example of a debit card payment is shown in the diagram below. ๐
In this article, you will learn about Kubernetes security and architecture by reviewing reports from Chekov โ a tool designed to find misconfigurations before theyโre deployed
โค https://t.co/I7bDyIBDw1
Talos is a modern Linux distribution for running Kubernetes: secure, immutable, and minimal
Talos is fully open source & production-ready
All system management is done via an API - there is no shell or interactive console
โ https://t.co/d5s7Q3cekM
In this article, you will learn why PodSecurityPolicies never made it as a GA feature, why they had to be replaced and what you should consider going forward
โค https://t.co/k2z1kcUdFT
Kubernetes Services are not capable of load balancing long-lived connections such as gRPC
In this article, you will learn how to properly load balance your gRPC applications in Kubernetes by leveraging a service mesh
โค https://t.co/5Td8aBgJcc
dexter is an OIDC (OpenId Connect) helper designed to create a hassle-free Kubernetes login experience powered by Google or Azure as Identity Provider
All you need is a properly configured Google or Azure client ID & secret
โค https://t.co/4uca90IEvW
The AWS team released the ACK project, which allows users to create AWS services from within a Kubernetes cluster
In this tutorial, you will learn how to create an S3 bucket with a "Bucket" CRD
โ https://t.co/T0Li3G92VV