Co-author: Senthil Kumar Thanapal
In this blog post, we will discuss about the necessity of DevOps and the solution which we have developed for the Oracle PeopleSoft Enterprise Application.
Why is DevOps required in enterprise applications such as PeopleSoft?
Code changes are unavoidable with on-premises enterprise applications like PeopleSoft. When the code fix build is ready, it is a cumbersome and manual process for the PeopleSoft administrator to move it to another environment (Dev-> SIT->UAT->Production). As the migration and infrastructure operations are performed manually by the respective teams, developers and testers have to request and wait for migration of the build to subsequent environments.
This big wait, at times, leads to delays and huge gaps in expectations vs outcomes. For an enterprise customer with multiple countries and multiple production instances, one can imagine that migrating code can be a time-consuming process. Also, it is to be noted that the PeopleSoft application has different procedures and utilities for migrating code depending on the type of object (e.g. Application designer projects, DDLs build, DMS import/export, SQRs, external files, SQL statements, Cobols, cache clear, and so on).
Every organization creates standards for coding and migration that are required to be followed by every developer. But as we know, “to err is human” and we have a tendency to skip processes or make honest mistakes.
A new way of operations
We analyzed available products in the market and found out that these products can automate the migrations, take backups, and deploy files and codes to different environments. These were undoubtedly good products but before we decide, let us first put on our black thinking cap for judgment.
Challenges faced by customers:
- Every product has its own set of configurations, UIs, rules, and infrastructure that need to be set up and one would also require specific skills to maintain them.
- These products think more in terms of code migration/deployment and are not flexible enough when it comes to implementing new use cases, such as building an entirely new environment from scratch or automating the testing of an application.
- These products rely heavily on adapters for open-source solutions in the absence of native functionality.
With the advent of DevOps, DevSecOps and Infrastructure as a Code, we need to rethink at enterprise level rather than thinking about one enterprise application discreetly.
Different teams (development, operations, quality, and testing) work on their deliverables as per their schedule, and normally need visibility and a common platform through which they can request for quick deployment, or a quick environment build.
DevOps = Bringing development and operation teams together with automation.
Figure 1: Challenges of different teams and how DevOps architecture can provide a resolution
The big confusion – Agile is the same as DevOps and vice versa
Agile and DevOps are different concepts but they go hand-in-hand and help in achieving each other’s objectives. Below is an example depicting how you can achieve a perfect goal using both Agile and DevOps principles:
Figure 2: Agile and DevOps example
Architecture of our solution
There are three layers in this DevOps architecture. The first frontend layer is JIRA software, the second layer is Jenkins which is used for scheduling the automation tasks, and the third and final layer which contains the automation program is written in Python.
Figure 5: Our DevOps platform for PeopleSoft You might have this question in your mind — “How can this solution fit customers who use a different ticketing tool other than JIRA?” We used a “plug and play” concept, so JIRA could be replaced with any other ticketing tool with minimal changes. Most of the PeopleSoft process automation code and logic resides in the powerful third and final layer of “Python” language as a business logic layer. Benefits of our Oracle Peoplesoft DevOps solution
Developed use cases for PeopleSoft operation:
Based on JIRA ticket information and status, we developed use cases for the below tasks:
- PeopleSoft project migration with backups
- DDL build with non-destructive settings
- PeopleSoft DMS import and export with backups
- SQL script execution with automatic data backup for updates and deletes
- SQR migrations with backups
- Restart of PeopleSoft application server, web server, and process scheduler
- Purge cache
- COBOL migrations with backups
- Update of JIRA tickets with Jenkins build status and logs