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!

2017 Trends in Agile and DevOps

As the Agile software development methodology gets closer to its 20th anniversary, it has truly entered the mainstream, illustrated by its wide adoption at many enterprises and smaller businesses. The maturity of this application engineering practice is evidenced by novel organizational structures aimed at facilitating Agile, most notably Tribes. The growth of DevOps is another example of a business innovation – focused on collaboration – influenced by Agile.

What follows is a look at a few of the expected trends in both Agile and DevOps over the coming year. Maybe some of these ideas spark some inspiration in your own software projects?

Companies demanding Candidates with Agile Experience

A recent study from Udemy for Business, an online learning platform, noted the candidate skills most in demand at organizations in 2017. Commenting on the growth of Agile workplaces throughout many industries, Udemy forecasts that businesses desire candidates with experience working in an Agile office or on projects using the methodology. These companies also want candidates with the soft skills – strong communication, business acumen, etc. – to help them thrive in an Agile environment.

This prediction truly reveals how this methodology, first developed in the early 21st Century, squarely resides in the technology mainstream.

Agile leads to the Growth of “Citizen Developers”

There’s no denying that Agile, DevOps, and other methodology innovations made the process of software development significantly faster. One 2017 Agile trend is the growth of “citizen developers,” essentially employees working outside of a traditional IT role leveraging rapid application development (RAD) environments to quickly build software applications to serve a specific business need. Industry pundit, John Carione, commented on this trend for TechTarget.

“Agile methodologies changed how companies evaluate and implement technology. In 2017, we’ll see a new wave of Agile thinking enter the enterprise — this time with a focus on helping enterprises make strategic decisions more quickly. Employees — whether in IT, operations or a marketing department — will be able to use rapid application development and automated research tools to run quick tests and answer questions on their own. By more quickly understanding which processes and strategies are working and which are not, employees can be empowered to make intelligent decisions and adjust their business approaches on the fly,” said Carione.

Cyber Security becomes more Worrisome for DevOps Shops

IT security seems to be a constant worry for many CIOs, especially considering the growth of ransomware. Shops combining development and network operations under the DevOps moniker need to remain vigilant against hacking and other nefarious activity in 2017. This is the prediction told to TechRepublic by Reuven Harrison, CTO of the network security solution provider, Tufin.

He feels the need for compliance at many enterprises will force them to enhance their security, which may be difficult considering the rapid rate of project initiation and completion in the DevOps era. Ultimately, it is better to be safe than sorry. “We may see a major breach that gets tracked back to the DevOps approach, causing DevOps and security teams to become new best friends,” commented Harrison.

Be sure to return to the Betica Blog for additional insights from the ever changing world of software development. As always, thanks for reading!

2017 Trends in Software Development

With the New Year now upon us, it becomes a great time to take a look at some of the major trends impacting the world of software development. Understanding the shifts in a continually evolving industry helps position your application engineering team for success both now and in the future. Maybe your shop is already part of making these trends the new reality in the technology sector?

Chat-based Tech becomes Commonplace for Developers

Last year, we talked about the use of ChatOps for software development teams, allowing engineers and QA staff to use smart chatbots to streamline portions of the process. Users can easily start builds, test scripts, automate virtual environments, and more using a simple messaging app that keeps the entire team in the loop.

One of the most popular technology trends for 2017 is the increased use of chatbots and Business Bots throughout the business world. Expect chatbot usage to greatly expand among software developers. The era of DevOps requires efficiency, communication, and collaboration, with chatbots and ChatOps making life easier for all.

Another notable 2017 business trend is Advanced Collaboration, and the use of chatbots is helping to make this reality happen for developers and other departments within many technology businesses.

Mobile App Development grows in Importance at Businesses

Mobile apps have been around since before the introduction of the iPhone. Their increased use at businesses of all sizes – especially at smaller organizations – is a predicted trend in the tech world for 2017. Nearly half of all small businesses are expected to leverage mobile apps in their daily operations over the next year, according to the mobile development platform, Biznessapps.

Software development shops focusing on business apps need to look at ramping up their Android and iOS development efforts. Java remains the language of choice for the majority of Android projects, while Swift is gaining on Objective-C for iOS initiatives.

Docker becomes Mainstream at Development Shops

Many businesses strive for continuous deployment to stay competitive in the modern business world. This is one of the reasons for the popularity of Agile as a methodology and DevOps or Tribes as an organizational structure. This places the onus on development teams to leverage a wide variety of tools to make processes more efficient, like Docker for migrating applications across virtual production, development, and QA environments.

In 2017, Docker, as well as other package-based tools, are expected to become commonplace at shops across most business sectors. Vagrant, which works like Docker but is able to package an entire environment, is another similar application now becoming the standard for managing virtual development environments. Virtualization and packages are now a must for nearly all application engineering shops.

Functional Programming keeps Cloud Servers running Smoothly

As more and more mobile devices connect to the Internet – with their users expecting a seamless experience – servers on the Cloud need to prevent becoming bogged down in a massive amount of traffic and requests. Enter functional programming. Functional languages, like Clojure and Scala, are essentially stateless, allowing them to run more efficiently in parallel on servers using different processor cores or in distributed environments.

2017 is expected to see a rise in popularity of these and other functional programming languages, given the continued growth of the Cloud and mobile device connectivity.

Keep an eye on these trends throughout the upcoming year to see if they come to fruition. Check back regularly at the Betica Blog for additional dispatches from the world of software development. Thanks for reading!