Cover of the The 'Right to Repair' Data Architecture with DataOps white paper

White Paper

The 'Right to Repair' Data Architecture with DataOps

A phone with a glued-in battery is annoying. A data architecture you cannot change is a career. Design for repair.

Most data architecture diagrams optimize for production performance and never for change. This paper shows what a data architecture looks like when the ability to repair it is a first-class requirement.

Chris Bergh Published Updated

Key takeaways

  • The canonical data architecture diagram — sources on the left, a lake, engineering, science, visualization and governance in the middle, customers on the right — describes production only. It says nothing about the process of changing production.
  • Data architects are given production requirements: performance, latency, load. They execute those well. The specifications leave out architecting for rapid change, so change is what the architecture is worst at.
  • A DataOps data architecture makes the steps to change what is in production a central idea: changes over time to code, servers, and tools, plus monitoring for errors, are first-class citizens in the design.
  • Three requirements are enough to force the change: update and publish changes to analytics within an hour without disrupting operations; discover data errors before they reach published analytics; create and publish schema changes in a day.
  • Meeting those requirements means separate but identical development, test, and production environments, plus orchestration and automation of testing, monitoring, and deployment of new analytics to production.
  • A DataOps Platform adds eight functions to the architecture: storage and revision control, history and metadata, authorization and permissions, environment secrets, DataOps metrics and reports, automated deployment, environment creation and management, and orchestrate/test/monitor.
  • Multi-location is the normal case, not the exception. A hub-and-spoke model puts the DataOps Platform at the hub, with agents in each site's environments returning test results, logs, and runtime information so testing is coordinated across sites.

The Production-Only View of Data Architecture

We’ve been attending data conferences for over 20 years. It has been common to see presenters display a data architecture diagram like the (simplified) one below (figure 1). A data architecture diagram shows how raw data turns into insights. As the Eckerson Group writes, “a data architecture defines the processes to capture, transform, and deliver usable data to business users.”

In our canonical data architecture diagram, data sources flow in from the left and pass through transformations to generate reports and analytics for users or customers on the right. In the middle, live all of the tools of the trade: raw data, refined data, data lakes/warehouses/marts, data engineering, data science, models, visualization, governance and more. Tools and platforms can exist in the cloud or on premises. Most large enterprise data architectures have evolved to use a mix of both.

Diagram titled Canonical Data Architecture. Source data files and databases on the left feed a large Cloud/On-Prem box containing a single Production Environment lane: Raw Lake, Data Engineering, Refined Data, Data Science, Data Viz., and Data Governance. An arrow on the right connects to Data Customers, shown as four person icons.
Figure 1: a typical production-only view of data architecture. One environment, no place to build a change, and nothing in the picture that tells you when it breaks.

When data professionals define data architectures, the focus is usually on production requirements: performance, latency, load, etc. Engineers and data professionals do a great job executing on these requirements. The problem is that the specifications don’t include architecting for rapid change.

They only think about production, not the process to make changes to production. A DataOps Data Architecture makes the steps to change what is in production a “central idea.” Thinking first about changes over time to your code, your servers, your tools, and monitoring for errors are first class citizens in the design.

Architecting for Change

Take this example. Mobile phone designs increasingly locate batteries in fixed locations underneath sensitive electronics. In many cases, batteries can no longer be easily accessed and replaced by a consumer. The “Right to Repair” movement advocates for policies that enable customers to fix the things that they own instead of throwing them away.

When managers and architects fail to think about architecting the production data pipeline for rapid change and efficient development, it is a little like designing a mobile phone with a fixed battery. You can end up with processes characterized by unplanned work, manual deployment, errors, and bureaucracy. It can take months to deploy a minor 20 line SQL change.

Building a data architecture without planning for change is much worse than building a mobile phone with a fixed battery. While mobile phone batteries are swapped every few years, your analytics users are going to want changes every day or sometimes every hour. That may be impossible with your existing data architecture, but you can meet this requirement if you architect for it. If data architectures are designed with these goals in mind, they can be more flexible, responsive, and robust. Legacy data pipelines can be upgraded to achieve these aims by enhancing the architecture with modern tools and processes.

A DataOps Data Architecture

Imagine if your data architects were given these requirements up front. In addition to the standard items, the user story or functional specification could include requirements like these:

  1. Update & publish changes to analytics within an hour without disrupting operations
  2. Discover data errors before they reach published analytics
  3. Create and publish schema changes in a day

