Most Powerful Open Source ERP

How does Rapid.Space and SlapOS compare to AWS?

75% of cloud services provided by Amazon AWS could actually be implemented with Nexedi Free Software stack and Rapid.Space low cost, high performance cloud. With the addition of a few third party Free Software, 85% of AWS services could be replaced by sovereign alternatives.
  • Last Update:2020-01-02
  • Version:001
  • Language:en

Most cloud services could be built by combining an open source / Free Software (eg. MariaDB) together with a service lifecycle automation (SLM) platform (eg. SlapOS). With one notable exception, this goal has not yet been reached by the Open Source / Free Software community because most projects are still focusing on some kind of virtualisation (eg. virtual machines, containers) or orchestration (eg. Kuberneres) which only represent 10% to 20% of what is necessary to implement a public cloud service.

This may leave SlapOS as the only open source / Free Software project that could possibly match leading public cloud services (AWS, Azure, Alicloud), as the following comparison table highlights:

  SlapOS OpenStack Kubernetes Jupyter NixOS AWS
IaaS      
PaaS  
Service App Store      
Orchestration    
Virtualisation      
Network management      
Resilient networking        
Bare metal encapsulation    
Portability   limited     ?
Multi-tenant services (eg. CDN)        
Edge computing        
Continuous integration        
Self-monitoring        
Autonomous convergence         ?
Automated DR        
Accounting & Billing        

Nexedi stack: less is more

Nexedi develops and operates complex, scalable applications with less than 15 software: the Nexedi Freee Software stack.

Out of those 15 software, developers actually focus on four of them:

  • ERP5 for enterprise records management (including CRM, MRP, MES)
  • OfficeJS for Progressive Web Application (PWA) development;
  • SlapOS for IT infrastructure automation (on the cloud, at the edge or in the workshop);
  • Wendelin for data collection and processing (including AI and conversion).

Since both SlapOS, Wendelin and OfficeJS are just variations of ERP5, Nexedi developers actually only need to learn a single framework (ERP5) and a single language (python). By relying on less tools, Nexedi developers have more time to learn ERP5 in depth. They can reuse their ERP5 knowledge with SlapOS and Wendelin. And thanks to the huge size of python library, most problems that are not already covered by ERP5, SlapOS, Wendelin or OfficeJS can be solved quickly.

AWS vs. Rapid.Space

Amazon AWS provides more than 200 cloud services.

The table below provides a comparison between Amazon AWS cloud services and technologies of the Nexedi Free Software stack which can be used to build simlar services deployed with SlapOS on Rapid.Space high performance, low cost cloud platform. For each AWS category and product,  we provide a possible alternative in Nexedi Free Software stack either as a SlapOS profile (server based) or as Progressive Web App (browser based). We also provide open source / Free Software alternatives we are aware of. 

