Developer Setup: High Availability & Multiconnect

Developer Setup: High Availability & Multiconnect

This document shows you how to set up a High Availability cluster on a developer machine. It also provides guidance on how to enable Multiconnect on top of that as well as the changes required for a highly available Multiconnect cluster. For a production setup, follow the relevant instructions listed in Production Setups.

Before you start any of these set ups, check our list of requirements.

To set up a High Availability cluster follow these steps:

  1. Create a biz Directory for the setup scripts
  2. Get the WhatsApp Business API Client configuration files
  3. Set the WA_API_VERSION environment variable
  4. Start the WhatsApp Business API Client with High Availability
  5. Verify containers are running
  6. Perform a health check
  7. Register the WhatsApp Business API Client
  8. Perform a second health check

To set up a Multiconnect cluster follow these steps:

  1. Set up two shards
  2. Perform a health check
  3. Start a third coreapp to maintain High Availability
  4. Perform a second health check

Developer Setup: Single Instance

Developer Setup: Single Instance

This document shows you how to set up a single instance of the WhatsApp Business API client on a developer machine for testing purposes. For a production setup, follow the relevant instructions listed in Production Setups.

To initially set up a single instance, check our list of requirements, and follow these steps:

  1. Create a biz directory for the setup scripts
  2. Get the WhatsApp Business API Client configuration files
  3. Set the WA_API_VERSION environment variable
  4. Start the WhatsApp Business API Client
  5. Verify containers are running
  6. Perform a health check
  7. Register the WhatsApp Business API Client
  8. Perform a second health check

WhatsApp Business API Installation for Production setup

Production Setups

Demonstrates how to set up a WhatsApp Business API client in a production environment and covers best practices. Please use this documentation as reference and make necessary changes according to your business needs.

The WhatsApp Business API client can be installed as a developer setup for testing using either Docker Compose or Minikube. You can also use Amazon Web Services (AWS) on production systems. You can migrate from a developer setup to a production setup when ready to send messages to customers.

Make sure you have approval for your business’s phone number and have a certificate before attempting installation.

WhatsApp Business API Installation for Developer setup

Developer Setups

Demonstrates how to set up a WhatsApp Business API client on your developer machine with the purpose of getting familiar with the setup process. This should not be used for a production environment. It is highly recommended that you try out one of the developer setup processes below before attempting a production setup.

The WhatsApp Business API client can be installed as a developer setup for testing using either Docker Compose or Minikube. You can also use Amazon Web Services (AWS) on production systems. You can migrate from a developer setup to a production setup when ready to send messages to customers.

Make sure you have approval for your business’s phone number and have a certificate before attempting installation.

iam vs acm certificates

ACM is the preferred tool to provision, manage, and deploy your server certificates. With ACM you can request a certificate or deploy an existing ACM or external certificate to AWS resources. Certificates provided by ACM are free and automatically renew. 

Use IAM as a certificate manager only when you must support HTTPS connections in a Region that is not supported by ACM. IAM securely encrypts your private keys and stores the encrypted version in IAM SSL certificate storage. IAM supports deploying server certificates in all Regions, but you must obtain your certificate from an external provider for use with AWS.

You cannot upload an ACM certificate to IAM. Additionally, you cannot manage your certificates from the IAM Console.

Server Migration Checklist

Server migration checklists

Validation Checklist

  • Set the hosts file to locally load services
  • Check to see if all required services are functioning
  • Check your site for 404 errors, 500 errors, PHP warnings, etc.
  • Update all server software to the latest version
  • Tune LAMP performance (Apache, MySQL, PHP)
  • Test the cron
  • Check email deliverability and email records (DKIM, SPF, etc.)
  • Verify mail is synced (i.e. that all messages are there and all contacts have been migrated)
  • Check backups are still working

Security Checklist

  • Audit firewall configuration
  • Identify and implement non-standard security requirements
  • Restrict access where appropriate
  • Implement programs to educate staff
  • Ensure setup is compliant with all protocols

Configuration Checklist

  • Analyse configurations of both old and new hosting environments
  • Configure web server modules (i.e. suexec, mod_php, mod_perl, mod_ssl, etc.)
  • Identify shared libraries and other code/program dependencies
  • Set up SSL certificates
  • Create fresh (or import existing) configuration files
  • Import databases
  • Fine-tune server performance
  • Check and reconfigure applications that connect from remote sources

