DevOps for OpenEdge
Thomas Hansen
Director, nodeable
thomas@nodeable.io
© nodeable.io 2020
nodeable
● Worked with OpenEdge since forever
● Focus on Application Lifecycle Management,
Application Architecture
○ DevOps
○ Version control: Roundtable, Git
○ CI/CD
○ Automation
● Tools Development
● Technology integration
© nodeable.io 2020
nodeable
● We do everything we can in containers!
● Worked with containers since 2015
● Worked with OpenEdge and Docker since
2015
○ Internal development, testing and production
○ Tools development and use
○ Customer implementations and PoCs
© nodeable.io 2020
Our work with containers
© nodeable.io 2020
Some of the tools we use
© nodeable.io 2020
DevOps
https://www.dotnettricks.com/learn/devops/what-is-devops-and-devops-advantages
© nodeable.io 2020
DevOps
https://www.dotnettricks.com/learn/devops/what-is-devops-and-devops-advantages
© nodeable.io 2020
Why DevOps?
● Break down the Silos
● Speed
● Rapid Delivery
● Reliability
● Team Collaboration
● Security
● Risk Management
https://www.dotnettricks.com/learn/devops/what-is-devops-and-devops-advantages
© nodeable.io 2020
Ready for DevOps?
● Version control
○ Git
○ Roundtable
○ Others
● automatable processes
● tools for automation and CI/CD
● code structure for automation & CI/CD
○ separate client / server codebase
○ only backend server code and web ui
© nodeable.io 2020
Ready for DevOps?
● Structured and responsive development
methodologies
○ Issue and project management
○ Agile / SCRUM
● Automated Testing
○ Unit testing (ABLUnit or similar)
○ Application testing - UI (easiest for web)
● Docker !
© nodeable.io 2020
Tools for DevOps
● Git
● Gitlab, Bitbucket, Azure DevOps
● Roundtable TSMS + buildable
● Jenkins, RunDeck, Drone, …
● Apache Ant & PCT
● Scripts
● Docker !
○ Compose
○ Kubernetes
● AWS, Google Cloud, Azure, ...
● JIRA, ...
● Scripts
© nodeable.io 2020
Progress DevOps Support
● Increased support and plans for DevOps
for OpenEdge
● Docker support
○ PASOE - 11.7 & 12.x
○ Databases - 12.2
● Increasing number of scripts for DevOps
included in tooling (more prescribed
approach)
○ PASOE packaging and build scripts
○ More coming...
© nodeable.io 2020
Apache Ant
Apache Ant
● Common XML & Java based scripting and
automation language
● Use easily with
○ PDOSE
○ Jenkins
○ Other CI/CD tools and scripting engines - e.g.
Jenkins
○ Docker
● Used more and more by PSC with OpenEdge
Development tools
○ PDOSE
○ PASOE .war file generation
© nodeable.io 2020
PCT
PCT
● “PCT is a set of Ant tasks, designed to
automate work in OpenEdge environment.”
● Developed by Riverside Software
○ https://github.com/Riverside-Software/pct
● Compile ABL, create .pl files, schema
processing, ABLUnit, …
● Easy to use with Jenkins etc.
● Easy to use with Docker
© nodeable.io 2020
PCT tasks
© nodeable.io 2020
SonarLint & SonarQube
● Code analysis & Code
Quality
● Technical Debt
● Code Coverage
● Use with
○ PDOSE
○ Command line
○ Jenkins
● Support for over 20
languages
© nodeable.io 2020
buildable for Roundtable
RTB TSMS Automated…
Faster, Easier, Safer … Better
© nodeable.io 2020
for Roundtable
● Secure REST APIs for common Roundtable
TSMS processes
● Front-end using Docker containers
● Backend OpenEdge buildable
clients
○ PASOE Server application
○ Windows client for compiles
○ OOABL RTB API & Proxy Wrapper
© nodeable.io 2020
buildable for Roundtable Architecture
dashboard Baselines
PASOE agent Windows agent
RTB TSMS Clients
RTB
AppServer
© nodeable.io 2020
Git
● Used everywhere
● Good integrations with tools
● Good support for workflows
○ Gitflow, Gitlab flow, …
● Easy to automate
● Multi-tool & platform support
© nodeable.io 2020
Jenkins
● build nodes on multiple platforms
● Docker
● Ant & PCT, cmd, powershell, sh/bash, ...
● Huge number of plugins
● Groovy language support for shared
libraries
© nodeable.io 2020
Jenkins builds & pipelines
● Collection of build stages
● Pipelines as Code
○ Groovy scripts
○ Version controlled in Git
© nodeable.io 2020
Jenkins - Simple pipelines
© nodeable.io 2020
Jenkins - Complex pipelines
© nodeable.io 2020
Cloud Infrastructure
● VMs and template environments
● Dev, Test, QA, Production, …
● Test application & system installs and
updates
● IaC: Infrastructure-as-Code
● Even better with Docker! ;-)
© nodeable.io 2020
Databases
● Automate creates and updates
● Easy spin up for unit testing, compiles,
builds and testing
● Docker? YES
○ Images with versioned templates
○ Easy creation of container stacks with other
components for different DevOps stages
© nodeable.io 2020
Docker!
● Enabler for many parts of modern DevOps
● Include as early as possible in the cycle
● Use images for speed and consistency in
builds, testing, deployments and updates
● Support from many tools and platforms
© nodeable.io 2020
Cloud build tools
● Gitlab
● Bitbucket
● Azure DevOps
● CodeFresh
● ...
© nodeable.io 2020
Ideal DevOps cycle
© nodeable.io 2020
thomas@nodeable.io
© nodeable.io 2020