Category Product Description Nexedi or partner SlapOS PWA FLOSS Alternative
Analytics Athena Query data in S3 using SQL Wendelin    
CloudSearch Managed search service Wendelin   Searx
Elasticsearch Service Run and scale Elasticsearch clusters Wendelin   Elasticsearch
EMR Hosted Hadoop framework Wendelin   Hadoop
Kinesis Analyze real-time video and data streams Wendelin    
Managed Streaming for Apache Kafka Fully managed Apache Kafka service Wendelin (fluentd)   Kafka
Redshift Fast, simple, cost-effective data warehousing Wendelin    
QuickSight Fast business analytics service Wendelin (iodide)   Superset or Metabase
Data Exchange Find, subscribe to, and use third-party data in the cloud Wendelin (ebulk)    
Data Pipeline Orchestration service for periodic, data-driven workflows Wendelin   Airflow or Activeeon
AWS Glue Prepare and load data Wendelin (CONNECT)   Talend
AWS Lake Formation Build a secure data lake in days Wendelin (ebulk)    
Application Integration AWS Step Functions Coordination for distributed applications Wendelin (activate)   Airflow or Activeeon
EventBridge Serverless event bus for SaaS apps & AWS services Wendelin (activate)   Airflow or Activeeon
MQ Managed message broker for ActiveMQ JIO   open62541 or RabbiitMQ
Simple Notification Service (SNS) Managed message topics for pub/sub JIO   open62541 or DPS
Simple Queue Service (SQS) Managed message queues Wendelin (activate)   Airflow or Activeeon
AWS AppSync Power your apps with the right data from many sources, at scale JIO    
VR and AR Sumerian Build and run VR and AR applications RenderJS + BabylonJS    
AWS Cost Management AWS Cost Explorer Analyze your AWS cost and usage SlapOS (UI)    
AWS Budgets Set custom cost and usage budgets        
AWS Cost & Usage Report Access comprehensive cost and usage information SlapOS (Monitor)    
Reserved Instance Reporting Dive deeper into your reserved instances (RIs) SlapOS (Monitor)    
Savings Plans Save up to 72% on compute usage with flexible pricing        
Blockchain Amazon Managed Blockchain Create and manage scalable blockchain networks        
Amazon Quantum Ledger Database (QLDB) Fully managed ledger database        
Business Applications Alexa for Business Empower your organization with Alexa        
Amazon Chime Frustration-free meetings, video calls, and chat SlapOS (Nextalk)    
Amazon WorkDocs Secure enterprise document storage and sharing ERP5 (DMS)   SlapOS (Nextcloud)
Amazon WorkMail Secure email and calendaring SlapOS (Nextcloud)    
Compute Amazon EC2 Virtual servers in the cloud SlapOS (kvm)   Proxmox
Amazon EC2 Auto Scaling Scale compute capacity to meet demand SlapOS (buildout)    
Amazon Elastic Container Registry Store and retrieve docker images SlapOS (buildout)    
Amazon Elastic Container Service Run and manage docker containers SlapOS (buildout)   Proxmox
Amazon Elastic Kubernetes Service Run managed Kubernetes on AWS SlapOS (buildout)   Kubernetes
Amazon Lightsail Launch and manage virtual private servers SlapOS    
AWS Batch Run batch jobs at any scale Wendelin      
AWS Elastic Beanstalk Run and manage web apps SlapOS (buildout)    
AWS Fargate Run containers without managing servers or clusters SlapOS (buildout)      
AWS Lambda Run code without thinking about servers Wendelin    
AWS Outposts Run AWS infrastructure on-premises Rapid.Space Node    
AWS Serverless Application Repository Discover, deploy, and publish serverless applications        
AWS Wavelength Deliver ultra-low latency applications for 5G devices        
VMware Cloud on AWS Build a hybrid cloud without custom hardware SlapOS    
Customer Engagement Amazon Connect Cloud-based contact center service ERP5    
Amazon Pinpoint Personalized user engagement across channels        
Amazon Simple Email Service (SES) Email sending and receiving        
Contact Lens for Amazon Connect Contact center analytics powered by ML ERP5/Wendelin    
Database Amazon Aurora High performance managed relational database MariaDB + Repman    
Amazon DynamoDB Managed NoSQL database NEO    
Amazon DocumentDB (with MongoDB compatibility) Fully managed document database NEO    
Amazon ElastiCache In-memory caching system     Kumofs
Amazon Managed Apache Cassandra Service Managed Cassandra-compatible database MariaDB (CASSANDRA)      
Amazon Neptune Fully managed graph database service MariaDB (OQGRAPH)    
Amazon Quantum Ledger Database (QLDB) Fully managed ledger database NEO    
Amazon RDS Managed relational database service for MySQL, PostgreSQL, Oracle, SQL Server, and MariaDB MariaDB    
Amazon RDS on VMware Automate on-premises database management SlapOS    
Amazon Redshift Fast, simple, cost-effective data warehousing Wendelin    
Amazon Timestream Fully managed time series database MariaDB (COLUMNSTORE)   InfluxDB
AWS Database Migration Service Migrate databases with minimal downtime MariaDB (CONNECT)    
Developer Tools Amazon Corretto Production-ready distribution of OpenJDK        
AWS Cloud Development Kit (CDK) Model cloud infrastructure using code WebRunner    
AWS Cloud9 Write, run, and debug code on a cloud IDE WebRunner    
AWS CodeBuild Build and test code WebRunner    
AWS CodeCommit Store code in private Git repositories WebRunner    
AWS CodeDeploy Automate code deployment WebRunner    
AWS CodePipeline Release software using continuous delivery ERP5 (Test Runner)    
AWS CodeStar Develop and deploy AWS applications WebRunner    
AWS Command Line Interface Unified tool to manage AWS services SlapOS (console)    
AWS Device Farm Test Android, iOS, and web apps on real devices in the AWS cloud        
AWS Tools and SDKs Tools and SDKs for AWS SlapOS    
AWS X-Ray Analyze and debug your applications WebRunner    
End User Computing Amazon WorkSpaces Virtual desktops in the cloud SlapOS (kvm)    
Amazon AppStream 2.0 Stream desktop applications securely to a browser SlapOS (kvm)    
Amazon WorkLink Enable mobile access to internal websites SlapOS (CDN)    
Game Tech Amazon GameLift Simple, fast, cost-effective dedicated game server hosting Rapid.Space    
Amazon Lumberyard A free cross-platform 3D game engine, with Full Source, integrated with AWS and Twitch BabylonJS    
Internet of Things AWS IoT Core Connect devices to the cloud Wendelin    
Amazon FreeRTOS IoT operating system for microcontrollers       Nuttx
AWS Greengrass Local compute, messaging, and sync for devices SlapOS    
AWS IoT 1-Click One click creation of an AWS Lambda trigger SlapOS (token)    
AWS IoT Analytics Analytics for IoT devices Wendelin    
AWS IoT Button Cloud programmable dash button        
AWS IoT Device Defender Security management for IoT devices        
AWS IoT Device Management Onboard, organize, and remotely manage IoT devices SlapOS (Master)   Mender UpKit
AWS IoT Events IoT event detection and response Wendelin (windea)    
AWS IoT SiteWise IoT data collector and interpreter Wendelin    
AWS IoT Things Graph Easily connect devices and web services       Node-RED
AWS Partner Device Catalog Curated catalog of AWS-compatible IoT hardware OCP Olimex     OSHWA
Machine Learning Amazon SageMaker Build, train, and deploy machine learning models at scale OfficeJS Notebook   Jupyter-lab
Amazon Augmented AI Easily implement human review of ML predictions        
Amazon CodeGuru (Preview) Automate code reviews and identify expensive lines of code        
Amazon Comprehend Discover insights and relationships in text OfficeJS Notebook (NLP)   Jupyter-lab
Amazon Elastic Inference Deep learning inference acceleration Wendelin (keras)    
Amazon Forecast Increase forecast accuracy using machine learning OfficeJS Notebook (scikit-learn)    
Amazon Fraud Detector Detect more online fraud faster        
Amazon Kendra Reinvent enterprise search with ML       viky.ai spaCy
Amazon Lex Build voice and text chatbots OfficeJS Notebook (spaCy)   Linto
Amazon Personalize Build real-time recommendations into your applications Wendelin (scikit-learn)    
Amazon Polly Turn text into life-like speech       meSpeak.js espeak-ng picotts marytts
Amazon Rekognition Analyze image and video        
Amazon SageMaker Ground Truth Build accurate ML training datasets        
Amazon Textract Extract text and data from documents Cloudooo (tesseract)    
Amazon Translate Natural and fluent language translation       OpenNMT Texar
Amazon Transcribe Automatic speech recognition       Linto CommonVoice Pocketsphinx.js
AWS Deep Learning AMIs Deep learning on Amazon EC2 Wendelin (keras)    
AWS Deep Learning Containers Docker images for deep learning SlapOS (keras)    
AWS DeepComposer ML enabled musical keyboard        
AWS DeepLens Deep learning enabled video camera Olimex AI Camera      
AWS DeepRacer Autonomous 1/18th scale race car, driven by ML        
AWS Inferentia Machine learning inference chip Olimex      
Apache MXNet on AWS Scalable, open-source deep learning framework Wendelin (keras)    
TensorFlow on AWS Open-source machine intelligence library Wendelin (keras)    
Management & Governance Amazon CloudWatch Monitor resources and applications SlapOS (promise)  
AWS Auto Scaling Scale multiple resources to meet demand SlapOS (buildout)    
AWS Chatbot ChatOps for AWS Wendelin (fluent-slack)    
AWS CloudFormation Create and manage resources with templates SlapOS (buildout)    
AWS CloudTrail Track user activity and API usage SlapOS (workflow history)      
AWS Command Line Interface Unified tool to manage AWS services SlapOS (console)      
AWS Compute Optimizer Identify optimal AWS Compute resources        
AWS Config Track resources inventory and changes SlapOS (history)      
AWS Control Tower Set-up and govern a secure, compliant multi-account environment SlapOS (Master)    
AWS Console Mobile Application Access resources on the go SlapOS (UI)    
AWS License Manager Track, manage, and control licenses        
AWS Management Console Web-based user interface SlapOS (UI)    
AWS Managed Services Infrastructure operations management for AWS Rapid.Space partners      
AWS OpsWorks Automate operations with Chef and Puppet SlapOS (ansible)      
AWS Organizations Central governance and management across AWS accounts SlapOS (Master)    
AWS Personal Health Dashboard Personalized view of AWS service health SlapOS (Master)    
AWS Service Catalog Create and use standardized products SlapOS (Master)    
AWS Systems Manager Gain operational insights and take action SlapOS (Master)    
AWS Trusted Advisor Optimize performance and security SlapOS (Monitor)    
AWS Well-Architected Tool Review and improve your workloads Rapid.Space partners      
Media Services Amazon Elastic Transcoder Easy-to-use scalable media transcoding Wendelin (OpenCV)    
Amazon Kinesis Video Streams Process and analyze video streams Wendelin (OpenCV)    
AWS Elemental MediaConnect Reliable and secure live video transport SlapOS (CDN)    
AWS Elemental MediaConvert Convert file-based video content Wendelin (ffmpeg)    
AWS Elemental MediaLive Convert live video content Wendelin (ffmpeg)    
AWS Elemental MediaPackage Video origination and packaging        
AWS Elemental MediaStore Media storage and simple http origin Wendelin    
AWS Elemental MediaTailor Video personalization and monetization        
AWS Elemental Appliances & Software On-premises media solutions Rapid.Space Node      
Migration & Transfer AWS Migration Hub Track migrations from a single place        
AWS Application Discovery Service Discover on-premises applications to streamline migration       Open-AudIT OCSING FusionInventory
AWS Database Migration Service Migrate databases with minimal downtime MariaDB (CONNECT)    
AWS DataSync Simple, fast, online data transfer Wendelin (embulk)      
AWS Server Migration Service Migrate on-premises servers to AWS       libguestfs
AWS Snow Family Physical devices to migrate data into and out of AWS OCP (Crystal Lake)      
AWS Transfer for SFTP Fully managed SFTP service Wendelin (embulk)      
CloudEndure Migration Automate your mass migration to the AWS cloud        
Mobile AWS Amplify Build and deploy mobile and web applications OfficeJS    
Amazon API Gateway Build, deploy, and manage API's JIO    
Amazon Pinpoint Personalized user engagement across channels        
AWS AppSync Power your apps with the right data from many sources, at scale JIO    
AWS Device Farm Test Android, iOS, and web apps on real devices in the AWS cloud        
Networking & Content Delivery Amazon VPC Isolated cloud resources Rapid.Space (kvm-cluster)    
Amazon API Gateway Build, deploy, and manage APIs JIO    
Amazon CloudFront Global content delivery network SlapOS (CDN)    
Amazon Route 53 Scalable domain name system (DNS) SlapOS (PowerDNS)    
AWS PrivateLink Securely access services hosted on AWS Caucase    
AWS App Mesh Application-level networking for all your services re6st    
AWS Cloud Map Service discovery for cloud resources SlapOS (host.local)    
AWS Direct Connect Dedicated network connection to AWS re6st    
AWS Global Accelerator Improve application availability and performance SlapOS (frontend-selector)    
AWS Transit Gateway Easily scale VPC and account connections re6st    
Elastic Load Balancing (ELB) Distribute incoming traffic across multiple targets SlapOS (ha-proxy)    
Quantum Technologies Amazon Braket Explore and experiment with quantum computing        
Robotics AWS RoboMaker Develop, test, and deploy robotics applications       ROS
Satellite AWS Ground Station Fully managed ground station as a service        
Security, Identity & Compliance AWS Identity and Access Management (IAM) Manage user access and encryption keys Caucase    
Amazon Cognito Identity management for your apps ERP5 (Base)    
Amazon Detective Investigate potential security issues        
Amazon GuardDuty Managed threat detection service        
Amazon Inspector Analyze application security        
Amazon Macie Discover, classify, and protect your data        
AWS Artifact On-demand access to AWS' compliance reports        
AWS Certificate Manager Provision, manage, and deploy SSL/TLS certificates Caucase    
AWS CloudHSM Hardware-based key storage for regulatory compliance        
AWS Directory Service Host and manage active directory ERP5 (Base)    
AWS Firewall Manager Central management of firewall rules SlapOS (firewalld)    
AWS Key Management Service Managed creation and control of encryption keys Caucase    
AWS Resource Access Manager Simple, secure service to share AWS resources SlapOS (Master)    
AWS Secrets Manager Rotate, manage, and retrieve secrets        
AWS Security Hub Unified security and compliance center        
AWS Shield DDoS protection        
AWS Single Sign-On Cloud single sign-on (SSO) service        
AWS WAF Filter malicious web traffic SlapOS (CDN)    
Storage Amazon Simple Storage Service (S3) Scalable storage in the cloud NEO    
Amazon Elastic Block Store (EBS) EC2 block storage volumes       openio.io (not entirely Free)
Amazon Elastic File System (EFS) Fully managed file system for EC2       openio.io (not entirely Free)
Amazon FSx for Lustre High-performance file system integrated with S3       openio.io (not entirely Free)
Amazon FSx for Windows File Server Fully managed Windows native file system       openio.io (not entirely Free)
Amazon S3 Glacier Low-cost archive storage in the cloud NEO    
AWS Backup Centralized backup across AWS services SlapOS (resiliency)    
AWS Snow Familyw Physical devices to migrate data into and out of AWS        
AWS Storage Gateway Hybrid storage integration OCP (Crystal Lake)      
CloudEndure Disaster Recovery Highly automated disaster recovery SlapOS (resiliency)    

