One of the major pain points in DevOps is when infrastructure maintenance, configuration and other admin-related obstacles bring development work to a screeching halt. When writing and developing applications for the web, for example, many developers must spend more time than they like configuring YAML, SSH tunnels and other infrastructure-maintenance chores — and less time writing code. This is after spending weeks and often months mastering these admin-like skills before being able to do their real work.
SaltStack’s open source Plugin Oriented Programming (POP), introduced at SaltConf2019 in November, promises to be a potential pain reliever for these headaches.
POP, among other things, allows developers to work on code in decoupled codebases or repositories. Changes to an application are then automated to extend across several data center and often multicloud environments in the form of plugins. The standardized plugin configuration is thus applicable to all of the environments, thus eliminating much of the separate operations work in ensuring the new code works across the entire application ecosystem on which the application is deployed.
“The advantage POP offers is it can make more small codebases that can be maintained more efficiently by small teams. Small engineering teams that can focus on small codebases and therefore accelerate development,” — Thomas Hatch, SaltStack
In a nutshell, you write the code with Python through POP and the resulting codebase can be distributed across an organization’s environments minus much of the developer and operations folks’ work who otherwise have to repackage the code — usually manually — for compatibility.
Developers, for example, might have software deployed across a number of cloud environments and platforms, such as on Kubernetes platforms with Amazon Web Services (AWS) and virtual machines on Microsoft Azure. Integration might include using a number of different tools. But instead of having to use several different ways to manage separate interfaces, POP can serve as a single interface to accomplish multicloud and multiplatform software deployments.
In other words, POP is a development platform for pluggable code, explained Thomas Hatch, the technical founder and Chief Technology Officer for SaltStack. The other projects are expressions of pluggable code built on top of POP. POP allows you to build software that consists entirely of plugins.
“The advantage POP offers is can make more small codebases that can be maintained more efficiently by small teams. Small engineering teams that can focus on small codebases and therefore accelerate development,” Hatch said. “The underpinning philosophy is that we can achieve significant acceleration of innovation and development when we can decouple codebases because that allows individuals and small teams to push code forward more quickly.”
POP can be used to develop plugins monolithic applications, such as those that run on servers in traditional data centers, as well as in multicloud environments. “The approach behind POP is agnostic of whether you store public cloud configuration data, say CloudFormation YAML scripts, OS registry information, or Beethoven’s 4th. It is simply a unified data layer where development environments can tacitly exchange the configuration data they need to remain consistent,” Torsten Volk, an analyst for Enterprise Management Associates (EMA), said. Of course, whether there are any wrinkles for specific use cases remains to be seen, but the overall approach seems to be independent of development language and the type of target environment.”
An IT Framework Alternative
POP is also seen as serving as a viable IT framework for DevOps. As a centrally managed hierarchical layer for development languages, like Python, POP allows developers to access, save and update configuration parameters, EMA’s Volk said.
“When a developer starts a new project, their environment can automatically fetch all needed configuration parameters from a central hub, instead of having to use custom scripting and often overlooking one or two things that then come back to bite you in production,” Volk said. “Among the things that are really cool, POP is agnostic, whether you are developing plugins with Python for traditional data center servers, public clouds, or whatever, without having to also learn and master infrastructure constraints, such as having to learn YAML, etc. POP manages infrastructure as code without adding more ‘vocabulary’ — namely more YAML to learn.”
POP’s capability to run on monolithic applications is thus important, as many organizations’ DevOps make use of a network of traditional monolithic applications running in traditional data center, even as much of their infrastructure is ported to the cloud. “The monolithic applications have never completely gone away. Neither have traditional data centers,” Chris Gardner, an analyst for Forrester Research, said. “For DevOps professionals, being a monolith in a specific location matters a little less than automating the app and its infrastructure in a consistent way.”
A Salt-Centric Project
Hatch began the Salt-based open source project over eight years ago. While continuing to juggle maintaining the project while working on product development and innovations, such as the recently released SaltStack Enterprise 6.1, Hatch said his teams began to use POP to “creates modularity for developers while allowing them to efficiently maintain code while adding innovative and creative new capabilities,” Hatch said. “We’re working to liberate software development and open source innovation traditionally bogged down by tedious maintenance demands,” Hatch said.
Getting Started
-
Adding configuration data.
SaltStack is a sponsor of The New Stack.
Feature image via Pixabay.