If you are a data architect yourself (or perhaps you play one), you may already have creative ideas about how you might address these types of requirements. You would have to maintain separate but identical development, test, and production environments. You would have to orchestrate and automate test, monitoring, and deployment of new analytics to production. When you architect for flexibility, quality, rapid deployment, and real-time monitoring of data (in addition to your production requirements), you are moving towards a DataOps data architecture as shown in figure 2.

The DataOps data architecture expands the traditional operations-oriented data architecture by including support for Agile iterative development, DevOps, and statistical process control. We call these tools and processes collectively a DataOps Platform. The DataOps elements in our new data architecture in figure 2 are shown in shades of green.

Diagram titled DataOps Functional Architecture. The same Cloud/On-Prem box now holds three stacked lanes — Production Environment, Test, and Dev — each with its own Orchestrate, Monitor, Test arrow running left to right. A vertical Automated Deployment arrow pushes work up from Dev through Test to Production, and an Environment Creation and Management bar feeds all three lanes. Below sits a green DataOps Platform bar with five boxes: Storage and Version Control, History and Metadata, Auth and Permissions, Environment Secrets, DataOps Metrics and Reports, connected to a DataOps Team.
Figure 2: DataOps functional data architecture. The green elements are what production-only diagrams leave out — the environments a change moves through, and the platform that moves it.

Breakdown of the DataOps Architecture

A DataOps architecture contains support for environment creation and management. This enables separate development, test, and production environments, which in turn support orchestration, monitoring, and test automation. The software automates impact review and new-analytics deployment so that changes can be vetted and published continuously. Agents in each environment operate on behalf of the DataOps Platform to manage code and configuration, execute tasks, and return test results, logs, and runtime information. This enables the architecture to work across heterogeneous tools and systems. The DataOps Platform also integrates several other functions which support the goal of rapid deployment and high quality with governance:

FunctionWhat it doesExamples
Storage / Revision ControlVersion control manages changes in artifacts; essential for governance and iterative development.git, docker hub
History and MetadataManage system and activity logs.MongoDB
Authorization and PermissionsControl access to environments.Auth0
Environment SecretsRole-based access to tools and resources within environments.Vault
DataOps Metrics and ReportsInternal analytics provide a big-picture assessment of the state of the analytics and data team. We call this the CDO Dashboard.Tableau
Automated DeploymentMoving the code/configuration from one environment (e.g., a test environment) to a production environment.Jenkins, CircleCI
Environment Creation and ManagementTreat your infrastructure as code; be able to create places for your team to do work with all the required hardware, software, and test data sets they need.chef, puppet
Orchestrate, Test, MonitorAs your pipelines are running, orchestrate all the tools involved, test and monitor, and alert if something goes wrong.Airflow, Great Expectations, Grafana
The DataOps functional architecture diagram with vendor logos dropped into each element: Kubeflow, Airflow, Grafana, Prometheus, Great Expectations and Jupyter along the production Orchestrate, Monitor, Test arrow; Travis CI and Jenkins on the Automated Deployment arrow; Ansible, Puppet and Chef on Environment Creation and Management; docker and git under Storage; MongoDB under Metadata; Okta and Auth0 under Auth; HashiCorp Vault under Secrets; Tableau under Metrics. A grey box on the lower left is labelled Second Cloud/On-Prem Data Center.
Figure 3: the same architecture with example tools. Nothing here is exotic — the difference is that the tools are wired into one platform instead of eight disconnected ones.

Multi-Location DataOps Data Architecture

Companies are increasingly moving their work from on-premises to the cloud. Enterprises are choosing to have multiple cloud providers, as well. As a result, your data analytics workloads can span multiple physical locations and multiple teams. Your customers only see the result of that coordination. How can you do DataOps across those locations and teams and not end up with a “Data Ooooops”? Think of a “hub and spoke” model for your DataOps Data Architecture.

As shown in figure 4, the DataOps Platform is the hub for your distributed sites engaging in development and operations. Testing is also coordinated between the sites.

Diagram of two data centers side by side. Cloud/On-Prem #1 on the left holds Production, Test, and Dev environments, each running a DataOps Pipeline with an Agent. Cloud/On-Prem #2 on the right holds Production and Dev environments with their own agents. A double-headed arrow links the two production pipelines. Below both, a single green DataOps Platform bar with Storage and Version Control, History and Metadata, Auth and Permissions, Environment Secrets, and DataOps Metrics and Reports serves a DataOps Team.
Figure 4: multi-location DataOps data architecture. The pipelines stay where the data is; the platform, the tests, and the results are shared.

