PostgreSQL — an Enterprise Database Alternative to Oracle

Many enterprises still rely on Oracle as their relational database of choice. This decision largely makes sense, considering Oracle’s robust feature set and excellent performance handling huge amounts of data. However, with the rise in popularity of open source software solutions, many firms are now looking for an alternative to a proprietary RDMBS, like Oracle. Enter PostgreSQL.

One of the most popular open source relational database systems, PostgreSQL (or simply Postgre) boasts many of the same features as Oracle, most importantly enterprise-level performance. Companies are able to save significant money leveraging Postgre instead of the proprietary Oracle. While MySQL is another worthy open source option, it works better when used on smaller projects or for developers first learning relational database design and programming.

Let’s look more closely at PostgreSQL and see if it makes sense as another tool on your next open source development project.

PostgreSQL — Features and Functionality

PostgreSQL offers support for most of the core SQL:2011 standard and includes most SQL:2008 data types. The open source database provides many of the standard SQL features familiar to programmers, including foreign keys, views, triggers, joins, and stored procedures. Large data objects in the BLOB format are handled, so you can store rich media data (video, audio, etc.) within a relational database.

The database also supports a variety of enterprise level features, making it worthy of consideration as an alternative to Oracle. Multi-version Concurrency Control is vital for databases with heavy traffic, as is full ACID compliance. Online backups, asynchronous replication, and nested savepoints are other functionality in-demand from a high-end database.

Most popular operating systems run Postgre; most notably Linux, UNIX, Mac OS X and Windows. Programming interfaces exist for a variety of languages — Java, C/C++, the .NET Framework languages, Perl, Python, Ruby, and more. PostgreSQL regularly wins the Linux Journal Editors’ Choice Award for best RDBMS.

If you need to extend the database’s functionality, Postgre includes its own PL/SQL similar to Oracle. You are also able to write stored procedures and triggers in C for an added flexibility boost. Its continued status as an open source project means a robust and helpful community exists whenever questions or issues arise.

Is Postgre truly an Enterprise Replacement for Oracle?

Upon its first release in the mid to late 90s, Postgre’s performance wasn’t anything to write home about. Even the other major open source RDBMS option, MySQL, was faster, let alone Oracle and SQL Server. Over time and with programming skills of the open source community, the tables have turned. More recent benchmarks now show Postgre rivaling Oracle in query performance and surpassing MySQL as well.

When considering all the costs incurred on any large development project, proprietary database licensing definitely stands out. This is one reason many companies are now using PostgreSQL on projects instead of Oracle or Microsoft SQL Server. ROI happens much faster when leveraging open source software, like Postgre, compared to proprietary alternatives.

With Oracle no longer able to claim significant advantages in performance or functionality compared to PostgreSQL, businesses of all sizes need to consider going the open source route for the RDBMS on their next database project.

Check out the next edition of the Betica Blog for additional insights into the world of software development and quality assurance.

The V-Model Software Development Methodology extends the Waterfall Process

Even with the popularity of modern software development methodologies like DevOps and Agile, those processes don’t work best for all project scenarios. Some mature organizations still prefer the venerable Waterfall method with its sharply defined phases occurring in a sequential flow. Still, a design or requirements mistake in an earlier phase can be extra costly to fix, as we’ve previously noted.

What if there was a software development process combining the phases of the Waterfall method with the interactivity of Agile? The V-Model methodology provides well-defined phases, as validation and verification occurs each step of the way. With superior software products in mind, let’s take a closer look at the V-Model.

Giving Equal Weight to Design and Validation

V-Model-Development

While the Waterfall methodology follows a linear path from requirements gathering through implementation and finally to testing and validation, the V-Model features two pathways. The descending path is where the project gets defined while the ascending path focuses on the validation phases. The coding or implementation phase happens at the bottom of the two paths.

This “V” shape nicely illustrates the relationship between each phase in the project definition path and its partner in the testing and integration path. Validation and interaction between the development, QA, and business stakeholder teams is expected to occur during each phase as the project gets defined. This helps ensure nothing gets missed that ends up being a costly fix after the fact; an event happening far too often in projects following the Waterfall methodology.