Missing services

45 features out of the 209 AWS services are not yet covered by the combination of Nexedi stack and Rapid.Space. About 75% of AWS services are thus already covered by Nexedi stack and Rapid.Space, as long as developers accept to adopt Nexedi's tools:

  • python on the backend (incl. C/C++/FORTRAN based libraries);
  • buildout for cloud automation scripting;
  • javascript on the HTML5 frontend;

Out of the 45 missing services, Nexedi does not intend to cover 3 of them:

  • blockchain (2): because it has no practical use and can not scale (due to CAP theorem);
  • quantum computing (1): because efficient qubit I/O can not exist with the levels of energy available on earth (due Maxwell's demon throught experiment).

12 features are actually already covered through existing Free Software that has not yet been integrated into SlapOS appstore.

Overall, only 30 services (less than 15%) are missing, mainly in relation to:

  • Threat detection;
  • AI models powered by private or secret datasets;
  • Windows/VMWare compatibility.

Based on this analysis, future SlapOS R&D should consider how to encapsulate threat detection into the core of SlapOS design in a cost efficient manner.

Key differences

Nexedi stack focuses on reliability and simplicity. Traditional vendors may prefer to focus on ease of sales, ease of adoption (which often relates to fashion) and complexity (which some executives analyse as completeness). In the context of the previous comparison with AWS stack, one should keep in mind that Nexedi may rely on quite different approaches:

  • SlapOS nano-containers instead of Linux name-space based containers;
  • content-centric APIs instead of event-centric APIs;
  • libraries rather than APIs;
  • less is more rather than more and more.

Even though the end-result may be the same, the way it is achieved may be different.

For example, Nexedi considers that Linux name-space based containers are not stable enough for production and are not portable among different hosts with different distribution due to the kernel ABI mismatch problem [RD]. This is why we use SlapOS nano-containers which simply consist of running processes on a POSIX system with an unpriviledged user rather than with the root user. In terms of isolation, it makes no difference. In terms of security, it brings one benefit: some bad code which implies running a process as superuser has to be fixed. In terms of portability, it is superior: the same approach can be applied to FreeBSD or even possibly to embedded OS such as NuttX. It is also more reliable (no ABI mismatch risk) and simpler (no need to add the namespace layer). Yet, the current fashion in 2019 is to use containers, even though reliability problems are now acknowledged [RD] and fashion is fading away [RD].

We prefer in Nexedi to have a single SDK called JIO [RD] and develop all our code based on this SDK and its minimalist API. This API creates a unified abstraction of the world as a repository of contents. Each content has a precise schema, usually a JSON schema. Interacting with services is thus achieved with JIO in the same way as one would interact with a database or a filesystem but with some asynchronism and a wider range of possible operations or data types. Through JIO, we have eliminated most uses of event-based programming. We also stopped defining yet another API for each new problem that needs to be solved. Instead, we rather focus on defining yet another JSON content schema for each new problem that needs to be solved. We also made our code backend-independent and thus portable from one cloud to another in this way.

The difference between a content-based approach and an event-based approach is idempotence, that is the ability for a system to self-recover by repeating a process. Content-based approaches are idempotent by default whereas event-based approaches require extra processes which developers often forget to code. This is similar to the difference between declarative programming and imperative programming. In a distributed infrastructure with thousands of interconnected device, the risk of events is that they are sometimes lost. The advantage of content is that in case it was not accessed at some point, it can always be recovered later, which results in a much more resilient system. The idea of content-centric APIs is not new. It was deployed in military and aerospace in the 1990s with the Data Distribution Service (DDS) protocol [RD]. It can also be found in the OPC-UA PubSub protocol which release lead to an accelerated adoption of OPC-UA standard for Industry 4.0 [RD]. The importance of a concent-centric approach has been well understood in the industry for quite a long time (ex. process control of Japanese chemical factories in the 1990s based on a whiteboard architecture) and in telecommunication research with CCNx [RD]. This is why nearly all software in Nexedi are either content-centric or moving in that direction.

Nexedi also prefers to use a single integrated service (eg. Wendelin) with a single API and different libraries (eg. scikit-learn, scikit-image) to solve different problems (eg. machine learning, image analysis), rather than create multiple independent services with multiple APIs. Nexedi's direction is thus to base modularity on libraries rather than on services or APIs. We consider in particular that the approach called "serverless" can only lead to technical disasters if the meaning of "serverless" is to host on a cloud service hundreds of "single function code" which mutually interact by calling eachother asynchronously through the cloud service infrastructure. That form of "severless" approach can be close to impossible to debug, especially if one starts with a function, adds another which calls the first one and so forth until hundreds of functions are hosted and mutually call eachother asynchronously with no clear structure. It can also lead to latency issues if connection pooling has not be designed into the "serverless" infrastructure. Yet, if "serverless" means hosting code on the cloud and editing code through the Web on a system which is managed by the cloud provider, this is something that Nexedi has been doing since 2001. It has many advantages, especially in terms of efficiency and quality assurance.

Nexedi services which are equivalent to AWS are based on a much smaller list of base services (Wendelin, ERP5, etc.) yet cover a similar scope. It looks like less impressive to an executive than a list of more and more services. It has however the advantage of reducing the learning curve and simplifying integration. One developer can learn a single technology and use it for many different purpose. Less things to learn, more applications.

References