In this guest post, Steven Randolph introduces us to realMethods, a tool for  “DevOps Project Generation”. Enter Steven.

realMethods is the only vendor in the application generation space to generate entire DevOps projects in one step.  This project-as-code generation creates:

  • Application source code
  • Build files
  • Configuration files
  • CI YAML file(s)
  • Docker file(s) and image creation
  • Deployment through HashiCorp Terraform files

Every generated file is easily extended post-generation and its corresponding template can be modified pre-generation.  None of the files are proprietary and the contents of each are what a developer would have to otherwise create manually.

Provided as a Command Line Interface tool and web application, it uses a standard model-driven approach to generating the DevOps infrastructure. The platform abstracts 3 important core concepts which are then consolidated during generation time. They are:

  • Models
  • Tech stacks
  • Application options

Keeping these concepts separate increases the likelihood of reuse and loosely coupled architecture layers, as well as adaptability when tech stack languages and components come and go. Indeed, the goal of realMethods is to generate as much code as deep into the DevOps toolchain as possible using standard, easy-to-provide inputs. Let’s see these three core concepts in more detail.

Model-Driven DevOps components

The Model

The model gathers the application requirements. Model support in realMethods comes from a variety of sources, including UML, the Eclipse Modeling Framework (EMF), and realMethods JSON model definition. Moreover, the platform can reverse engineer a model from the database schema of any existing application.  Likewise, it can reverse engineer POJOs from any JAR or EAR file.

All input model types are then turned into a realMethods model conforming to our common generation metamodel.  realMethods provides a complete API to access all aspects of the model for use in a template during code generation.

realMethods generation metamodel

realMethods generation metamodel

The Technology Stack

A technology stack is a collection of technologies brought together to provide a framework and platform that is best suited for a specific application.  In realMethods, a tech stack is a composable environment for an application, and can be built in a point-and-click, wizard-like fashion or it can be set up with an existing template.  It contains templatized files that are combined with a model and a set of application options during generation time.

realMethods extends this concept by serving as a platform to publish and consume tech stacks with the ability to create custom templates for tech stacks tailored to your unique application environment. Each template file, which uses the widely popular Apache Velocity engine, generates a single application file for your overall project.

A template file can contain generation capabilities for a bunch of application functional components including UI code, CRUD capabilities, persistence, caching, and more but also build files and other configuration files to facilitate the DevOps cycle of the generated application, as listed above.

realMethods has a set of pre-defined tech stacks that can be used as-is, or downloaded and modified to fit your own needs. The platform itself is technology stack agnostic.  This means the types of application domains and verticals are only limited by the tech stacks registered to the platform. The tech stacks included cover a wide range of application types, but new tech stacks can be created and registered to support additional types.

The application options

Application options are specific for a given technology stack, and made available to the platform using a single JSON file. These options will impact what is generated and how it is generated. A technology stack can use any option for something as simple as HTML output or something as complicated as determining the infrastructure to spin-up on AWS for deployment.

Generate a DevOps Project

realMethods generates more than just application source code; it generates entire DevOps projects. Without realMethods, a typical DevOps project requires several manual configuration tasks and commits to a version control system.  A project would be manually built and tested on a standard CI/CD platform, built and pushed as a Docker image, and finally deployed to a cloud or on-prem environment.

realMethods generation process

Some tools may make those tasks less manual, but with realMethods, this can all be done in one step—all the files required for each of these phases can be automatically created with a push-button workflow. Give it a try (free community edition available and SaaS version for only $7/month)!

 

Pin It on Pinterest

Share This