A Developer’s Perspective of CI/CD Integrations with SwaggerHub
In my career thus far I’ve been very fortunate to have held positions at various stages along the software development lifecycle and beyond. It’s given me great insight and appreciation for the demands of today’s developers. Whether I’ve been speaking to frustrated developers on a product demo, or in the depths of the code base trying to create a product’s next best feature, one thing is certain – it is not easy.
As development methodologies become even leaner than we thought possible – and the schedules to design, create, test, and deploy new functionality are now as frequent as trains arriving at Times Square Station on 42nd Street – the question becomes clear: how do developers consistently churn out solid, reliable, and working features? Sometimes at a rate of multiple times a week, fifty-two weeks a year?
No, the answer is not the speed of their fingers across a keyboard, or a twelve-hour workday. It’s just this twelve-letter word: integrations. I never fully appreciated the power of integrations as a developer. I often wouldn’t even realize integrations were at play. (I guess that’s the definition of a great integration right there.) Although tools such as Jenkins, GitHub, and SwaggerHub are of course independent entities, the ease at which they work together is seamless. I’m a big fan of Sci-fi, and a recent documentary I saw detailed the idea of how humans may become more integrated with machines in decades to come. In software we’re already there. Developers now more than ever are interwoven with tools and technologies which are needed to keep pace with the velocity of software releases today.
This really became apparent to me during my time as a DevOps engineer on the SwaggerHub platform at SmartBear. The number of integrations at play and sheer volume of data continuously moving through the pipeline was both amazing and mind-boggling. All to produce a product which could be demonstrated without of a hint of complication.
A Developer’s API Platform
SwaggerHub is an API development platform which allows us to design and create APIs that effortlessly adhere to business and industry standards. Developers can design new or existing APIs which comply with quality guidelines, no matter how rigorous, without a second thought.
As a developer there were a few things which were important to me with any tool. Reusability, versioning, and documentation spring to mind. People tasked with creating features often don’t have the time to create mundane and common pieces of functionality, nor did I. With SwaggerHub, I don’t have to. Thanks to reusable components that can be adapted to updated standards and specs, I can quickly build solutions with code which I know works and meet quality criteria. Affording a developer more time is one of the greatest gifts a product can give!
Within SwaggerHub you can store all your API definitions in a central repository with real-time collaboration and commenting. There is peace of mind in knowing you’re working off the latest version of an API which in turn allows us to get on with what really matters. Speaking of which, SwaggerHub also offers document-generation capabilities. When I design and create an API, the corresponding documentation is being created every step of the way. This simple feature saves developers’ hours of tedious labor detailing and producing dreaded wiki pages.
SwaggerHub and Integrations
Knowing I have all these capabilities at my disposal is fantastic. But like every customer call in which the question is posed …what about integrations? Not only that, but how easily can I integrate with SwaggerHub? I’ll use that word again – seamless!
With this tool I really feel like it wants to give me something back. Or that the developers who work on it want to give me something back. It’s a tool for developers, made by developers. Integrations are configured at an organization level, so it’s all there, ready to go for me. GitHub? Check. Jenkins? Check. Azure DevOps? Check. All major API Gateway cloud providers? You guessed it. Check.
The Value of Automation in API Integration
Continuous Integration/Continuous Deployment or CI/CD is the buzzword in global technology, and there’s certainly a tools race to see who can provide the best capacity to integrate and operate within an existing pipeline that has stringent governance. Take Jenkins for example, with its estimated 15 million global users. With SwaggerHub and the OpenAPI definition it generates, the integration is effortless. As a developer, I can use the SwaggerHub Registry API to manage and update APIs and domains without the need to log on to the web app. Jenkins jobs can run frequently, updating our API repositories while we simultaneously continue to design the next great API.
Leveraging the integrations capabilities within SwaggerHub allows me to focus on the work that really matters – all the time. I have peace of mind, and confidence that our CI/CD pipeline and SwaggerHub handles the rest. And because SwaggerHub acts as my central repository, I know my documentation will be where I expect to find it. I know use cases will be updated and placed where they’re meant to be. And I know our repositories are fully up to date with standards adhered to.
But the best feeling is that I know I can expect this everyday with SwaggerHub.
Author: Aaron Fox.
This post was originally published in https://smartbear.com/blog/develop/a-developers-perspective-of-ci-cd-integrations-wi/