Hard shutdown is the opposite of graceful shutdown: insteand of allowing the OS (operating system) to properly shut down its processes and close the connections, the OS is turned off immediately. While it saves some time, it might cause unexpected problems or data loss, or even failure to boot.
Archives: Glossary
Kubernetes
Kubernetes (often abbreviated as K8s) offers a framework to run distributed systems efficiently. It’s a platform that helps managing containerized workloads and services, and even takes care of scaling. Google open-sourced it in 2014.
Lts
LTS means long-term support. The acronym is often used to mark Node.js release lines that will be maintained and supported for an extended period. There are two separate kinds of LTS releases: Active and Maintenance. The Active release line often gets new features and other improvements beside security patches and bug fixes, and the Maintenance only gets the latter. It should be preferred to update to an Active release from Maintenance when possible.
Linux also has LTS versions of the kernel. Long term support is a feature where, unlike standard releases which are supported for a limited time and cease receiving updates unless patched by users manually, the LTS release receives security patches and bug fixes until it reaches its end-of-life. This allows systems using this kernel version to continue being used safely without having to apply additional patches manually.
An LTS release is ideal for use in production environments where stability is paramount and upgrading to new versions is often disruptive. For development or test environments, using the latest standard release is often more desirable as it contains the latest features and improvements.
Microservices
Microservices are not a tool, rather a way of thinking when building software applications. Let’s begin the explanation with the opposite: if you develop a single, self-contained application and keep improving it as a whole, it’s usually called a monolith. Over time, it’s more and more difficult to maintain and update it without breaking anything, so the development cycle may become a continuous progress of fixing some things while breaking others. If you apply the way of microservices, then you break down a potential monolith into smaller, more manageable, self-contained individual pieces that communicate with each other when needed. Then you don’t have to worry that much when you add more features because changes in a service can’t break a feature in another. This not only saves time, but makes development more secure too. It’s also easier to distribute work among autonomous teams, even across the globe.
Native Modules
Native modules in NodeJS context are modules that are written in C/C++ to interact with lower level functions/libraries. Those functions are then wrapped using the NaN, or node-addons-api to make then available in NodeJS.
Node.Js
Node.js is an asynchronous event-driven JavaScript runtime and is the most effective when building scalable network applications. Node.js is free of locks, so there’s no chance to dead-lock any process.
Npm
npm is a software registry that serves over 1.3 million packages. npm is used by open source developers from all around the world to share and borrow code, as well as many businesses. There are three components to npm:
the website
the Command Line Interface (CLI)
the registry
Use the website to discover and download packages, create user profiles, and handle other aspects of your npm experience. You can grant organizations access to public or private components.
The command-line interface (CLI) is how most Node.js developers work with npm.
The registry is a massive public database of JavaScript programs as well as meta-information about them.
Through2
through2 is a utility library to make NodeJS streams more ergonomic to use.
What Are Streams In Node Js
Streams are objects that allow you to read and write data from a source in a continuous manner. There are four main categories of streams in Node.js: readable, writable, duplex, and transform. Each stream is an eventEmitter instance that emits different events at various intervals.
The readable stream is a stream that is used for read operations. The writable stream as the name suggests is a stream used for write operations. A duplex stream is a stream that performs both read and write operations. A transform stream is a stream that uses it input to compute an output. The streams throw several events since they are eventEmitter instances. These events are used to track and monitor the stream.
Streams are divided into readable and writable streams. The name suggests that the writable stream is a stream for writing data. A duplex stream is a stream that performs both reading and writing operations. A transform stream uses input to compute an output. The streams throw numerous events since they are eventEmitter instances. These events are utilized to track and monitor the stream.
What Are The Advantages Of Microservices
The advantages of microservices
Microservices are not restricted to any one programming language, so they are language agnostic. Each service in a microservice architecture may be written in a different language that supports the chosen communication mechanism, and each service is independent.
Scalability: Each service can be deployed and scaled independently, as required.
Fault isolation: A fault in one microservice does not affect the other microservices.
Ease of deployment: The application is divided into small services, so the application can be deployed quickly and easily.
Unlimited iterations: The application can be quickly iterated and added new features without affecting other parts of the application.
Unit testing: since microservices are separate applications focused on a particular goal, it is simpler for a developer to develop test scripts to ensure that functionality.
Ease of maintenance: A microservice can be updated or replaced without affecting the other services in the application.
Improved performance: Each service can be implemented to optimize a specific function or workflow. For example, you can use a faster database for one service without affecting the other services.