The Modern Developer Workflow with Waypoint
October 5, 2020
Modern developers are under ever increasing pressure to deliver software applications to the business in record time. This means shorter development cycles and a push to have code production ready as early as possible. In addition, many development teams no longer throw the code over the metaphorical wall to be handled by operations and production support teams, but rather oftentimes own the entire end to end delivery chain.
In order to meet these lofty expectations, developers are adopting tools and processes which promise to allow them to focus more on what’s of critical importance – writing code. As development teams move towards the DevOps view of the world, focusing more on automation of manual tasks and improving software understandability across the SDLC become critical focus areas.
HashiCorp’s new open source project, Waypoint, fits nicely into this modern developer workflow by helping to provide a consistent and simplified experience for building, deploying, and releasing applications across a multitude of platforms. For teams that want to quickly and easily automate their end to end software delivery process, Waypoint gives developers the ability to reduce complexity and simplify their development workflow. Software delivery automation coupled with the ability to continuously and seamlessly debug across platforms and environments can give development teams the ability to improve the understandability of their software and optimize their workflows from build to bug fix.
Why You Should Simplify Build, Deploy, Release
Many organizations today are making the move from monolith to distributed, cloud-native architectures. It can be a daunting task for developers who now have to not only build or refactor these new applications, but also become familiar with many new areas of technology required to make these systems work from building containers, to generating Kubernetes YAML manifest files, and more. Any technology which can reduce the learning curve and simplify processes is almost always welcome with open arms. Waypoint aims to reduce the complexity of automating the delivery pipeline with a single simple and easy to use technology.
Developers want tools that fit into their existing ways of working. Waypoint hits the mark here in that it’s a command line tool which works similarly to other Hashicorp products. Simply calling ‘waypoint up’ with a configuration file defined will run the build, deploy, and release workflow defined in the configuration file. This makes it incredibly easy to fit into existing build and deployment tools like GitHub actions or Jenkins.
This also enables development teams to simplify the often complex toolchain used across build, deploy, and release processes. Many times there are multiple tools with their own sets of learning curves and maintenance work involved in a deployment pipeline. Waypoint gives teams an opportunity to reduce overall complexity and potentially technical debt that can build up over time. This allows teams to both shorten their time to value as well as create consistent processes across the organization.
How Observability and Debugging Are Employed Across the SDLC
Once build, deploy, and release tools have executed and your application is running in your dev, staging, or production environments, it is equally as important to have proper observability and monitoring tools in place to allow for quick discovery of defects or problem areas in your running application. If you look across most organizations today, Application Performance Monitoring (APM) tools have become standard in enterprise environments. They not only allow teams to monitor whether their applications meet SLA’s and performance requirements, but also allows teams to more easily identify potential issues in their code.
While APM tools may get you to a general problem area of the code, they are less helpful when developers need to dive into the inner workings of the code to analyze a problem in a running application. In addition, they are often less valuable in lower development environments where things might not work as expected much of the time. This leaves teams with the often used option of pushing a new log line to debug those pesky issues that aren’t easily solvable. Even with a fully automated pipeline from Waypoint, new releases can still take 10-30 minutes in a dev environment and usually much longer in downstream environments. Remote debugging of these applications across a combination of on-prem and cloud based environments can prove to be a complex task. The right tool for the job here is a remote debugging solution which allows teams to continuously debug on-demand in any environment without making changes to their code or having to push a new release.
How To Increase Developer Velocity
When we sum up the areas discussed so far, the underlying motivator for adopting these new technologies is to increase developer velocity and increase the speed at which teams can release new software. Automating build, deploy and release cycles frees up developers to focus more on writing code and building new features for their customers. Giving developers the tools they need to remotely debug those running applications whenever the need arises ensures that they aren’t wasting unnecessary cycles debugging newly deployed code which can oftentimes drag on for days or weeks at a time.
Most organizations adopting DevOps practices are now tracking key metrics such as MTTR (mean time to repair), deployment frequency, MLT (mean lead time for changes), and others which directly impact developer velocity. Adopting tools like Waypoint allow development teams to deploy more frequently ensuring that they can respond quickly to business changes. Remote debugging solutions like Rookout allow those teams to reduce their MTTR from days or weeks to minutes or hours. It’s important not to sit on the sidelines and wait for these metrics to improve on their own. Most organizations can benefit immensely from adopting new cutting edge technology that can save time and greatly improve the quality of software.
It’s become clear over the years that software service providers who adopt tools that fit effortlessly into developers existing workflows and processes typically experience the most success and highest levels of adoption by the developer community. Developers are constantly looking for new tools and processes that allow them to write better code while moving at a faster pace. Build, deploy, and release tools like Waypoint and others are democratizing delivery pipelines and lowering the time to value when automating application releases. Proper build, deploy and release methodologies coupled with the ability to dynamically and intelligently debug those deployed applications across any environment are keys to accelerating the software delivery process and will undoubtedly keep organizations on path to delight their customers.