Overview
Enter content here explaining the need for DevOps for IBMi
- Source Control Management
- Pipeline
- Project Management
- Network Topology & Infrastucture
- Network Connections
- Security Concerns
- There is no "one size fits for all"
Others | IBMi |
---|---|
Develop Locally and Deploy Globally | Develop & Deploy on the server itself |
Database & Server are separate entities | Database & Server are one and the same |
Middleware & Hypervisors are needed | Middleware & Hypervisors are integrated |
- DevOps experts don't know about IBMi and Vice-Versa
Let's talk about GIT - the big daddy of Version Control System. Git is a version control software, used to keep track of changes to your source code.
But don't we have Turnover, Implementor, Aldon, and others already? How Git is different?
- Git is 100% free and open source
- Git is a distributed Version Control System
- Git empowers parallel development
- It enables Historical Comparison
- Disaster Recovery or time machine (!)
- Powerful integration with CI/CD tools.
- Most popular code hosting software
- Owned by Microsoft
- Has extra features like projects, milestone, pull request
- CICD is not available by default
- Proprietory
- Open Source Alternative to GitHub
- Can be installed on almost any server - except IBMi :(
- Easier to manage projects
- Has built in CICD pipeline
- A native tool in Atlassian's Open Dev Ops Solution
- Can be integrated with Jira & Confluence
- An alternative to Gitlab offering easy installation & intuitive UI
- Open Source
- Can be installed on IBMi :)
- Issues, Pull Requests and Wiki for repositories
What it does | What it doesn't |
---|---|
Manages Source Code | Compiling |
Keeps a history | Testing |
Enables Branching | Project Management |
Planning | |
Impact Analyisis | |
Deployment |
Script Based | Archive Based | Object Based |
---|---|---|
No need to compile | Entire Project needs to be compiled | Only the changed objects need to be compiled |
E.g., HTML, JS, PHP | E.g., Java | RPG, CL, C, VB |
Build Process isn't compulsory | Build is compulsory | Build is required only for changed objects |
- When you choose the local development model path,
- There will be Multiple copies of the sources.
- You need to compile from IFS
- Source dates, Color coded comments, Modified Tag will be lost
- Some audit information will be lost (like compiled from sourcefile etc.,)
- Git and GitHub are mostly different.
- Git is tool mostly for programmers.
- GitHub is a tool mostly for Project Managers and leads.
- GIT can be integrated with large number of tools.
CI/CD is a practice where developers regularly merge their code changes into a central repository, followed by automated building and testing (if required). There are various tools available for IBMi.
- Acronym for IBM i Modernization Engine for Lifecycle Integration
- Proprietory
- Full suite of Modern DevOps practices
- Proprietory by Rocket Systems
- Can be integrated with GIT
- Comes with an integrated IDE called RDi
- Free and Open Source
- Can be integrated with GIT
- Can setup pipeline (or) workflows for deployment
- VS Code
- RDi
- ILEditor
- Arcad
A built in RPM command which will create our own /QOpenSys
directory
- Create Issue Task
- Use Webhooks to create task-branch for the task
- Use webhooks to create a task-lib for the task in IBMi Dev
- Commit the changes to the task-branch
- Trigger the Unit Test Cases (via CI/CD software)
- Create a PR to merge the code to the main branch
- Trigger the copy sources & compile objects actions in the Dev Main Library
- Trigger the compile objects action in the Prod library in Prod System
- Testing is more important for DevOps
- Build the sandbox, test it, update/migrate tools, then test again.
- Have a fallback plan during migration of PROD.