Implementing Continuous Delivery with Screwdriver

Continuous Delivery is the Holy Grail driving many companies to initiate Agile and DevOps programs with the hope for rapid software development, enhancements, and fixes. In a competitive business world, quality applications are a big differentiator between the top organizations and those merely treading water. CD helps enterprises manage their development process in a more efficient manner.

Screwdriver is an application from Yahoo that facilitates Continuous Delivery; the company recently released it into open source status. Let’s take a closer look at the software to see if its features make it worthy of exploration as part of your company’s CD program.

A Closer Look at Screwdriver

Offering scalable continuous delivery, Screwdriver is a tool well-suited for organizations with a widely distributed application infrastructure. Yahoo developed the app for its own array of internal applications. It is possible they are open sourcing it before the company is fully acquired by Verizon.

James Collins, Yahoo’s senior director of engineering commented on the tool’s major advantages. “Screwdriver handles over 25,000 builds per day and 12,000 daily Git commits as a single shared entry point for Yahoo. It supports multiple languages and handles both virtual machine and container-based builds and deployment,” said Collins. Enterprises with large development teams stand to benefit from the application as part of their own CD initiatives.

The application’s architecture is relatively straightforward. A front-end manages handles users input and receives status messages from the rest of the software. The back-end includes a stateless API, which controls and launches builds and other functionality. Docker Swarm is used within Screwdriver to manage environment clusters.

According to Collins, the three main benefits of the application are making deployment pipelines easy, optimizing for trunk development, and to facilitate change rollbacks. Yahoo wanted their trunks shippable, so they leveraged Selenium to handle automated testing as part of Screwdriver’s build process. In short, Screwdriver allows for the efficient management of the build process – an important component of any Continuous Delivery initiative.

Screwdriver has been in use at Yahoo for over five years and is a major part of the company being able to implement CD and DevOps. Collins feels the tool lets programmers fully control the state of an application’s production infrastructure – a key part of the company’s DevOps organizational structure.

The Future of an Open Source Screwdriver

Yahoo is still planning to make enhancements to Screwdriver. These include the storage of build metadata, improved metrics and reporting, system templates, as well as more detailed log analysis. All these features are expected to let companies better refine their Continuous Delivery processes.

With a great proprietary CD-optimized build tool, what prompted Yahoo to release the application to the vibrant open source community? It appears to be an act of charity with a potential benefit to many organizations hoping to implement Continuous Delivery. These companies need to fully explore what Screwdriver brings to the table to ensure they are able to stay competitive with the rest of the business world.

James Collins sums up how Screwdriver enabled CD at Yahoo. “Yahoo’s engineering has modernized as it has embraced Continuous Delivery as a strategy for improving product quality and engineering agility. All our active products deliver from commit to production with full automation and this has greatly improved Yahoo’s ability to deliver products,” said Collins.

Keep returning to the Betica Blog for additional news and insights from the robust world of software development. Thanks for reading!

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.