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

June 20, 2018

The larger the company size, the higher the proportion of low IT performers, according to the State of DevOps: Market Segmentation Report from Puppet, based on the 2017 State of DevOps Survey data ...

June 18, 2018

An overwhelming 83 percent of respondents have concerns about deploying traditional firewalls in the cloud, according to Firewalls and the Cloud, a survey conducted by Barracuda Networks...

June 14, 2018

Despite the vast majority of cloud management decision-makers believing that DevOps and microservice enablement are important, very few believe that their organizations are capable of delivering them today — a gap that is costing the average enterprise $34 million per year, according to new report from the Ponemon Institute ...

June 12, 2018

Dev teams are doing their best to give the customers what they want, but oftentimes find themselves in between a rock and a hard place. Teams are struggling to get up to speed with new tools that are meant to make their lives easier and more realistic to hit deadlines. With spring cleaning season upon us, take time this season to tune up agile processes and continue the work of advancing the shift towards DevOps ...

June 11, 2018

The ability to create a culture of DevOps is critical to any organization's ability to deliver applications and services at a high rate of speed, but can we clearly and concisely answer the question: What exactly is DevOps? Despite the best intentions, some large companies are struggling to understand what DevOps actually is, and what it takes to fully implement its concepts and reap its benefits ...

June 07, 2018

The Twelve-Factor App is a methodology that offers a 12-step best practice approach for developers to apply when building software-as-a-service apps that are both scalable and maintainable in a DevOps world. As software continues to be written and deployed at a faster rate and in the cloud, development teams are finding there is more room for failure and vulnerabilities. This blog series will discuss how to build a Twelve-Factor app securely ...

June 05, 2018

Everyone understands the importance of code quality for applications, particularly when DevOps results in releases becoming faster and faster, reducing the room for error. The same issues increasingly apply to databases, which are a vital part of DevOps workflows. Fail to integrate the database into DevOps and you'll face bottlenecks that slow down your processes and undermine your efforts ...

June 04, 2018

DevOps and security traditionally have been siloed functions and security is often seen as a policing function by DevOps team members. However, more mature business leaders are trying to bridge the gap between the two functions to achieve business excellence. This theme was evident from our recent survey where 39% of respondents cited that DevOps and development teams care greatly about their cybersecurity posture, showing that the silo between security/IT and development teams is diminishing ...

May 31, 2018

DEVOPSdigest asked experts from across the IT industry for their opinions on the top tools to support DevSecOps. Part 5, the last installment, offers some final thoughts about "tools" that are not necessarily technology ...

May 29, 2018

DEVOPSdigest asked experts from across the IT industry for their opinions on the top tools to support DevSecOps. Part 4 covers code and data ...

Share this