Building DataOps Into an Existing Data Architecture

Whether your current data architecture is on-prem or in the cloud or a mix of both; whether you have a standard environment or live in a multi-tool world, you can evolve your system to incorporate DataOps functionalities. You can build a DataOps Platform yourself or leverage solutions from the vibrant and growing DataOps ecosystem. DataOps can help you architect your data operations pipeline to support rapid development and deployment of new analytics, robust quality, and high levels of staff productivity.

You have the “Right to Repair” your data architecture — design for it!

Install Open Source DataOps TestGen — free, runs on a laptop, and profiles your first table in under an hour. It is the smallest useful piece of the architecture in this paper.


FAQ

What is the main point of this paper?

Data architectures are specified for production and never for change, which is why a twenty-line SQL change can take months to ship. A ‘right to repair’ data architecture treats the process of changing production as a central design idea: separate development, test, and production environments, orchestration, automated testing and monitoring, and automated deployment are architectural components, not afterthoughts.

What is a DataOps data architecture?

A DataOps data architecture expands the traditional operations-oriented architecture by adding support for Agile iterative development, DevOps, and statistical process control — collectively a DataOps Platform. Alongside sources, lakes, engineering, and visualization, it includes environment creation and management, orchestration, monitoring, test automation, automated deployment, and version control as first-class components.

What does ‘right to repair’ mean for a data architecture?

The Right to Repair movement advocates for policies that let customers fix the things they own instead of throwing them away. Applied to data, it means the architecture is built so the team responsible for a pipeline can change and fix it quickly. Failing to design for that is like designing a phone with a battery nobody can replace.

Why don’t standard data architecture diagrams help?

Because they show where data sits and how it moves in production, not the process for changing production. The canonical diagram — sources flowing in from the left, raw and refined data, lakes and warehouses, engineering, science, models, visualization and governance in the middle, customers on the right — is accurate and silent about deployment, testing, environments, and error detection.

What requirements should a data architect be given up front?

Three, in addition to the standard production items: update and publish changes to analytics within an hour without disrupting operations; discover data errors before they reach published analytics; and create and publish schema changes in a day. Those three force separate environments, automated testing, monitoring, and automated deployment into the design rather than leaving them to heroics.

What functions does a DataOps Platform add to the architecture?

Eight. Storage and revision control for artifacts; history and metadata for system and activity logs; authorization and permissions for environment access; environment secrets for role-based access to tools; DataOps metrics and reports for a big-picture view of the team; automated deployment between environments; environment creation and management as code; and orchestrate, test, and monitor across running pipelines.

What do agents do in a DataOps architecture?

Agents run in each environment and operate on behalf of the DataOps Platform. They manage code and configuration, execute tasks, and return test results, logs, and runtime information to the platform. Because the work happens locally and only results travel, the architecture works across heterogeneous tools and systems rather than requiring one vendor’s stack everywhere.

Why do you need separate development, test, and production environments?

Because publishing a change within an hour without disrupting operations requires somewhere safe to build and verify it first. Separate but identical development, test, and production environments let a change be created, tested against real data, and reviewed before deployment. Treat environment creation as infrastructure as code so a new workspace comes with the hardware, software, and test data it needs.

Can a DataOps architecture span multiple clouds and on-premises systems?

Yes, and workloads spanning multiple physical locations and multiple teams is now the common case as companies adopt several cloud providers alongside on-premises systems. Use a hub-and-spoke model: the DataOps Platform is the hub for distributed sites doing development and operations, and testing is coordinated between the sites so one team can see whether everything worked.

What is the CDO Dashboard?

The CDO Dashboard is internal analytics about the data team itself — a big-picture assessment of the state of the analytics and data organization, built from the metrics the DataOps Platform already collects while running pipelines. It is one of the functions integrated into the platform, alongside version control, metadata, permissions, secrets, and automated deployment.

How do you add DataOps to a data architecture you already have?

Incrementally. Whether the current architecture is on-premises, in the cloud, or a mix, and whether it is standardized or a multi-tool world, it can evolve to incorporate DataOps functionality. Build a DataOps Platform yourself or adopt solutions from the DataOps ecosystem, then use it to support rapid deployment of new analytics, robust quality, and higher staff productivity.

Get the PDF

The full paper is on this page. Fill in the form for a PDF copy to keep or share.

See it working on your data

Install open source DataOps TestGen and profile your first table today, or talk to us about your data quality program.