Why Choosing the Right Data Path Can Make or Break DevOps Projects - Part 2
October 22, 2019

Jonathan Parnell
Insight Enterprises

Organizations need to make a concerted effort to "shift left" with their overall data architecture discussions. This shift allows more of the right questions about data to be asked, answered and incorporated early on in the design of the overall application.

Start with Why Choosing the Right Data Path Can Make or Break DevOps Projects - Part 1

Asking the Right Questions About Data

Part of this early collaborative work may involve asking key questions about data. These include the best ways for an application and its users to interact with the underlying data, such as:

■ How will data be ingested and from where?

■ How will we access the data?

■ How and where will we store it?

■ How do we update and/or maintain legacy databases as we build for new use cases?

■ What types of data will we have? How will the types change or be increased over time?

■ How will we query from it (and what are the most common queries users will want to run?)

■ How will we manage and scale the data in use?

■ How will we protect the data from data loss, disaster or corruption?

■ How will we secure the data?

If these questions sound a lot like features in a data lifecycle, you're right. But, such basic questions about data are often overlooked in the rush to deliver, integrate, test and deploy application code. So often, what happens instead is an application team creates a design, then hands it off saying, "Okay, now create a data architecture to support the application."

This fundamental miss with data and collaboration at the start often leads to poor database architecture decisions later. It can also cause DevOps teams to resort to workarounds to accommodate such wrong architecture choices made at the start. This may cause some development teams to choose to circumvent DBA involvement altogether. In this case, they might even find themselves opting to use public cloud services instead (or some other types of data management) to support their application.

Instead, application teams should choose the path of early collaboration between developers and all functions of IT (including DBAs). This approach can offer better DevOps outcomes. It also helps move organizations toward a future where data architects provide an effective "bridge" between all parties critical to the application's success: From the needs of developers to the platforms provided by DBAs and the underlying infrastructures needed to enable them.

Changing Skillsets, Changing Minds

As with most things DevOps-related, success at the data layer has as much to do with changing the education, mindset and culture toward database architectures and database deployment methods as it does with the specific steps in the DevOps pipeline.

For example, if most DBAs in your organization are narrowly focused in one area (such as an Oracle DBA or SQL Server admins), your organization may benefit from investing in education to close skill gaps. Such investment can help expand the knowledge and exposure of that workforce to DevOps practices or emerging database approaches to cloud-native application patterns.

It can also help some organizations to first identify those individuals in the organization who want to transform, innovate, and learn about new tools, methods and practices.

Hiring those with that expertise already in place is another option. When you hire new skillsets, however, the answer may not be just to hire several noSQL administrators. This tactic will not necessarily solve your data problem, either. It may be just as beneficial (or more so) to hire someone with little specific noSQL skills but who is good at thinking about data in a different way.

Business First, Technology Second

In our practice, we are often asked to weigh in on technology choices to support DevOps efforts in emerging areas like IoT, Big Data and advanced analytics. Organizations ask us about using traditional relational databases (SQL Server, Oracle, etc.) vs. NoSQL databases (MongoDB, Cassandra, etc.). They ask about the merits of one NoSQL iteration over another. They ask about how to manage persistent data in container environments. They even ask about workarounds when the data choices they've made cause other, unexpected problems.

We do our best to answer these questions. But, whenever possible, we also tell organizations to back up a few steps and start, instead, from their business objectives:

■ What are you trying to accomplish?

■ What are your business drivers?

■ How do you hope data will be used in these contexts?

Answers to these questions can help you make better choices about the best data architecture to support your growing applications.

Ultimately, new tools and technologies can enable a lot of impressive data architectures. But, just throwing tools at the data problem is not enough. Early effort and investment in people, process and cross-departmental communication is just as important to a successful data outcome for any project.

Many of the discussions we have now are trying to take everyone back to the steps they skipped. This harks back to the fundamentals of software engineering: Addressing things early so you don't have problems later.

Unfortunately, data is the one component in the technology stack that you can't easily undo once you've chosen a specific path with your application's data architecture. When it comes to planning for data, it really is a "Pay Now" or "Pay Later" equation.

Isn't it best to take the time and choose your data path wisely rather than paying later for slowdowns or other issues with deployment and performance?

Jonathan Parnell is Senior Digital Transformation Architect at Insight, Cloud & Data Center Transformation
Share this

Industry News

July 01, 2020

JFrog announced the launch of ChartCenter, a free, security-focused central repository of Helm charts for the community.

July 01, 2020

Kong announced a significant upgrade to open source Kuma, Kuma 0.6, available today.

July 01, 2020

Compuware Corporation, a BMC company, announced new capabilities that further automate and integrate test data and test case execution, empowering IT teams to achieve high-performance application development quality, velocity and efficiency.

June 30, 2020

Couchbase announced the general availability of Couchbase Cloud, a fully-managed Database-as-a-Service (DBaaS).

June 30, 2020

Split Software announced new capabilities designed to accelerate the adoption of feature flags in large-scale organizations.

June 30, 2020

WhiteHat Security announced a discounted Web + Mobile Application Security bundle to help organizations secure the digital future.

June 29, 2020

Puppet introduced the public beta availability of Relay, an event-driven automation platform.

June 29, 2020

D2iQ introduced KUDO for Kubeflow to simplify and accelerate machine learning (ML) deployments on Kubernetes.

June 29, 2020

Codefresh announced $27M in new funding led by Red Dot Capital Partners.

June 25, 2020

Micro Focus announced the general availability of Visual COBOL 6.0 and Enterprise Suite 6.0, providing versatile application, process and infrastructure modernization solutions for today’s enterprise developer.

June 25, 2020

SaltStack announced new features available in SaltStack Enterprise 6.3 that integrate best-of-breed IT monitoring and vulnerability management solutions, including Splunk, Tenable, Qualys, Rapid7, and Kenna Security.

June 25, 2020

Keysight Technologies has completed the acquisition of Eggplant from The Carlyle Group.

June 24, 2020

JFrog unveiled new capabilities to address the growing problem of software distribution bottlenecks. The newly introduced CDN-based and Peer-to-Peer software package distribution mechanisms empower companies to overcome the challenge of frequently delivering large volumes of artifacts to internal teams and external clients.

June 24, 2020

Copado announced its Summer 20 release to accelerate, optimize and measure innovation delivery on the Salesforce platform.

June 24, 2020

Bugsnag launched Stability Center, a centralized location that offers a holistic view into stability stats and trends across releases for multiple client and server-side applications.