Improving DevOps Efficiencies by Building an Agile Data Tier
August 10, 2016

Michelle McLean
ScaleArc

The ability to react quickly to market changes and launch new features and functionality is critical to maintaining a competitive edge.
 
Yet today, DevOps teams must spend substantial time and resources dealing with database scalability. If they need to consider scalability implications every time they roll out new code, the agile process breaks down. Software rollout cycles can get bogged down in application complexity that requires applications to be changed to function with the various roles of database servers and to regulate traffic to ensure data being read from secondary servers is current; database provisioning requirements which can be time-consuming and inefficient, limiting agility; and a lack of visibility – not understanding what application behaviors cause databases to slow down, which increases the development time required to address those issues.
 
Using database load balancing software, DevOps teams can solve these problems by creating an agile data tier that guarantees scalability of their database stack. An agile data tier can slash development time from months to just weeks by eliminating the need to build database scalability functionality into each separate application, enabling database clusters to be easily built and shared at scale and ensuring visibility into database traffic.

Enable Automated Database Failover and Scalability Without Increasing App Complexity

To scale structured data, DevOps teams follow a very specific set of rules. Functionality such as replication-aware load balancing, read/write split, and caching must be programmed into applications for them to handle and take advantage of multiple database servers. Applications also need to understand how to fail over to the right server within a cluster for high availability (HA).

A lot of code must be created within an app for it to be able to handle high availability (HA) –taking up valuable development time. Likewise, building an app that understands database topology – to do read/write split and assist in automated failover – adds to application complexity.

While typical caching solutions – such as Memcached – can increase database speed and scalability, they add complexity at the application layer. With these solutions, developers must spend time writing code that can create, manage, and expire cache in NoSQL. They must also write the individual business rules that specify which type of data can be cached. Similarly, a lot of code must be created within an app for it to be able to handle high availability (HA) – again, taking up valuable development time.

Remove the Need for Application Modification

Database load balancing software transparently provides replication-aware load balancing and read/write split to any application. By monitoring the replication lag between primary and secondary servers, database load balancing software can intelligently distribute queries, making sure an application gets the freshest data from the secondary servers. DevOps teams can easily set the appropriate replication lag threshold for a particular application.

Database load balancing software also allows teams to analyze database traffic and find read queries that are good candidates for caching. They can then choose which queries they want to cache and for how long. The software will then cache query responses and serve them to the application from a transparent in-memory cache without any changes at the application layer.

DevOps teams can also enable automated failover – without changing a single thing at the application layer. The database load balancing software understands which queries are reads and which are writes/transactions. It load balances the reads across all available servers and routes the writes to the primary. If the primary fails, the database load balancing software can enable seamless cross-server or cross-data center failover, maintaining state and reducing app errors with no changes to your applications.

By removing database scalability from the application and using database load balancing software, you can:

■ Roll out applications faster, since they are simpler to develop

■ Scale  database stack without requiring any new application coding

■ Focus staff attention on adding features and functionality that serve the business, instead of programming for data distribution

Provision Databases Seamlessly – Internal DBaaS

With database load balancing software, they can easily carve up a large database cluster into smaller pieces, giving each user the ability to run a certain amount of concurrent load on that database cluster. This approach provides a regulated, controlled load management stack – similar to a resource governor. They can slice and dice a cluster into smaller pieces, giving users access to their own sets of resources without disturbing anyone else on the cluster, essentially creating an internal DBaaS for their organization.

In this architecture, provisioning a new database endpoint takes only a few seconds compared with minutes or even hours when using an individual VM for each developer – similar to Amazon’s RDS that essentially provides a database ‘instance’ as a service.

With an internal DBaaS, teams can provide their application developers with an already highly redundant environment, ensuring that developers and QA are not interrupted due to database downtime. Teams also get access to very deep SQL analytics that help them test their applications better and identify potential application problems before moving into production.

Build New Applications, Scale and Solve Problems Faster and More Effectively

By decreasing application complexity, database load balancing software lets DevOps teams scale more effectively, benefit from DBaaS, and get the control and visibility needed to achieve results faster. Because database scalability functions are now out of the application, application design is simpler, making it easier to develop and build new applications. DevOps teams effortlessly provision databases to test your application’s functionality and benchmark performance better, with greater visibility into what the application is doing with the database.

With increased application resiliency, better use of database resources and enhanced system performance, organizations can speed the development process, improve overall efficiencies and gain business advantage.

Michelle McLean is VP of Marketing at ScaleArc.

The Latest

October 18, 2018

Are applications teams prepared to manage the chaos arising from an ever-growing landscape of heterogeneous deployment types? A recent survey of application and operations professionals sought to better understand how the industry is shifting and what the future of DevOps might look like. Here is what the survey uncovered ...

October 16, 2018

More than half of organizations have a dedicated DevOps team to help them better implement agile strategies, accelerate release cycles and ensure continuous development. However, databases have a habit of holding DevOps back ...

October 15, 2018

Test Environment Management can save organizations close to $10,000 for each release, yet only four percent of large enterprises have fully integrated TEM processes into organizational DNA, according to the 2018 Test Environment Management Survey released by EMA and Plutora ...

October 11, 2018

Agile is indeed expanding across the enterprise and there was a significant jump from last year to this year in the percentage of respondents who indicated that all or almost all of their teams were agile, according to the State of Agile 2018 report from CollabNet ...

October 09, 2018

Adopting a modern application architecture is critical to business success and a significant driver of profit growth in today’s digital economy, according to the results of a global survey of IT and business executives released by CA Technologies and conducted by Frost & Sullivan ...

October 04, 2018

How do you integrate tools to enable shift-left performance? The following tools will simplify maintenance, can be managed in a centralized way, and provide an easy-to-use UI to comprehend results ...

October 03, 2018

Focusing at the API layer of an application can help enable a scalable testing practice that can be efficiently executed as part of an accelerated delivery process, and is a practice that can be adopted and enabled at the earliest possible stages of development — truly shifting left functional testing. But what about performance testing? How do we enable the shift left of nonfunctional testing? Here, we explore what this means and how to enable it in your organization ...

October 01, 2018

As businesses look to capitalize on the benefits offered by the cloud, we've seen the rise of the DevOps practice which, in common with the cloud, offers businesses the advantages of greater agility, speed, quality and efficiency. However, achieving this agility requires end-to-end visibility based on continuous monitoring of the developed applications as part of the software development life cycle ...

September 27, 2018

Imagine that you are tasked with architecting a mission-critical cloud application. Or migrating an on-premise app to the cloud. You may ask yourself, "how do the cloud savvy companies like Airbnb, Adobe, SalesForce, etc. build and manage their modern applications?" ...

September 26, 2018

In a DevOps evolution, there are many paths to success, but even more that lead to failure, according to the 2018 State of DevOps Report from Puppet ...

Share this