This model emphasizes the creation of testing plans and operational implementation strategies at the beginning of a project, so they are able to be modified as the scope of a project changes during its lifecycle. It truly gives equal weight to the entire validation of any software project.

Enhancing Waterfall with a DevOps Approach?

Considering the interaction occurring during every phase of a V-Model software project, some observers see it as a version of the Waterfall methodology appropriate for today’s highly-collaborative DevOps era. Test plans are continuously developed from the beginning of the project, as QA engineers work closely with their software engineering counterparts ensuring every scenario is handled. The same interaction happens with the network and operations personnel responsible for the application in production.

Some companies still prefer the flexibility offered by a complete Agile approach, where incremental parts of application are developed to completion, but it is obvious that methodology still doesn’t work for all software development scenarios. Other firms require the formality of the phases within the Waterfall methodology, but still need a more versatile approach to better handle sudden changes in scope. The V-Model allows this freedom while placing emphasis on collaboration between all teams; something valued as a strength of DevOps.

For software development shops looking for a nice mixture of a formal software methodology with a focus on flexibility and testing throughout a project’s lifecycle, the V-Model is worthy of further exploration. Stay tuned to the Betica Blog for additional insights on the world of software engineering and QA.

Add some Varnish to speed up your Web Applications

As worldwide Web usage continues to grow by leaps and bounds, websites are responsible for handling more users — and more importantly — more data. Companies developing web applications need to ensure their sites are able to provide a compelling experience to their audience. This becomes more difficult when considering the massive amounts of data required to support Internet video streaming and rich media content delivery.

With gigabit Internet networks rapidly becoming the norm, expect the stress on high-traffic websites to only increase over time. This is why software like Varnish is becoming more important for accelerating website performance over the venerable HTTP protocol. Since the development of faster websites is important, let’s take a closer look at Varnish.

Varnish Cache is an HTTP Accelerator

An open source cache serving as an HTTP accelerator, Varnish’s first release became available in 2006. Varnish Software, the company behind the accelerator, provides commercial support for the cache as well as other paid products, including an advanced version of the cache known as Varnish Plus. The company also offers the Varnish API Engine, a commercial solution supporting high-traffic APIs hosted in a scalable online environment.

Like many other cache products, Varnish keeps website data in memory, so it is easily accessible by a web request without having to retrieve the data from a server. The software uses a threaded model, with one thread essentially dedicated to each web connection. An included configuration language gives network engineers more options to control cache behavior and performance — an advantage over similar HTTP accelerators.

Using Varnish helps high-traffic websites, most notably the social media giants, Facebook and Twitter, handle huge amounts of simultaneous users with nary an issue. Varnish also includes advanced load balancing functionality which is vital for optimizing overall server performance. The software is especially popular among content delivery networks as well.

Supporting High-end Software Development Companies

Any company looking at developing a web application with a ton of rich media content, including online gaming, video sites, and music streaming, would benefit from adding Varnish to their site’s architecture. An online video game is only as good as its perceived performance with multiple users simultaneously connected and interacting. An app must handle this interactivity between users while also providing a compelling visual and aural experience.

Server hiccups, buffering, and general slowness adversely impacts gameplay, which leads to disgruntled customers filling social media networks with complaints. Obviously, this leads to fewer players and less revenue for the game developer. This same scenario can play out with any high-traffic rich media-laden web application, thus the importance of making Varnish an important part of the site architecture.

Additionally, software companies developing publically available APIs realize the importance of their overall performance. The standard Varnish Cache works well for most examples of this use-case, but firms needing additional functionality need to consider the commercial Varnish API Engine for a boost in horsepower. 

Varnish’s benefits are obvious for any organization involved in the development of high-traffic — users and/or data — websites. It is an easy way to make the web fly.

Stay tuned for additional insights into the world of QA and software development at the Betica Blog.