User Account Checklist

  • Migrate user accounts and passwords
  • Consider forcing password reset on next login
  • Purge old/inactive accounts

File System Checklist

  • Ensure all files copied over
  • Check that permissions are correct
  • Crawl website to identify 404 not found errors

Final Check Checklist

  • Were all of the issues addressed during migration?
  • Was the migration painless? If not, what went wrong?
  • Are you happy with your new server?
  • What else (if anything) needs doing?

Server Migration Service

What is a Server Migration?

A server migration is the term used to describe copying or moving complete data from one server to another, as well as configuring that target server to replace the previous one. Server migrations in the context of web hosting might revolve around setting up web server and database software, copying websites and their configurations, and changing DNS to direct visitors to that new server.

Why Should I Consider a Server Migration?

Server migrations may need to happen for a number of reasons. Organizations may migrate to:

  1. Take advantage of new technology or better service, or to ensure that the operating system (OS) and the hardware beneath it stay up-to-date with current technology.
  2. Move to the cloud for increased flexibility or scalability.
  3. To economize and consolidate hosting and reduce CapEx.
  4. Replace aging infrastructure at the end of its lifecycle.
  5. To expand and distribute hosting to help reduce load at a single point and achieve high availability.

Migrations should be handled with utmost care. You could sink hours of time, effort, and money into a migration only to find yourself onto the wrong server solution, or worse, with downtime and profit loss. It takes considerable planning and forethought to migrate your data onto an optimized server that is right for you. After all, on-average downtime can cost an enterprise $686,000 an hour, so your organization’s success absolutely depends on a successful migration.

5 Step Server Migration Plan

  1. Preparing Your New Server
  2. Assess Data Fidelity
  3. Data Transfer
  4. Testing (QA/QC)
  5. Changing DNS and “Going Live”

Extensions for ReactJS in Visual Studio Code

Development quicker and life easier, install a number of the Visual Studio Extensions that square measure outlined below and create your development a lot of and a lot of power tools than the alternative.

Top 10 Extensions for ReactJs in VSCode are:

  • The Bracket Pair Colorizer extension.
  • The change-case extension.
  • The Code Spell Checker extension.
  • The Duplicate Selection extension.
  • The EditorConfig for VS Code extension.
  • The VSCode React Refactorextension.
  • The npm Intellisense extension.
  • The ESLint extension.
  • The ES7 React/Redux/GraphQL/React-Native snippetsextension.
  • The Prettier – Code formattedextension.

Bracket Pair Colorizer: This extension permits matching brackets to be known with colors. The user will outline the characters to match, and which colors to use. The main aim of this extension is to allow the matching brackets to be identified with colors.

change-case: It is a wrapper around node-change-case for Visual Studio Code. The main job is to quickly modify the case of this choice or current word. It also works with multiple cursors.

Code Spell Checker: It is a basic spell checker that works well with the camelCase code. It basically assists in catching the common spelling errors whereas keeping the number of false positives low.

Duplicate Selection: This extension brings Sublime-like duplication of designated text, it duplicates it inline, and not during a printing operation, just like the default behavior of VSCode.

EditorConfig for VS Code: This extension brings the EditorConfig and .editorconfig support to our VSCode. This plugin mains to override user or workspace settings with settings that are found in .editorconfig files.

VSCode React Refactor: This simple extension provides the refactor code actions for React developers. IT extracts the JSX element to file or function. It also supports the TypeScript and TSX syntax. This extension works well with the classes, functions, and arrow functions.

npm Intellisense: This is a plugin that will auto-complete all the npm modules import statements. All imports for npm modules get automatically handled by this extension.

ESLint: It integrates the ESLint into your VS Code system. The ESLint statically analyzes your code in order to quickly find problems.

ES7 React/Redux/GraphQL/React-Native snippets: This extension helps in providing the JavaScript and React/Redux related snippets in ES7 with Babel plugin options for your VS Code.

Prettier – Code formatter: It is a code formatted. This VS Code package is used to format your JavaScript/matter/CSS exploitation is prettier. It basically parses your code and re-printing it with its own rules.