Subscribe
  • Home
  • /
  • Software
  • /
  • Lose the ball and chain on your software development with Jobs-as-Code

Lose the ball and chain on your software development with Jobs-as-Code


Johannesburg, 27 Mar 2017

DevOps is all about increasing the speed of delivering high-quality applications. But many DevOps teams don't realise how much time they lose because of basic app "plumbing".

Developers often use simple tools to code basic instrumentation (jobs) as they build apps. The problem is, hardly anyone uses the same tools or adheres to the same standards. The result is a hodge-podge of code sitting in the guts of an app. When that app gets passed on to operations, the cobbled-together code often doesn't meet production standards. And if something breaks, the problem is hard to find and fix.

The irony is, world-class workflow automation and job scheduling tools have been around for years (take it from us). To avoid rework, headaches and poor quality apps, development needs to shift-left these functions from operations into development. We call this approach Jobs-as-Code, and believe it's critical to DevOps success. If you don't standardise and automate your job definitions, you're missing a major opportunity to deliver higher quality apps faster.

Don't reinvent the wheel

Jobs-as-Code means including jobs as artefacts in your DevOps delivery pipeline. It accelerates the software development process and delivers a higher quality product operationally.

BMC enables Jobs-as-Code through an API that gives developers access to the powerful app automation in Control-M. Developers can now embed code using a simple notation and manage those job artefacts throughout the continuous delivery pipeline the same way the Java or Python code is managed through the entire software development process today.

Code management systems are the norm for source code and even software-defined infrastructure - so why not for job definitions too? Jobs-as-Code allows job scheduling to have the same standardised, consistent process as the rest of the app components.

Jobs-as-Code means a single interface for job scheduling

With Jobs-as-Code, you can improve the job scheduling process. Jobs-as-Code with Control-M:

Automates job scheduling
* Saves time in the delivery pipeline.
* Improves the quality of your apps.
* Ensures visibility so problems that do come up in production are easy to identify and address.

The functionality expected in production can now be embedded in the development and test phases using JSON and stored in any SCM, like git. Control-M Automation API provides verification, testing and execution functions exposed as RESTful Web services that are easily integrated.

Free your developers to rapidly improve apps and focus on innovation, instead of getting stuck writing scripts. With Jobs-as-Code, development can use the powerful and intuitive Control-M functionality to manage workflows, and production doesn't need to spend time doing rework. The result is high quality, more reliable app delivery at the speed of business.

Modern batch: Ops in DevOps fully evolved - Jobs-as-Code

Challenges of managing batch for modern technology with the added complexity of meeting the needs of digital transformation creates a hypothesis.

The hypothesis for how to address these challenges seems exceedingly simple; manage your application 'instrumentation' the same way you manage your application. Simple, elegant, "mic drop" time.

But, really, what does that mean?

For modern batch, and arguably for any management discipline, it means taking an "as code" approach with a solution that provides the capabilities you need to support your business objectives. "Jobs-as-Code" means the artefacts that define jobs can be built using a familiar, code-like notation, stored in an SCM together with the code that implements business logic, built together with that code, tested together, promoted from environment to environment together and eventually deployed together; with the same level of automation. The functionality embedded in that Jobs-as-Code approach should include:

Sophisticated flow relationships

* Extensive application integration to support all your platforms and technologies.
* Operational insight into execution status and progress.
* Output and log collection.
* Support for service level management and business-level abstraction and full security.
* Audit and governance compliance, and others.

With such an approach, your organisation can focus on producing innovative business services rather than divert precious developer talent to building operational plumbing, which is unlikely to reach the level of sophistication obtained with a market-tested solution. Using a solution designed specifically for the task at hand can help you reap the benefits of a truly automated and continuous delivery pipeline to accelerate delivery of new services, and you get the manageability and operational oversight that facilitates operating those new services at the highest levels of availability and reliability.

Share

Editorial contacts