DevOps For OpenEdge

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

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

You might also like