Sr No
|
SQL
|
NOSQL
|
1
|
SQL
databases provide store of related data tables
|
NOSQL
databases store JSON-like filed value pair documents
|
2
|
SQL tables create a
strict data template, so it’s difficult to make mistakes
|
NoSQL is more flexible.
It can store any data anywhere which leads to consistency issues.
|
3
|
SQL
has schema information such as primary keys, indexes and relationships.
|
In
NoSQL data can be added anywhere anytime. There is no need to specify
document design. NOSQL generally adds id value automatically to each
document.
|
4
|
When data requirement is
clear SQL is more suitable
|
When data requirement is
not clear NOSQL is more suitable
|
5
|
SQL
enforces data integrity rules using foreign key constraints
|
Ideally
one documents has all the information.
|
6
|
SQL transactions ensure
that either all operations are successful or failed.
|
Updating document is
atomic. But there are no transaction equivalent of updating multiple documents
|
7
|
SQL
is lightweight declarative language
For
example :
INSERT INTO book (
`ISBN`, `title`, `author`
)
VALUES (
'9780992461256',
'Full
Stack JavaScript',
'Colin
Ihrig & Adam Bretz'
);
UPDATE book
SET price = 19.99
WHERE ISBN = '9780992461256'
|
NOSQL
queries are JSON-like.
For
example :
db.book.insert({
ISBN: "9780992461256",
title: "Full Stack
JavaScript",
author: "Colin Ihrig &
Adam Bretz"
});
db.book.update(
{ ISBN: '9780992461256' },
{ $set: { price: 19.99 } }
);
|
9
|
A well-designed SQL database will almost certainly perform
better than a badly designed NoSQL equivalent and vice versa.
|
Generally NOSQL is
faster than SQL
|
10
|
To
distribute load on multiple servers is tricky in SQL
|
Very
easy to scale
|
11
|
SQL faces less issues as
compared to NOSQL
|
System admins has less
experience to NOSQL databases which lead to security or system problems.
|
12
|
Where
to use SQL:
1. Data requirement is known
2. Data integrity is essential
|
Where
to use NOSQL:
2. Speed and scalability is imperative
|
SQL vs NOSQL
Labels:
Databases
Secure execution environment and communication in cloud
How does one can ensure secure execution environments and communications in cloud ?
In a cloud environment, applications are run on different servers in a distributed
mode. These applications interact with the outside world and other applications
and may contain sensitive information whose inappropriate access would be
harmful to a client. In addition, cloud computing is increasingly being used
to manage and store huge amounts of data in database applications that are
also co-located with other users’ information. Thus, it is extremely important
for the cloud supplier to provide a secure execution environment and secure
communications for client applications and storage.
Secure Execution Environment
Configuring computing platforms for secure execution is a complex task; and in many instances it is not performed properly because of the large number of parameters that are involved. This provides opportunities for malware to exploit vulnerabilities, such as downloading code embedded in data and having the code executed at a high privilege level.
In cloud computing, the major burden of establishing a secure execution environment is transferred from the client to the cloud provider. However, protected data transfers must be established through strong authentication mechanisms, and the client must have practices in place to address the privacy and confidentiality of information that is exchanged with the cloud. In fact, the client’s port to the cloud might provide an attack path if not properly provisioned with security measures. Therefore, the client needs assurance that computations and data exchanges are conducted in a secure environment. This assurance is affected by trust enabled by cryptographic methods. Also, research into areas such as compiler-based virtual machines promises a more secure execution environment for operating systems.
Another major concern in secure execution of code is the widespread use of “unsafe” programming languages such as C and C++ instead of more secure languages such as object-oriented Java and structured, object-oriented C#.
Secure Communications
As opposed to having managed, secure communications among the computing resources internal to an organization, movement of applications to the cloud requires a reevaluation of communications security. These communications apply to both data in motion and data at rest.
Secure Execution Environment
Configuring computing platforms for secure execution is a complex task; and in many instances it is not performed properly because of the large number of parameters that are involved. This provides opportunities for malware to exploit vulnerabilities, such as downloading code embedded in data and having the code executed at a high privilege level.
In cloud computing, the major burden of establishing a secure execution environment is transferred from the client to the cloud provider. However, protected data transfers must be established through strong authentication mechanisms, and the client must have practices in place to address the privacy and confidentiality of information that is exchanged with the cloud. In fact, the client’s port to the cloud might provide an attack path if not properly provisioned with security measures. Therefore, the client needs assurance that computations and data exchanges are conducted in a secure environment. This assurance is affected by trust enabled by cryptographic methods. Also, research into areas such as compiler-based virtual machines promises a more secure execution environment for operating systems.
Another major concern in secure execution of code is the widespread use of “unsafe” programming languages such as C and C++ instead of more secure languages such as object-oriented Java and structured, object-oriented C#.
Secure Communications
As opposed to having managed, secure communications among the computing resources internal to an organization, movement of applications to the cloud requires a reevaluation of communications security. These communications apply to both data in motion and data at rest.
Secure cloud communications involves the structures, transmission methods,
transport formats, and security measures that provide confidentiality, integrity, availability, and authentication for transmissions over private and public
communications networks. Secure cloud computing communications should
ensure the following:
Confidentiality — Ensures that only those who are supposed to access data can retrieve it. Loss of confidentiality can occur through the intentional release of private company information or through a misapplication of network rights. Some of the elements of telecommunications used to ensure confidentiality are as follows:
Confidentiality — Ensures that only those who are supposed to access data can retrieve it. Loss of confidentiality can occur through the intentional release of private company information or through a misapplication of network rights. Some of the elements of telecommunications used to ensure confidentiality are as follows:
Network security protocols
Network authentication services
Data encryption services
Network authentication services
Data encryption services
Integrity — Ensures that data has not been changed due to an accident
or malice. Integrity is the guarantee that the message sent is the message
received and that the message is not intentionally or unintentionally
altered. Integrity also contains the concept of non-repudiation of a message
source. Some of the constituents of integrity are as follows:
Firewall services
Communications Security Management
Intrusion detection services
Availability — Ensures that data is accessible when and where it is needed, and that connectivity is accessible when needed, allowing authorized users to access the network or systems. Also included in that assurance is the guarantee that security services for the security practitioner are usable when they are needed. Some of the elements that are used to ensure avail- ability are as follows:
Firewall services
Communications Security Management
Intrusion detection services
Availability — Ensures that data is accessible when and where it is needed, and that connectivity is accessible when needed, allowing authorized users to access the network or systems. Also included in that assurance is the guarantee that security services for the security practitioner are usable when they are needed. Some of the elements that are used to ensure avail- ability are as follows:
-
Fault tolerance for data availability, such as backups and redundant
disk systems
-
Acceptable logins and operating process performances
-
Reliable and inter-operable security processes and network security
mechanisms
Labels:
Cloud Computing,
Computer Engineering,
Mar 2015
Virtual Machines
What is Virtual Machine? Discuss VMM in detail.
A virtual machine (VM) is an operating system OS or application environment that is installed on software which imitates dedicated hardware. The end user has the same experience on a virtual machine as they would have on dedicated hardware.
VMM high level architecture
A VMM implementation is made of various core components that are required for every VMM installation.
The following components are central to each VMM installation:
VMM Server and VMM Database
The VMM server contains the core Windows service that includes VMM engine. The VMM database can reside either locally on VMM server or on a remote database server.
VMM Administrator Console
It is main user interface for managing a virtualized infrastructure using VMM.
Administartor Console has five main views and one optional view :
A virtual machine (VM) is an operating system OS or application environment that is installed on software which imitates dedicated hardware. The end user has the same experience on a virtual machine as they would have on dedicated hardware.
![]() | ||||||||||||||
| Figure 1: VMM high level architecture |
A VMM implementation is made of various core components that are required for every VMM installation.
The following components are central to each VMM installation:
- VMM server
- VMM database
- VMM Windows PowerShell cmdlet interface
- VMM administrator console
- VMM library
- Managed virtualization hosts
- VMM Self-Service Portal
- Managed virtualization managers [ Optional ]
- OpsMgr management packs for monitoring, reporting and PRO [Optional]
VMM Server and VMM Database
The VMM server contains the core Windows service that includes VMM engine. The VMM database can reside either locally on VMM server or on a remote database server.
VMM Administrator Console
It is main user interface for managing a virtualized infrastructure using VMM.
Administartor Console has five main views and one optional view :
- Host view
- virtualized machines view
- Jobs view
- Library view
- Administration view
- Reporting view [optional]
Labels:
Cloud Computing,
Computer Engineering,
Mar 2015
Subscribe to:
Posts (Atom)
