10 Libraries You Should Know as a React Developer

Image
 Being a modern React developer is not about knowing just React itself. To stay competitive, it is highly recommended to explore the whole ecosystem In this article I've compiled some of the most useful React component libraries that you could use to speed up your developer workflow. Those will include anything from working with forms, charts, calendars, tables, guides, popups, colors, animations, music, images and so much more. 1. react-hook-form React Hooks for form state management and validation. 2. recharts Redefined chart library built with React and D3. 3. react-big-calendar An events calendar built for React and modern browsers. 4. react-beautiful-dnd Beautiful and accessible drag and drop for lists with React. 5. react-table A library for building powerful tables and data grids. 6. react-joyride Create guided tours for your apps. 7. react-advanced-cropper Create customized crops for your designs. 8. react-colorful A tiny, dependency-free, fast and accessible color picker c...

Amazon Elastic Compute Cloud (Amazon EC2)

In this blog, we will cover all the basics of AWS EC2 which you all should know in order to start using AWS EC2.




Compute services are the backbone that powers most web-based applications. Amazon Elastic Compute Cloud (Amazon EC2) is the foundation that many other Amazon Web Services (AWS) offerings are built upon.

Amazon EC2 offers over 500 instance types. You can choose the latest processor, storage, networking, and operating system to help you match the needs of your workload. Because there are so many options and customizations to choose it becomes difficult to decide an instance type and configuration for their application workloads.


Instance types

An EC2 instance is a virtual machine (VM) that runs in the AWS Cloud. When you launch an instance, you decide on the virtual hardware configuration by choosing an instance type. The instance type that you choose determines the hardware of the host computer used for your instance. Each instance type offers different compute, memory, and storage capabilities, and is grouped into an instance family based on these capabilities. 

An instance is a VM. An instance type is the combination of virtual hardware components, such as CPU and memory, that make up the instance.

Instance types are grouped together into instance families. Each instance family is optimized for specific types of use cases.

Instance families have sub-families, which are grouped according to the combination of processer and storage used.

A virtual central processing unit (vCPU) is a measure of processing ability. For most instance types, a vCPU represents one thread of the underling physical CPU core. For example, if an instance type has two CPU cores and two threads per core, it will have four vCPUs.

The AWS instances are currently categorized into five distinct families. To learn more, expand each of the following five categories.  


General purpose


General purpose instances provide a balance of compute, memory, and networking resources and can be used for a wide range of workloads. These instances are ideal for applications that use these resources in equal proportions, such as web servers and code repositories.


Burstable instance options: Many workloads are not busy all the time and do not require sustained CPU performance. Using a large instance for these low-to-moderate workloads leads to waste and unnecessary cost. 


Compute-optimized

Compute-optimized instances are ideal for compute-bound applications that benefit from high-performance processors. Instances belonging to this family are well suited for compute-intensive operations, such as the following:

  • Batch processing workloads
  • Media transcoding
  • High-performance web servers
  • High-performance computing (HPC)
  • Scientific modeling
  • Dedicated gaming servers and ad server engines
  • Machine learning (ML) inference 

Memory-optimized

Memory-optimized instances are designed to deliver fast performance for workloads that process large data sets in memory.


Storage optimized

Storage optimized instances are designed for workloads that require high, sequential read and write access to very large data sets on local storage. They are optimized to deliver tens of thousands of low-latency, random input/output (I/O) operations per second (IOPS) to applications.


Accelerated computing

Accelerated computing instances use hardware accelerators, or co-processors, to perform some functions more efficiently than is possible in software running on CPUs. Examples of such functions include floating point number calculations, graphics processing, and data pattern matching. Accelerated computing instances facilitate more parallelism for higher throughput on compute-intensive workloads.

If you require high processing capability, you will benefit from using accelerated computing instances, which provide access to hardware-based compute accelerators such as graphics processing units (GPUs), field programmable gate arrays (FPGAs), or AWS Inferentia.


Decoding instance names

Instance names are a combination of the instance family, generation, and size. They can also indicate additional capabilities, such as specific processor type or optimized networking performance.


  • m - The letter in the first position represents the instance family. In many cases you can remember this by what the letter represents.
  • 5 - This number represents the generation of the processor
  • z - It represents attributes and provide additional information about the instance capabilities.
  • n - It provides additional information. Here it stands for network and indicates high throughput and low network latency.
  • xlarge - It represents the size of the instance.

Instance sizing

EC2 instances are sized based on the combined hardware resources consumed by that instance type. This means the size is the total configured capacity of vCPU, memory, storage, and networking. The sizes range from nano to upwards of 32xlarge, with a nano-sized instance using the least amount of hardware resources and the 32xlarge instance using the most amount of hardware resources (128 vCPU and 1,024 GiB memory). Let's take a quick look at a size comparison chart to help you understand how the allocated hardware corresponds to the instance size. In the case of the general purpose T instance family, the vCPU allocation remains the same but the memory doubles with each, larger size.

Instance Family   Instance Size   vCPU  Memory (GiB)
General purpose     t4g.nano           2          .5     
General purpose     t4g.micro           2           1
General purpose     t4g.small            2           2
General purpose     t4g.medium        2           4 
General purpose     t4g.large             2           8


Additional characteristics

Instance names can include additional capabilities. This is a list of additional items that you might see in an instance name and what they mean.

a – AMD processors

g – AWS Graviton processors

i – Intel processors

d – Instance store volumes

n – Network optimization

b – Block storage optimization

e – Extra storage or memory

z – High frequency










Comments

Popular posts from this blog

Javascript Fetch API

Setting up Node JS project with ESLint and Preetier