{"id":36307,"date":"2020-01-27T15:45:14","date_gmt":"2020-01-27T13:45:14","guid":{"rendered":"http:\/\/arcadsoftware.com\/?p=36307"},"modified":"2023-11-20T12:55:35","modified_gmt":"2023-11-20T10:55:35","slug":"devops-on-ibm-i-beyond-the-hype","status":"publish","type":"post","link":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/","title":{"rendered":"DevOps on IBM i:  Beyond the hype"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:66.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:2.88%;--awb-width-medium:66.666666666667%;--awb-spacing-right-medium:2.88%;--awb-spacing-left-medium:2.88%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><h3 style=\"text-align: center; margin-top: 10px; margin-bottom: 20px; font-size: 15px;\">By Andrew Clark&nbsp;<\/h3>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:66.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:2.88%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-2 summary\"><h2 style=\"text-align: center;\">Summary<\/h2>\n<ol>\n<li><a class=\"fusion-one-page-text-link\" href=\"\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#seriously\">Seriously?!?<\/a><\/li>\n<li><a class=\"fusion-one-page-text-link\" href=\"\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#thatsnotpossible\">That&#8217;s not possible&#8230;<\/a><\/li>\n<li><a class=\"fusion-one-page-text-link\" href=\"\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#soundsgreathowdowestart\">Sounds great \u2013 how do we start?<\/a><\/li>\n<\/ol>\n<\/div><div class=\"fusion-separator fusion-full-width-sep\" style=\"align-self: center;margin-left: auto;margin-right: auto;margin-bottom:20px;width:100%;\"><\/div><div class=\"fusion-text fusion-text-3\"><p>So you've probably heard the buzz around two terms in DevOps: Continuous Integration (CI) and Continuous Deployment (CD).\u00a0 You probably also have heard about things like Ansible and Docker and Kubernetes and how they relate to CI\/CD and DevOps and are completely confused about how they apply to the real work that you are doing on your IBM i today.<\/p>\n<p>The answer is that CI\/CD concepts <u>are<\/u> completely relevant to what you do, but the tooling that you've probably heard about (Ansible\/Docker\/Kubernetes\/etc.) really don't apply (yet!) \u2013 and in fact aren't really necessary because the unique architecture of the IBM i (i.e. integrated database, independent ASP support, ILE) takes care of most of the things those tools do.<\/p>\n<p>You've probably also already know about all of the supposed goodness of CI\/CD:<\/p>\n<ul>\n<li>Quicker deployments<\/li>\n<li>Fewer errors (and lower cost)<\/li>\n<li>Better response to end-users<\/li>\n<\/ul>\n<p>\u2026but the question remains, how do I get from where I am today to \"real\" DevOps?\u00a0 Maybe nothing that you've seen has given concrete examples of what needs to be done?\u00a0 Here's a good head start:<\/p>\n<p><strong>CI = automated build and regression testing<br \/>\n<\/strong>\u2026if you strip away all the hype, continuous integration is really (conceptually) very simple; when a developer makes a change, all of the necessary related objects are automatically built, and an automated test case runs to ensure that no existing function is broken (that's what \"regression test\" means).\u00a0 If any of the regression test cases fail, then the change is rejected and sent back to the developer to fix.<\/p>\n<p>Notice that <u>automated<\/u> is the key word here \u2013 no human being needs to press keys on their keyboard or click on their mouse to run those tests, it is all handled by a build process that might be as simple as something like a CL program or as sophisticated as something like Jenkins.<\/p>\n<p><strong>CD = micro-versions<br \/>\n<\/strong>\u2026if you strip away all of the hype, Continuous Deployment really just means that when a single functional improvement\/change is complete (a \"micro version\") then that change is pushed to end-users \u00a0<u>immediately<\/u> \u2013 the concept of waiting to bundle lots of changes together into a single \"big bang\" version is obsolete.<\/p>\n<div class=\"fusion-menu-anchor\" id=\"seriously\"><\/div>\n<h2><strong>1. Seriously?!?<\/strong><\/h2>\n<p>Seriously.\u00a0 Instead of building \"Version 1.0\" now, and then waiting 3 months to build \"Version 1.1\", and then waiting another year to build \"Version 2.0\" changes get implemented <u>immediately<\/u>.\u00a0 In traditional \"big bang\" versions like this (1.0, 1.1, 2.0 etc.) here's how development reacts to end-users:<\/p>\n<p>End-user: \"Hey, development, I've got this great idea  could you make that change for us?\"<\/p>\n<p>Development: \"That is a great idea!\u00a0 Should take about two weeks to develop, so we'll try to get it into Version 1.1 at the end of next month, but if we miss that deadline it won't be available until 2.0 next year.\"<\/p>\n<p>Here's how development reacts to end-users with DevOps:<\/p>\n<p>Development: \"That is a great idea!\u00a0 Should take about two weeks to develop, <u>and will be ready for you to try out then<\/u>\"<\/p>\n<div class=\"fusion-menu-anchor\" id=\"thatsnotpossible\"><\/div>\n<h2><strong>2. That's not possible\u2026<\/strong><\/h2>\n<p>\u2026actually, it <u>is<\/u> possible, but you might need to make some changes to get there\u2026<\/p>\n<ol>\n<li><strong>Your application must be \"scriptable\"<\/strong><br \/>\nThis is often the most difficult hurdle for implementation of DevOps. By \"scriptable\" we mean that each and every \"function\" of your application must be able to be called by some kind of \"script\" (e.g. CL program) with expected inputs and return expected results.For instance, you might have a \"New order\" function \u2013 you must be able to call that function from a <u>batch<\/u> process (no 5250 i.e. must be runnable from a submitted job) and must be able to return success\/failure based upon various inputs.This means <u>by definition <\/u>that you must have \"business logic\" separated from your \"user interface\" i.e. your single interactive RPG order entry menu-driven 10,000 lines-of-code program is not going to cut it\u2026<\/li>\n<li style=\"margin-top: 10px;\"><strong>You have to have a real test script<\/strong><br \/>\nTesting is said to be a pillar of DevOps because delivering \"faster and more often\" means accepting the risk of frequent updates in production. Continuous testing offsets this risk.<br \/>\nThe sad truth is that many companies don't have any kind of test script in place, whether it just be a simple document or some existing automated test process \u2013 when a new version is generated, it's released to a QA team and they may run through some kind of manual process or might just randomly test a few of the major functions of the application to make sure that they work \u2013 that's not going to cut it either\u2026<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\">There is much scope for automating this part of the process.\u00a0 Once you're in the habit of of creating specific test scripts for each new function you want to deliver, you can go one step further and automate the \"unit\" testing of your new code. There are tools out there that understand your application code and help you create your unit tests so you can re-use them for \"smoke\" testing later (check out <a href=\"https:\/\/www.arcadsoftware.com\/arcad\/products\/arcad-i-unit-ibm-i-unit-testing\/\">ARCAD iUnit<\/a>).\u00a0 The goal of course being to catch defects even before they are deployed to QA for regression testing\u2026<\/p>\n<p style=\"padding-left: 40px;\">Then once in QA, the IBM i regression testing tools (like <a href=\"https:\/\/www.arcadsoftware.com\/arcad\/products\/arcad-verifier-regression-testing\/\">ARCAD Verifier<\/a>) can trigger functional tests to run over your ready-to-deliver IBM i application to give you a final safeguard before your code reaches production.<\/p>\n<p style=\"padding-left: 40px;\">Once you've reached this level of automation, you're already well on your way to achieving a \"continuous test\" (CT) approach to development\u2026<\/p>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-padding-top:40px;--awb-padding-right:40px;--awb-padding-bottom:25px;--awb-padding-left:40px;--awb-bg-color:rgba(232,232,232,0.38);--awb-bg-color-hover:rgba(232,232,232,0.38);--awb-bg-size:cover;--awb-border-color:#ea5050;--awb-border-left:7px;--awb-border-style:solid;--awb-width-large:66.666666666667%;--awb-margin-top-large:45px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:2.88%;--awb-width-medium:66.666666666667%;--awb-order-medium:0;--awb-spacing-right-medium:2.88%;--awb-spacing-left-medium:2.88%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-4 fusion-text-no-margin\" style=\"--awb-margin-bottom:5px;\"><p><strong>Implementing a DevOps strategy on IBM i? Influencing IBM i DevOps maturity and success in the enterprise?<\/strong><\/p>\n<\/div><div style=\"text-align:right;\"><a class=\"fusion-button button-flat button-xlarge button-custom fusion-button-default button-1 fusion-button-span-no fusion-button-default-type\" style=\"--button_accent_color:#ea5050;--button_accent_hover_color:#437cb4;--button_border_hover_color:#437cb4;--button_border_width-top:0px;--button_border_width-right:0px;--button_border_width-bottom:0px;--button_border_width-left:0px;--button-border-radius-top-left:0px;--button-border-radius-top-right:0px;--button-border-radius-bottom-right:0px;--button-border-radius-bottom-left:0px;--button_gradient_top_color:rgba(255,255,255,0);--button_gradient_bottom_color:rgba(255,255,255,0);--button_gradient_top_color_hover:rgba(255,255,255,0);--button_gradient_bottom_color_hover:rgba(255,255,255,0);\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.arcadsoftware.com\/arcad\/resource-items\/devops-for-ibm-i-white-paper\/\"><span class=\"fusion-button-text awb-button__text awb-button__text--default\">Download our White Paper <\/span><i class=\"fa-arrow-right fas awb-button__icon awb-button__icon--default button-icon-right\" aria-hidden=\"true\"><\/i><\/a><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:66.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:2.88%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-5\"><div class=\"fusion-menu-anchor\" id=\"soundsgreathowdowestart\"><\/div>\n<h2><strong>3. Sounds great \u2013 how do we start?<\/strong><\/h2>\n<p>If your application is RPG or COBOL, then probably start here (<em>[White Paper] <a href=\"https:\/\/www.arcadsoftware.com\/arcad\/resource-items\/devops-for-ibm-i-white-paper\/\">DevOps Transformation: Engage your IBM i teams<\/a><\/em>) and then:<\/p>\n<ul>\n<li><strong>Lay the Foundation<\/strong>\n<ul>\n<li>Analyze your existing resources\n<ul>\n<li><em>Skillset, methodology, existing tooling<\/em><\/li>\n<li><em>Identify &#8220;Champions&#8221;<\/em><\/li>\n<\/ul>\n<\/li>\n<li>Pick DevOps tools that match your needs and experience\n<ul>\n<li><em>&#8230;not necessarily those that have the largest visibility<\/em><\/li>\n<li><em>\u2026seriously consider sharing common DevOps tools with developers on distributed systems (e.g. Git, Jenkins, Jira, Azure DevOps), to achieve a common DevOps toolchain enterprise-wide<\/em><\/li>\n<li><em>\u2026remember that open source tools <u>alone<\/u> don\u2019t cut it on IBM i &#8211; so look for an IBM i DevOps vendor that offers ready-made integrations to make the adoption of open source easier<\/em><\/li>\n<\/ul>\n<\/li>\n<li>Document your existing application (files\/fields\/programs by function, type, etc.)<\/li>\n<li>Conceptualize what &#8220;functions&#8221; need to be tested<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li><strong>Make incremental Development changes<\/strong>\n<ul>\n<li>Implement source control (e.g. Git)<\/li>\n<li>Start using RDi (if you aren&#8217;t already)<\/li>\n<li>Break up monolithic programs into modules and procedures\n<ul>\n<li><em>First step \u2013 convert RPGIII-&gt;ILE (if you haven&#8217;t already!?!)<\/em><\/li>\n<\/ul>\n<\/li>\n<li>Separate business logic from user interface (aka MVC)<\/li>\n<li>Write actual test scripts OR<\/li>\n<li>Use an <a href=\"https:\/\/www.arcadsoftware.com\/arcad\/products\/arcad-i-unit-ibm-i-unit-testing\/\">IBM i unit testing tool<\/a> to create re-usable program and procedure tests<\/li>\n<li>Automate your <a href=\"https:\/\/www.arcadsoftware.com\/arcad\/products\/arcad-verifier-regression-testing\/\">functional regression testing<\/a> using Jenkins as driver<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"fusion-separator fusion-full-width-sep\" style=\"align-self: center;margin-left: auto;margin-right: auto;margin-bottom:20px;width:100%;\"><\/div>\n<p>It probably makes sense to make many of those incremental changes as part of an existing release i.e. do RPGIII-&gt;Free form as part of existing projects, not as one &#8220;big bang&#8221; to try to switch things over (so that the conversion is fully funded and is part of new features that are being developed).<\/p>\n<p>Continuous integration also implies that users will continuously be using the newest versions of the objects, so there needs to be a way to &#8220;switch over&#8221; to the new objects \u2013 this is usually fairly easy (using iASPs) but there are some technical issues that you should be aware of \u2013 we&#8217;ll discuss those in the next blog article; happy DevOpsing!<\/p>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-4 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-padding-top:40px;--awb-padding-right:40px;--awb-padding-bottom:25px;--awb-padding-left:40px;--awb-bg-color:rgba(232,232,232,0.38);--awb-bg-color-hover:rgba(232,232,232,0.38);--awb-bg-size:cover;--awb-border-color:#ea5050;--awb-border-left:7px;--awb-border-style:solid;--awb-width-large:66.666666666667%;--awb-margin-top-large:45px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:2.88%;--awb-width-medium:66.666666666667%;--awb-order-medium:0;--awb-spacing-right-medium:2.88%;--awb-spacing-left-medium:2.88%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-6 fusion-text-no-margin\" style=\"--awb-margin-bottom:5px;\"><p><strong>\u201cGit Ahead\u201d: from IBM i change management to Git. Make a success of Git and Jenkins in your IBM i development today.\u00a0 <\/strong><\/p>\n<\/div><div style=\"text-align:right;\"><a class=\"fusion-button button-flat button-xlarge button-custom fusion-button-default button-2 fusion-button-span-no fusion-button-default-type\" style=\"--button_accent_color:#ea5050;--button_accent_hover_color:#437cb4;--button_border_hover_color:#437cb4;--button_border_width-top:0px;--button_border_width-right:0px;--button_border_width-bottom:0px;--button_border_width-left:0px;--button-border-radius-top-left:0px;--button-border-radius-top-right:0px;--button-border-radius-bottom-right:0px;--button-border-radius-bottom-left:0px;--button_gradient_top_color:rgba(255,255,255,0);--button_gradient_bottom_color:rgba(255,255,255,0);--button_gradient_top_color_hover:rgba(255,255,255,0);--button_gradient_bottom_color_hover:rgba(255,255,255,0);\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"\/arcad\/news-events\/on-demand-webinars\/webinar-git-ahead-from-ibm-i-change-management-to-git\/\"><span class=\"fusion-button-text awb-button__text awb-button__text--default\">Watch the webinar<\/span><i class=\"fa-arrow-right fas awb-button__icon awb-button__icon--default button-icon-right\" aria-hidden=\"true\"><\/i><\/a><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-sizes-top:0px;--awb-border-sizes-bottom:0px;--awb-border-sizes-left:0px;--awb-border-sizes-right:0px;--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:30px;--awb-margin-top:45px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-5 fusion_builder_column_1_6 1_6 fusion-flex-column fusion-flex-align-self-flex-start\" style=\"--awb-bg-size:cover;--awb-width-large:16.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:11.52%;--awb-width-medium:16.666666666667%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:11.52%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-7\"><p><img decoding=\"async\" class=\"aligncenter size-full wp-image-34788\" src=\"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2019\/09\/andrew-clark-picture.jpg\" alt=\"Andrew Clark\" width=\"147\" height=\"147\" srcset=\"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2019\/09\/andrew-clark-picture-66x66.jpg 66w, https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2019\/09\/andrew-clark-picture.jpg 147w\" sizes=\"(max-width: 147px) 100vw, 147px\" \/><\/p>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-6 fusion_builder_column_3_5 3_5 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:60%;--awb-margin-top-large:0px;--awb-spacing-right-large:3.2%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:2.6666666666667%;--awb-width-medium:80%;--awb-spacing-right-medium:2.4%;--awb-spacing-left-medium:2%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-8\"><h3 style=\"margin-bottom: 0px; margin-top: 0px;\"><span lang=\"EN-US\">Andrew Clark<\/span><\/h3>\n<h4 style=\"margin-bottom: 0px; margin-top: 0px;\">DevOps Product Manager<\/h4>\n<div class=\"fusion-layout-column fusion_builder_column fusion_builder_column_5_6 fusion-builder-column-10 fusion-five-sixth fusion-column-last 5_6\">\n<div class=\"fusion-column-wrapper\" data-bg-url=\"\">\n<div class=\"fusion-text\">\n<p>Andrew Clark has been working on the IBM i platform for more than 30 years, beginning with the \u201csecret Mankato Project\u201d on a pre-release version of os\/400, and an internship at IBM Rochester working on the Query team. He has development expertise in more than a dozen languages on multiple platforms, as well as a background in green-screen, Windows, mobile and web development. His major responsibilities included coordinating developers from four different offices in three different continents while still maintaining Architect responsibilities. He is proficient at everything DB\/SQL on IBM i, and has extensive experience in the entire DevOps lifecycle.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How do I get from where I am today to \u201creal\u201d DevOps? Here\u2019s a good start.<\/p>\n","protected":false},"author":3,"featured_media":36316,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[219],"tags":[563,371],"class_list":["post-36307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-blog-article","tag-ibm-i-devops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DevOps on IBM i: Beyond the hype - ARCAD<\/title>\n<meta name=\"description\" content=\"How do I get from where I am today to \u201creal\u201d DevOps? Maybe nothing that you\u2019ve seen has given concrete examples of what needs to be done? Here\u2019s a good start.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DevOps on IBM i: Beyond the hype - ARCAD\" \/>\n<meta property=\"og:description\" content=\"How do I get from where I am today to \u201creal\u201d DevOps? Maybe nothing that you\u2019ve seen has given concrete examples of what needs to be done? Here\u2019s a good start.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/\" \/>\n<meta property=\"og:site_name\" content=\"ARCAD\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/Arcad-Software\/116086138469235\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-27T13:45:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-20T10:55:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/01\/DevOps-on-IBM-i-Beyond-the-hype.png\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"378\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"administrator\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"administrator\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/\"},\"author\":{\"name\":\"administrator\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#\\\/schema\\\/person\\\/ac3c33678907c9c414148df7a202dfbf\"},\"headline\":\"DevOps on IBM i: Beyond the hype\",\"datePublished\":\"2020-01-27T13:45:14+00:00\",\"dateModified\":\"2023-11-20T10:55:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/\"},\"wordCount\":2786,\"publisher\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/DevOps-on-IBM-i-Beyond-the-hype.png\",\"keywords\":[\"Blog Article\",\"DevOps for IBM i\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/\",\"name\":\"DevOps on IBM i: Beyond the hype - ARCAD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/DevOps-on-IBM-i-Beyond-the-hype.png\",\"datePublished\":\"2020-01-27T13:45:14+00:00\",\"dateModified\":\"2023-11-20T10:55:35+00:00\",\"description\":\"How do I get from where I am today to \u201creal\u201d DevOps? Maybe nothing that you\u2019ve seen has given concrete examples of what needs to be done? Here\u2019s a good start.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/DevOps-on-IBM-i-Beyond-the-hype.png\",\"contentUrl\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/DevOps-on-IBM-i-Beyond-the-hype.png\",\"width\":940,\"height\":378,\"caption\":\"DevOps on IBM i: Beyond the hype\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/devops-on-ibm-i-beyond-the-hype\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"ARCAD\",\"item\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps on IBM i: Beyond the hype\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#website\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/\",\"name\":\"ARCAD\",\"description\":\"Experts DevOps &amp; Modernisation sur IBM i (alias AS\\\/400 ou AS400)\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#organization\",\"name\":\"ARCAD Software\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/arcad-group-logo-text-144.png\",\"contentUrl\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/arcad-group-logo-text-144.png\",\"width\":144,\"height\":200,\"caption\":\"ARCAD Software\"},\"image\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pages\\\/Arcad-Software\\\/116086138469235\",\"https:\\\/\\\/x.com\\\/arcad_software\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/arcad-software\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/ARCADSoftwareInc\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#\\\/schema\\\/person\\\/ac3c33678907c9c414148df7a202dfbf\",\"name\":\"administrator\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/author\\\/administrator\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DevOps on IBM i: Beyond the hype - ARCAD","description":"How do I get from where I am today to \u201creal\u201d DevOps? Maybe nothing that you\u2019ve seen has given concrete examples of what needs to be done? Here\u2019s a good start.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/","og_locale":"en_US","og_type":"article","og_title":"DevOps on IBM i: Beyond the hype - ARCAD","og_description":"How do I get from where I am today to \u201creal\u201d DevOps? Maybe nothing that you\u2019ve seen has given concrete examples of what needs to be done? Here\u2019s a good start.","og_url":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/","og_site_name":"ARCAD","article_publisher":"https:\/\/www.facebook.com\/pages\/Arcad-Software\/116086138469235","article_published_time":"2020-01-27T13:45:14+00:00","article_modified_time":"2023-11-20T10:55:35+00:00","og_image":[{"width":940,"height":378,"url":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/01\/DevOps-on-IBM-i-Beyond-the-hype.png","type":"image\/png"}],"author":"administrator","twitter_misc":{"Written by":"administrator","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#article","isPartOf":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/"},"author":{"name":"administrator","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#\/schema\/person\/ac3c33678907c9c414148df7a202dfbf"},"headline":"DevOps on IBM i: Beyond the hype","datePublished":"2020-01-27T13:45:14+00:00","dateModified":"2023-11-20T10:55:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/"},"wordCount":2786,"publisher":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/#organization"},"image":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#primaryimage"},"thumbnailUrl":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/01\/DevOps-on-IBM-i-Beyond-the-hype.png","keywords":["Blog Article","DevOps for IBM i"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/","url":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/","name":"DevOps on IBM i: Beyond the hype - ARCAD","isPartOf":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#primaryimage"},"image":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#primaryimage"},"thumbnailUrl":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/01\/DevOps-on-IBM-i-Beyond-the-hype.png","datePublished":"2020-01-27T13:45:14+00:00","dateModified":"2023-11-20T10:55:35+00:00","description":"How do I get from where I am today to \u201creal\u201d DevOps? Maybe nothing that you\u2019ve seen has given concrete examples of what needs to be done? Here\u2019s a good start.","breadcrumb":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#primaryimage","url":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/01\/DevOps-on-IBM-i-Beyond-the-hype.png","contentUrl":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/01\/DevOps-on-IBM-i-Beyond-the-hype.png","width":940,"height":378,"caption":"DevOps on IBM i: Beyond the hype"},{"@type":"BreadcrumbList","@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/devops-on-ibm-i-beyond-the-hype\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"ARCAD","item":"https:\/\/www.arcadsoftware.com\/arcad\/"},{"@type":"ListItem","position":2,"name":"DevOps on IBM i: Beyond the hype"}]},{"@type":"WebSite","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#website","url":"https:\/\/www.arcadsoftware.com\/arcad\/","name":"ARCAD","description":"Experts DevOps &amp; Modernisation sur IBM i (alias AS\/400 ou AS400)","publisher":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.arcadsoftware.com\/arcad\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#organization","name":"ARCAD Software","url":"https:\/\/www.arcadsoftware.com\/arcad\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#\/schema\/logo\/image\/","url":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2017\/09\/arcad-group-logo-text-144.png","contentUrl":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2017\/09\/arcad-group-logo-text-144.png","width":144,"height":200,"caption":"ARCAD Software"},"image":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/Arcad-Software\/116086138469235","https:\/\/x.com\/arcad_software","https:\/\/www.linkedin.com\/company\/arcad-software","https:\/\/www.youtube.com\/user\/ARCADSoftwareInc"]},{"@type":"Person","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#\/schema\/person\/ac3c33678907c9c414148df7a202dfbf","name":"administrator","url":"https:\/\/www.arcadsoftware.com\/arcad\/author\/administrator\/"}]}},"_links":{"self":[{"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/posts\/36307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/comments?post=36307"}],"version-history":[{"count":4,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/posts\/36307\/revisions"}],"predecessor-version":[{"id":63279,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/posts\/36307\/revisions\/63279"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/media\/36316"}],"wp:attachment":[{"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/media?parent=36307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/categories?post=36307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/tags?post=36307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}