Virtualization and containerization are two different approaches to creating and managing virtual environments for software applications.
Virtualization involves creating a virtual machine (VM) that acts as a separate, self-contained operating system environment. Each VM runs its own operating system and applications, and has its own set of virtual hardware resources, such as CPU, memory, and storage. Virtualization allows multiple virtual machines to run on a single physical server, improving utilization and reducing costs. Examples of virtualization technology include VMware and Hyper-V.
Containerization, on the other hand, is a newer approach to virtualization that is designed to be more lightweight and efficient. Containers are similar to virtual machines, in that they provide a self-contained environment for running applications. However, unlike virtual machines, containers do not include a full operating system. Instead, they share the host operating system and rely on the host for system services. T
A Service Level Objective (SLO) is a target or goal that a service provider sets for a specific service or service component, in terms of performance, availability, or some other quality metric. The SLO defines what the service provider considers to be an acceptable level of service, and provides a clear and measurable way to track the performance of the service over time.
An SLO is typically expressed as a specific, quantifiable target, such as "99.95% availability" or "mean response time of less than 500 milliseconds". The SLO can be used to track the performance of the service, and to identify areas where improvements can be made.
The SLO is often used in conjunction with a Service Level Agreement (SLA), which is a formal agreement between a service provider and a customer that outlines the level of service that will be delivered. The SLO forms the basis for the SLA, and provides a clear and measurable target for the service provider to meet.
In summary, an SLO is a specific and measurable target that
TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) are two of the most commonly used protocols for transmitting data over a network.
TCP is a reliable and connection-oriented protocol, meaning that a virtual connection must be established between the sender and the receiver before data can be transmitted. It ensures that data is delivered to the recipient in the same order it was sent, and that it is received without errors. If a packet of data is lost or corrupted during transmission, TCP will automatically retransmit the missing data until it is successfully received. This makes TCP a great choice for applications that require reliable data transfer, such as email and file transfers.
UDP, on the other hand, is a connectionless and unreliable protocol. Unlike TCP, it does not establish a virtual connection between the sender and the receiver, and it does not guarantee that the data will be delivered in the same order it was sent. It is faster than TCP because it has less overhead, but i
SSL (Secure Sockets Layer), TLS (Transport Layer Security), and mTLS (Mutual TLS) are all security protocols used to secure communications over the internet.
SSL was the original protocol used to secure internet communications, but it has been largely replaced by TLS, which is considered to be more secure. TLS is a cryptographic protocol that provides secure communication between two endpoints, such as a web server and a client browser. It ensures that the data transmitted between the endpoints is confidential and integrity protected.
mTLS, also known as Mutual TLS, is an extension of TLS that adds an extra layer of security by requiring both the client and server to present a valid certificate to each other. This provides a stronger level of identity validation and protects against man-in-the-middle attacks. mTLS is used in situations where it is important to ensure the authenticity of both parties involved in a communication, such as in financial transactions or sensitive data transfers.
In summary, SS
- Horizontal partitioning
- Range based sharding.
- Put different rows into different tables.
- Con
- If the value whose range is used for sharding isn’t chosen carefully, the partitioning scheme will lead to unbalanced servers.
- Vertical partitioning
- Divide data for a specific feature to their own server.
- Pro
An online PDF file compression tool to reduce the size of a .pdf file. Python Flask is used to upload the file to a temporary location on the server.
In the backend, using the PDFNetPython
library that file gets reduced and saved to its final location. After download, the files are automatically deleted from the server after 1 hour. Technologies used in this project: Python3
, Flask
, C
, Shell
, Nix
, Replit
, Git
, HTML
, CSS
, JavaScript
.
I'm soon going to join Amazon Dublin from India and got opportunities to interview with Meta London, Zalando Berlin, Klarna & some other companies. I extensively researched about companies hiring internationally which support visa & relocation for SDE1/2 and above. So sharing list of companies with all of you:
Do consider to UPVOTE, if it helped you.
London