Configuring EC2 for Redis

Ubuntu 18.04 out of the box from AWS is not setup properly to support Redis. Enable Overcommit Memory login via SSH sudo vim /etc/sysctl.conf Add the following to the end of the file and save. # VM for Redisvm.overcommit_memory=1 Reboot the server. Disable Huge Pages From: login via SSH sudo vim /etc/systemd/system/disable-thp.service Add this […]

AWS Cloud Configuration

landscape photography of mountains covered in snow

OmniBlocks® REST API Server aka OmniBlocks® BE Server. July 2022 Runs on an EC2 instance deployed via Jenkins as a git listener in a CI/CD environment. The app is a node server managed by PM2. The auth module utilizes Redis. AWS Services EC2 Servers OmniBlocks Live BE t3.medium => m6i.large OmniBlocks Staging BE t3.medium OmniBlocks […]

Technology Standards

books education knowledge encyclopedias

Application Design RBT Inc. apps are primarily Software-as-a-Service applications. They need to be fault tolerant, easily scalable, and performant. Our designs should follow the “Twelve Factor” standard. Development Process Our development process loosely follows the Agile methods. Our goal is to work with a heartbeat of 2 weeks maximum for sprints. We are also working […]

Data Migrations In The OmniBlocks® API

city technology architecture luxury

Data migrations are handled via the Knex migration system. Migrations provide a managed and version-control-backed method for modifying the data structures that support the API. Adding A Migration yarn add-migration <newMigrationName> creates a duplicate of migration.stub.ts that includes -the needed module-alias import and -a standard/initial TS up/down export setup. Running A Migration You’ll first need […]

IT/R&D: Debugging EC2 API Server App Crashes

person pointing numeric print

There are cases where the API server will crash on EC2 without being handled by the JavaScript try/catch. It is possible to run out of resources such as disk or memory on the EC2 server, among a few culprits that are not coding errors. Below are some hints on how to find the issue. Case: […]

IT: Renewing SSL cert

The docs site is hosted on an AWS Lightsail account using a Bitnami WordPress instance. These instances have their own special set of commands for managing certificates and the services. You’ll need to login to the SSH command line via AWS Lightsail for the selected instance. Run this command to shut down Bitnami services including […]

Updating Data Structures After Restoring Live Data

Sometimes the data from the production system needs to be restored to staging or development servers. If the latest version being tested on those servers has a data migration as part of the new release, a manual re-deployment of the code is required to re-trigger the data migration scripts. As of OmniBlocks® version 1.71 the […]

Apr 28 2022 9:35 – 10:35 AM Downtime Analysis

9:44AM EST report came in that tenants could not login to production The Live BE server on EC2 was non-responsive when trying to login to Jenkins. Rebooted the EC2 instance after viewing the monitoring reports. Approximately 9:35AM CPU spike to near 100%. Started a rebuild process on Jenkins to force the API to do a […]

Data Structure: Tables

A partial list of OmniBlocks® API tables and their role. brand List of brands with a link to the brand’s primary website. brand_tenant_map Joiner table that links brands to tenants. Allows a brand to potentially be associated with more than one tenant. custom_templates The form builder templates (forms) used to set the steps for MMRs […]

Data Structure: Custom Templates

The custom_templates table stores the templates for the Form Builder module. Fields Name Stores the name of the template. Section A large array of JSON objects that holds the sections used to build the template. It stores an actual copy of the section as it was configured when the template was created. The original source […]