Guide to open source development in the cloud!

An O’Reilly survey, commissioned by IBM in Fall 2020, pointed out that, when choosing cloud providers, 70% of respondents prefer one based on open source. The survey went on to say:

Developers who want to develop cloud applications should work on honing their open source skills, which underly every major cloud platform, instead of only focusing on building skills for a proprietary cloud.

The most desirable open source skills are those related to Linux (containers), artificial intelligence and machine learning, and data storage.

This goals of this guide(Text by IBM / Apache Licensed, 2021) are to provide:

  • Comprehensive learning for hybrid cloud and multicloud developers.

  • A cloud-neutral view of how various clouds are using open source in their offerings.

  • The MACH technology: Microservices based, API-first, Cloud-native SaaS and Headless.

Why Open Source! (must-see - Highly Recommended)

Open source refers to an openly distributed program code (including codes that are free of charge) that can be utilized and modified by the end user without restriction.

There is also now solid metrics data from Google’s Project Zero, Google’s security research team, that Linux developers are doing a faster job of fixing security bugs than anyone else, including Google.

The researchers found that open source developers fixed problems on Linux in just 25 days on average (Google 44, Mozilla 46, Apple 69 and Microsoft 83!). In addition, Linux developers have improved their speed in repairing security vulnerabilities from 32 days in 2019 to just 15 in 2021.

See Bug fix time here

Docker

Intro docker

Learn to build and deploy your distributed applications easily to the cloud with Docker

Alternatives to Docker

Apptainer/Singularity - Simply the best Container system for HPC

Singularity can be used with Docker images. This feature was included because developers use and really like using Docker and scientists have already put much resources into creating Docker images.

Features:

  • Use a Docker image instantly as a Singularity image

  • Pull a Docker image

  • Build images with bases from assembled Docker layers

Next Step DockerSwarm

DockerSwarm

Getting started with swarm - official from docker

Replicability, use the same files as when developing locally.

Raft consensus in swarm mode

Next Step Storage

Storage

On memory - Key-value

etcd
redis

etcd vs. Redis

Like etcd, Redis is an open source tool, but their basic functionalities are different.

Redis etcd

Redis is an in-memory data store and can function as a database, cache, or message broker. Redis supports a wider variety of data types and structures than etcd and has much faster read/write performance.

etcd has superior fault tolerance, stronger failover and continuous data availability capabilities.

Redis is better suited for serving as a distributed memory caching system than for storing and distributed system configuration information.

etcd persists all stored data to disk.

Sharing

Next step Deploy

Development - From Design to Application

programming language

nodeJS

NodeJS

python

Big data and Scientific analysis

Html5 graphical librarys

Rest API

Rest api

Sockets

Sockets

Code as a Service (CaaS)

Automation with Code as a Service. CaaS’s primary service or function is automation. It uses software to automate repetitive practices to hasten and simplify implementations and processes.

Ansible

Ansible is an open source automation software promoted by Redhat Corporation. In addition, to cloud provisioning, it assists in application development, intra-service orchestration, and configuration. Ansible uses the simple programming language YAML to create playbooks for automation. Ansible has many modules that integrate with the most common cloud solutions such as AWS, Google Cloud Platform (GCP) and VMware.

Teraform

Terraform is an infrastructure as code software by Hashi Corporation. It primarily focuses on creating data center infrastructure that is provided by large public clouds. Teraform utilizes JSON language to define infrastructure templates with integrations such as AWS, Azure, GCP, and IBM cloud.

POC

netflix

Netflix
6:50 monolithic
8:24 minroservices
19:00 microservice
see also 37:00

Open Source Cloud Guide from IBM

Et cetera

The Cathedral and the Bazaar

"Sociologists years ago discovered that the averaged opinion of a mass of equally expert (or equally ignorant) observers is quite a bit more reliable a predictor than the opinion of a single randomly chosen observer. They called this the Delphi effect [Wikipedia][Wikipedia].
It appears that what Linus has shown is that this applies even to debugging an operating system—that the Delphi effect can tame development complexity even at the complexity level of an OS kernel"

Last but not least

KISS

KISS [Wiki] [Wiki] [The Unix Philosophy in One Lesson] is related to a fair number of other famous quotes, phrases and principles. Among them:

  • Occam’s Razor - “Among competing hypotheses, the one with the fewest assumptions should be selected” (but often restated as “The simplest solution is most likely the correct solution” which is not quite the same thing).

  • Albert Einstein’s – “Make everything as simple as possible but not simpler” (it is possible that Einstein never actually said this and it was actually a paraphrase of something he said during a lecture but the principle remains sound).

  • Leonardo Da Vinci’s – “Simplicity is the ultimate sophistication” (when, perhaps, the greatest designer in history offers this advice, it’s almost certainly good advice).

  • Ludwig Mies Van Der Rohe’s – “Less is more” (Mies was a highly respected architect and peer of the better known Frank Lloyd Wright)

  • Bjarne Stroustrup’s “Make Simple Tasks Simple!” (Stroustrup is a Danish computer scientist and highly regarded academic).

  • Antoin Marie Jean-Baptiste Roger, comte de Saint-Exupery’s - “It seems that perfection is not reached when there is nothing left to add but when there is nothing left to take away.”