Improve Cloud Software Development 10x by Embracing ‘CAIOS’

BlackSwan Technologies Team
5 min readOct 14, 2021

--

Developers and DevSecOps discover early on that taking software from concept to deployment in the Cloud is more complicated than it should be. True, cloud technology provides built-in scalability and a degree of hardware independence, but this is offset by a considerable effort needed to code lengthy configuration specifications — even with serverless architectures. In addition, careful upfront design and post-deployment analysis are needed to lock down security weaknesses and optimise performance.

CAIOS is Infrastructure-as-Code

A new generation of all-in-one cloud infrastructure is needed that makes software / microservices faster to code and test, near-effortless to deploy across cloud platforms, and automatic to secure and optimise. To this end, we present ‘CAIOS.’

CAIOS may be pronounced like “chaos” but is actually a robust framework for breaking down the barriers to achieving the full potential of the Cloud. CAIOS stands for the Cloud AI Operating System; it works with your IDE and cloud platform to deliver order-of-magnitude improvements in developer productivity, deployment speed, security, portability and resource optimisation. Developers, Solution Architects, DevSecOps and Migration Engineers will find it a valuable tool in their toolkit. And, there’s no cost to use the rich-featured Team edition.

The good news is that CAIOS is extremely easy to use and provides immediate benefits through DevSecOps automation. In this article, we examine how the development environment reduces effort and time when developers are coding for the cloud, by way of:

  • One-Click Deployment with Automatic Cloud Configuration
  • Fast, Fluid Testing Cycles
  • A Managed Suite of Up-to-Date Code Libraries

One-Click Deployment with Automatic Cloud Configuration

Even a simple “hello world” function in a language like Python can require hundreds of lines of specifications to be deployed on a platform like AWS Lambda. The configuration script — the “service template” if you’re working on AWS — includes detailed compute resource declarations (CPUs, timeouts, etc.), usage policies (read/write/edit privileges, security protocols), and a lot more.

In contrast to traditional deployment processes, CAIOS automatically generates the cloud platform-specific code and manages it for you. This includes the configuration information, as well as translation of programming logic into cloud functions. REST and WebSockets API also are automatically generated. This is the realisation of Infrastructure-as-Code.

Whereas the source code for a short, traditional logic function might occupy 25 to 100 lines of code, the automatically compiled version including configuration information may contain 200 to 500 additional lines of code or more. Compilation of the complete cloud code takes seconds in most cases with CAIOS. This means the developer can concentrate on the development of application logic in a language of their choice, such as Python.

CAIOS automatically infers from the code the resources that need to be created

Fast, Fluid Testing Cycles

Testing cloud-based code can be time-consuming and expensive. Changing between local and remote testing environments traditionally has required a shift in thinking and IDE context. Also, computationally-intensive processes, can run up one’s cloud resource bill unexpectedly, even during testing. Therefore, goals for a more modern approach to cloud development should make it easy to switch test environments and to off-load testing to one’s local resources wherever possible.

CAIOS includes three modes of testing code: local unit testing, local integrated testing, and remote integrated testing. Local integrated testing is a valuable tool because it tends to catch many of the difficult bugs at little-to-no cost and at a fraction of the time of testing in-the-cloud. In one computational benchmark that our team ran, the unit test version took 0.02 seconds, the local integrated test took 0.5 second, and the remote test took 15 seconds or more, depending on volume of cloud resources to be allocated.

With CAIOS, one switches between testing modes by setting a single ‘run’ parameter on your IDE command line. This makes the testing cycle run as fluidly as the developer can manage. Here’s a sample invocation:
~/environment/caios-py-walkthrough (master) $ caios test run remote

A Managed Suite of Up-to-Date Code Libraries

Even in the best organised IT departments, maintaining libraries can be complicated. Library managers have to stay aware of the latest release of each code library, the internal certification process status, and license restrictions. Developers may be expected to install their own copies of libraries needed to work on an application.

CAIOS includes an IP asset library management feature that takes care of version control, auto-updates, and vulnerability scans for code libraries. To make use of a library in the CAIOS framework, one simply includes an “import” command in the code file header; no physical install is required.

Out of the box, CAIOS Library comes bundled with over 50 libraries suitable for programming targeted for the cloud. The latest versions are automatically incorporated. A sample of these libraries include:

  • py-jdict — JavaScript-like Python ‘dictionary’ data access.
  • caios-py-pandas, CAIOS adaptation of the widely-used data manipulation and analysis library for Python.
  • caios-py-fuzzysearch — adaptation of the FuzzySearch library for fuzzy substring searches.
  • caios-py-numpy — adaptation of the NumPy library, the fundamental package for scientific computing in Python.
  • caios-py-powertools-aws — variant of the aws-lambda-powertools library. Essential for implementation of logging and tracing facilities.

CAIOS Library can be used for an organisation’s custom set of information assets, including certified versions of libraries used by your applications. You can also store and manage data models, schema and other shared software assets in the cloud-based Library.

Wrap-Up

Here, we’ve covered three of the benefits that developers will discover immediately when using CAIOS to code for the cloud: one-click cloud deployment, fluid testing, and managed libraries. These capabilities are available at no cost, for any use from experimentation to commercial production, as part of the rich-featured, Team Edition of CAIOS.

Future posts will address DevSecOps benefits in terms of security, portability and resource optimisation. Learn more about CAIOS at www.caios.io.

--

--