You are on page 1of 44

NOTES

Back-end
The backend is the sever-side of the website. It stores and arranges data, and also makes sure
everything on the client-side of the website works fine. It is the part of the website that you
cannot see and interact with. It is the portion of software that does not come in direct contact
wite the users. The parts and characteristics developed by backend designers are indirectly
accessed by users through a front-end application. Activities, like writing APIs, creating libraries,
and working with system components without user interfaces or even systems of scientific
programming, are also included in the backend

Backend Languages
• NodeJS
o Node.js is an open-source and cross-platform runtime environment for executing
JavaScript code outside a browser
• PHP
o PHP is a server-side scripting language designed specifically for web development
• C++
o It is a general-purpose programming language and is widely used nowadays for
competitive programming.
• JAVA
o Java is one of the most popular and widely used programming languages and
platforms.
• Python
o Python is a programming language that lets you work quickly and integrate
systems more efficiently.

1
Node.JS
Node.js is an open source and cross-platform runtime environment built on Chrome’s V8
JavaScript engine for executing JavaScript code outside of a browser. You need to recollect that
NodeJS isn’t a framework, and its’s not a programming language. It provides an event-driven,
non-blocking (asynchronous) I/O and cross-platform runtime environment for building highly
scalable server-side applications using JavaScript.
Most people are confused and understand it’s a framework or a programming language. We
often use Node.js for building backend services like APIs, Web App, or Mobile App. It’s utilized in
production by large companies like PayPal, Uber, Netflix, Walmart, etc.

How to install Nodejs in windows:


Step 1: Go to https://nodejs.org/en/

Step 2: click the 18.10.0 Current Button and download node-v18.10.0-x64.msi file
Step 3: double click the file

Complete the wizard simply click the next button

2
How to install Nodejs in Linux /MacOS:
Run this commend
$ sudo apt update
$ sudo apt install nodejs

How to make NodeJS project:


Open cmd / power shell
Run the command
mkdir backend
cd backend
npm init --y

Back-end Frameworks:
• Express: Express is a Nodejs framework used for backend/server-side development. It is
used to build single-page, multi-page, and hybrid web applications. With its help, you can
handle multiple different HTTP requests.
• Django: Django is a Python web-based framework, following the model-template-views
pattern. It is used to build large and complex web applications. Its features include being
fast, secure, and scalable.
• Ruby on Rails: Ruby on Rails is a server-side framework following the model-view-
controller architecture pattern. It provides default structures such as web service, web
pages, and databases.
• Laravel: Laravel is a web application framework for PHP and is robust. The feature which
makes it perfect is reusing the components of different frameworks for creating a web
application.
• Spring: This server-side framework provides infrastructure support for Java applications.
It acts as a support to various frameworks like Hibernate, Struts, EJB, etc. It also has
extensions that help in developing Java applications quickly and easily.

3
Express
Express.js is a small framework that works on top of Node.js web server functionality to simplify
its APIs and add helpful new features. It makes it easier to organize your application’s
functionality with middleware and routing. It adds helpful utilities to Node.js HTTP objects and
facilitates the rendering of dynamic HTTP objects.
Installing Express:

Minimal express app

Output:

4
Database
The Database is an essential part of our life. As we encounter several activities that involve our
interaction with databases, for example in the bank, in the railway station, in school, in a grocery
store, etc. These are the instances where we need to store a large amount of data in one place
and fetch these data easily.
A database is a collection of data that is organized, which is also called structured data. It can be
accessed or stored in a computer system. It can be managed through a Database Management
System (DBMS), a software used to manage data. Database refers to related data in a structured
form.
In a database, data is organized into tables consisting of rows and columns and it is indexed so
data can be updated, expanded, and deleted easily. Computer databases typically contain file
records data like transactions money in one bank account to another bank account, sales and
customer details, fee details of students, and product details. There are different kinds of
databases, ranging from the most prevalent approach, the relational database, to a distributed
database, cloud database, and NoSQL databases.

• Relational Database: A relational database is made up of a set of tables with data that
fits into a predefined category.
• Distributed Database: A distributed database is a database in which portions of the
database are stored in multiple physical locations, and in which processing is dispersed or
replicated among different points in a network.
• Cloud Database: A cloud database is a database that typically runs on a cloud computing
platform. Database service provides access to the database. Database services make the
underlying software-stack transparent to the user.

Relational Database
Relational Model was proposed by E.F. Codd to model data in form of relations or tables. After
designing the conceptual model of Database using ER diagram, we need to convert the
conceptual model in the relational model which can be implemented using any RDBMS languages
like Oracle SQL, MySQL etc

Distributed Database
A distributed database is basically a database that is not limited to one system, it is spread over
different sites, i.e, on multiple computers or over a network of computers. A distributed database
system is located on various sites that don’t share physical components. This may be required
when a particular database needs to be accessed by various users globally. It needs to be
managed such that for the users it looks like one single database.

5
Cloud Database
A NoSQL Cloud Database Services is a database that provides a means that helps to store and
retrieve data is a NoSQL database. The term non-relational/non-SQL is initially referred to as
NoSQL. Big data and web applications are some of its applications that uses NoSQL databases in
real-time and their utilization to boost with time. Sometimes, NoSQL databases are referred to
as ‘Not only SQL’ because query languages related to SQL are also supported. Better command
over accessibility, less difficult level scaling to bunches of devices, and design simplicity are
included in a NoSQL database.

Type of NoSQL database

• Column-based
• Key-value store
• Graph databases
• Document-Based

Why chooses NoSQL?


Google, Facebook, Amazon, and LinkedIn are a few of the top internet companies that originally
use the NoSQL database for overcoming the downside of the Relational Database Management
System (RDBMS). Relational Database Management System is not dependably the best answer
for all circumstances since data handling necessities develop dramatically. A dynamic method
and a better cloud-friendly environment are provided by NoSQL for processing unstructured
data.

6
Difference between NoSQL Databases and SQL Databases

• NoSQL database schema is flexible while SQL database schema is rigid.


• In NoSQL databases, queries are more immediate than SQL databases.
• NoSQL databases are non-relational while SQL databases are relational.
• NoSQL Examples -HBase, Bigtable.
• SQL Examples- Sybase, Access, Oracle, and MySQL.

7
ORM
Object-Relational Mapping (ORM) is a technique that lets you query and manipulate data from a
database using an object-oriented paradigm. When talking about ORM, most people are referring
to a library that implements the Object-Relational Mapping technique, hence the phrase "an
ORM".

An ORM library is a completely ordinary library written in your language of choice that
encapsulates the code needed to manipulate the data, so you don't use SQL anymore; you
interact directly with an object in the same language you're using.

Pros and Cons


Using ORM saves a lot of time because:

• DRY You write your data model in only one place, and it's easier to update, maintain, and
reuse the code.
• A lot of stuff is done automatically, from database handling to I18N.
• It forces you to write MVC code, which, in the end, makes your code a little cleaner.
• You do not have to write poorly-formed SQL (most Web programmers really suck at it,
because SQL is treated like a "sub" language, when it’s a very powerful and complex one).
• Sanitizing; using prepared statements or transactions are as easy as calling a method.
Using an ORM library is more flexible because:

• It fits in your natural way of coding (it's your language!).


• It abstracts the DB system, so you can change it whenever you want.
• The model is weakly bound to the rest of the application, so you can change it or use it
anywhere else.
• It lets you use OOP goodness like data inheritance without a headache.

But ORM can be a pain:


• You must learn it, and ORM libraries are not lightweight tools;
• You must set it up. Same problem.
• Performance is OK for usual queries, but a SQL master will always do better with his
own SQL for big projects.
• It abstracts the DB. While it's OK if you know what's happening behind the scene, it's a
trap for new programmers that can write very greedy statements, like a heavy hit in
a for loop.

8
Type-ORM
Type-ORM is an ORM that can run in NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native,
Native Script, Expo, and Electron platforms and can be used with TypeScript and JavaScript
(ES5, ES6, ES7, ES8). Its goal is to always support the latest JavaScript features and provide
additional features that help you to develop any kind of application that uses databases - from
small applications with a few tables to large scale enterprise applications with multiple
databases.

Installation

Install the npm package:

You need to install reflect-metadata shim:

and import it somewhere in the global place of your app (for example in app.ts):

You may need to install node typings:

9
Install a database driver:
• for MySQL or MariaDB

• for PostgreSQL or Cockroach DB

• for SQLite

• for Microsoft SQL Server

• for sql.js

10
• for Oracle

To make the Oracle driver work, you need to follow the installation instructions
from their site.
• for SAP Hana

SAP Hana support made possible by the sponsorship of Neptune Software.


• for Google Cloud Spanner

Provide authentication credentials to your application code by setting the


environment variable GOOGLE_APPLICATION_CREDENTIALS:

To use Spanner with the emulator you should


set SPANNER_EMULATOR_HOST environment variable:

11
• for MongoDB (experimental)

Make Project in type-ORM with express JS

12
Make Entity in Type ORM

13
GQL

We will use GraphQL API for demonstration. GraphQL is an open-source data query and
manipulation language for APIs and a runtime for fulfilling queries with existing data. It’s neither
an architectural pattern nor a web service. GraphQL was developed internally by Facebook in
2012 before being publicly released in 2015.

GraphQL Operations: As a basic definition, anything that hits the server is called a ‘query’. But
formally, there are three types of Operations, and Query is just one of them and the other two
are Mutations, Subscriptions. A string is written in the GraphQL language that defines one or
more operations and fragments. We will use the ready-made example of Pokemon schema in
this article you can also create your own schema.

GraphQL Query: A GraphQL query is used to read or fetch values. It is given to the GraphQL server
for execution and a result is returned.

14
• Fields: A unit of data that will be returned as part of a query response is known as
a Fields, even if they are nested. The query structure and the result of that query’s
structure will be the same as you can see in the below diagram.
• Aliases: In case two individual queries on the same fields are to be done, we can
use ‘aliases’ to distinguish both the queries. These aliases are added like prefixes
to the query. For example, if we want to retrieve two pokemon and name them
as ‘firstPokemon’ and ‘secondPPokemon’.
• Fragments: GraphQL provides the power to make a sub-type of query fields that
can be used again and again using an identifier attached to it. It is known as a
fragment and is supplied as …fragmentName. Getting multiple objects, each with
possibly different fields
• Operation Name: Till now we are using shorthand syntax, we can also omit query
keyword and name. In this example, we add a query keyword as an operation type
and Electrictype as operation name.

15
FRONTEND

The part of a website that the user interacts with directly is termed the front end. It is also
referred to as the ‘client side’ of the application. It includes everything that users experience
directly: text colors and styles, images, graphs and tables, buttons, colors, and a navigation menu.
HTML, CSS, and JavaScript are the languages used for Front End development. The structure,
design, behavior, and content of everything seen on browser screens when websites, web
applications, or mobile apps are opened up, is implemented by Front End developers.
Responsiveness and performance are two main objectives of the Front End. The developer must
ensure that the site is responsive i.e. it appears correctly on devices of all sizes no part of the
website should behave abnormally irrespective of the size of the screen.

Frontend Languages

• HTML: HTML stands for Hypertext Markup Language. It is used to design the front-end
portion of web pages using a markup language. HTML is the combination of Hypertext
and Markup language. Hypertext defines the link between web pages. The markup
language is used to define the text documentation within the tag which defines the
structure of web pages.
• CSS: Cascading Style Sheets fondly referred to as CSS is a simply designed language
intended to simplify the process of making web pages presentable. CSS allows you to
apply styles to web pages. More importantly, CSS enables you to do this independent of
the HTML that makes up each web page.
• JavaScript: JavaScript is a famous scripting language used to create magic on sites to make
the site interactive for the user. It is used to enhance the functionality of a website to run
cool games and web-based software. Applicable in both front-end and back-end,
Javascript is a key to becoming a good developer

Front End Frameworks and Libraries

• AngularJS: AngularJs is a JavaScript open-source front-end framework that is mainly used


to develop single-page web applications(SPAs). It is a continuously growing and expanding
framework which provides better ways for developing web applications. It changes the
static HTML to dynamic HTML. It is an open-source project which can be free. It extends
HTML attributes with Directives, and data is bound with HTML.

• React.js: React is a declarative, efficient, and flexible JavaScript library for building user
interfaces. ReactJS is an open-source, component-based front-end library responsible
only for the view layer of the application. It is maintained by Facebook. Moreover, React
Js makes Front-end development very easy.

16
• Bootstrap: Bootstrap is a free and open-source tool collection for creating responsive
websites and web applications. It is the most popular HTML, CSS, and JavaScript
framework for developing responsive, mobile-first websites.

• jQuery: jQuery is an open-source JavaScript library that simplifies the interactions


between an HTML/CSS document, or more precisely the Document Object Model (DOM),
and JavaScript. Elaborating the terms, jQuery simplifies HTML document traversing and
manipulation, browser event handling, DOM animations, Ajax interactions, and cross-
browser JavaScript development.

• SASS: It is the most reliable, mature, and robust CSS extension language. It is used to
extend the functionality of an existing CSS of a site including everything from variables,
inheritance, and nesting with ease.

• Flutter: Flutter is an open-source UI development SDK managed by google. It is powered


by the Dart programming language. It builds performant and good-looking natively
compiled applications for mobile (Ios, Android), web, and desktop from a single code
base. The key selling point of flutter is flat development is made easier, expressive, and
flexible with UI and native performance. In march 2021 flutter announce Flutter 2 which
upgrades flutter to build release applications for the web, and the desktop is in beta state.

17
Angular JS

AngularJS was developed in 2008-2009 by Misko Hevery and Adam Abrons and is now maintained
by Google. AngularJS is a Javascript open-source front-end framework that is mainly used to
develop single-page web applications(SPAs). It is a continuously growing and expanding
framework which provides better ways for developing web applications.

It changes the static HTML to dynamic HTML. Its features like dynamic binding and dependency
injection eliminate the need for code that we have to write otherwise. AngularJS is rapidly
growing and because of this reason, we have different versions of AngularJs with the latest stable
being 1.7.7. It is also important to note that Angular is different from AngularJs. It is an open-
source project which can be freely used and changed by anyone. It extends HTML attributes with
Directives, and data is bound with HTML.

Example

18
How to make new Angular project

Folder Structure

19
DEVOPS

DevOps is a software development methodology that improves the collaboration between


developers and operations teams using various automation tools. These automation tools are
implemented using various stages which are a part of the DevOps Lifecycle

20
• Continuous Development:
This stage involves committing code to version control tools such as Git or SVN for
maintaining the different versions of the code, and tools like Ant, Maven, Gradle for
building/packaging the code into an executable file that can be forwarded to the QAs for
testing.

• Continuous Integration:
The stage is a critical point in the whole DevOps Lifecycle. It deals with integrating the
different stages of the DevOps lifecycle and is, therefore, the key in automating the whole
DevOps Process.

• Continuous Deployment:
In this stage the code is built, the environment or the application is containerized and is
pushed onto the desired server. The key processes in this stage are Configuration
Management, Virtualization, and Containerization.

• Continuous Testing:
The stage deals with automated testing of the application pushed by the developer. If
there is an error, the message is sent back to the integration tool, this tool, in turn, notifies
the developer of the error, If the test was a success, the message is sent to Integration-
tool which pushes the build on the production server.

• Continuous Monitoring:
The stage continuously monitors the deployed application for bugs or crashes. It can also
be set up to collect user feedback. The collected data is then sent to the developers to
improve the application.

TOOLs

1. Linux
2. Terraform
3. Kubernetes
4. Nginx
5. Docker
6. Jenkins
7. AWS (Amazon Web serves)
8. Ansible

21
Linux

Linux is a community of open-source Unix like operating systems that are based on the Linux
Kernel. It was initially released by Linus Torvalds on September 17, 1991. It is a free and open-
source operating system and the source code can be modified and distributed to anyone
commercially or noncommercially under the GNU General Public License.

Initially, Linux was created for personal computers and gradually it was used in other machines
like servers, mainframe computers, supercomputers, etc. Nowadays, Linux is also used in
embedded systems like routers, automation controls, televisions, digital video recorders, video
game consoles, smartwatches, etc. The biggest success of Linux is Android (operating system) it
is based on the Linux kernel that is running on smartphones and tablets. Due to android Linux
has the largest installed base of all general-purpose operating systems. Linux is generally
packaged in a Linux distribution.

Linux Distribution

Linux distribution is an operating system that is made up of a collection of software based on


Linux kernel or you can say distribution contains the Linux kernel and supporting libraries and
software. And you can get Linux based operating system by downloading one of the Linux
distributions and these distributions are available for different types of devices like embedded
devices, personal computers, etc. Around 600 + Linux Distributions are available and some of the
popular Linux distributions are:

• MX Linux
• Manjaro
• Linux Mint
• elementary
• Ubuntu
• Debian
• Solus
• Fedora
• openSUSE
• Deepin

22
Terraform

Before learning about Multicloud, we must know what is a cloud?. Cloud is a name given to
groups of different kinds of services provided by the server and is available over the internet.
Example: Compute Units, Storage Units (like google drive).Different companies have built their
own data centers to provide these cloud services. Example: AWS, GCP, Azure, etc. When a
company decides to use different cloud platforms (mentioned above) to develop and use in an
architecture it is called Multicloud.

Terraform is a tool or software program that helps to work with different cloud platforms at a
time. Each cloud platform has its own set of rules, syntax, and commands to work with, Terraform
makes it easy for us to work with all such clouds at the same time. Terraform uses different
plugins for different cloud platforms. So if you use terraform you do not need to learn the
different syntax, commands, or rules required by the platforms. Terraform will automatically
connect to platforms without you being worry.

23
Kubernetes

Kubernetes is an open-source Container Management tool which automates container


deployment, container scaling, and descaling and container load balancing (also called as
container orchestration tool). It is written in Golang and has a huge community because it was
first developed by Google and later donated to CNCF (Cloud Native Computing Foundation).
Kubernetes can group ‘n’ number of containers into one logical unit for managing and deploying
them easily. It works brilliantly with all cloud vendors i.e. public, hybrid and on-premises.

Kubernetes is an open-source platform that manages Docker containers in the form of a cluster.
Along with the automated deployment and scaling of containers, it provides healing by
automatically restarting failed containers and rescheduling them when their hosts die. This
capability improves the application’s availability

Features of Kubernetes

• Automated Scheduling: Kubernetes provides advanced scheduler to launch container on


cluster nodes. It performs resource optimization.

• Self-Healing Capabilities: It provides rescheduling, replacing and restarting the containers


which are died.

• Automated Rollouts and Rollbacks: It supports rollouts and rollbacks for the desired state
of the containerized application.

• Horizontal Scaling and Load Balancing: Kubernetes can scale up and scale down the
application as per the requirements.

24
Nginx

Nginx is a web server that was developed by Nginx.inc and initially released on 4 October 2004.
Nginx can also be used as a reverse proxy server which revises the request from the client and
sends the request to the proxy server. It also acts as reverse caching and works efficiently with
static files like JS files, CSS files etc. It improves content and application quality and security. It is
an open-source fast, lightweight, and high-performance web server that can be used to serve
static files. Some companies using Nginx include IBM, GOOGLE, GITLAB, DuckDuckgo, etc.

25
Docker

Docker is a set of platforms as a service (PaaS) product that use the Operating system level
visualization to deliver software in packages called containers. Containers are isolated from one
another and bundle their own software, libraries, and configuration files; they can communicate
with each other through well-defined channels. All containers are run by a single operating
system kernel and therefore use fewer resources than a virtual machine.

Difference between Docker Containers and Virtual Machines

1. Docker Containers

• Docker Containers contain binaries, libraries, and configuration files along with the
application itself.
• They don’t contain a guest OS for each container and rely on the underlying OS kernel,
which makes the containers lightweight.
• Containers share resources with other containers in the same host OS and provide OS-
level process isolation.

2. Virtual Machines

• Virtual Machines (VMs) run on Hypervisors, which allow multiple Virtual Machines to run
on a single machine along with its own operating system.
• Each VM has its own copy of an operating system along with the application and
necessary binaries, which makes it significantly larger and it requires more resources.
• They provide Hardware-level process isolation and are slow to boot.

Installing Docker on Ubuntu

• Installing Docker Engine

• Check if docker is successfully installed in your system

26
Jenkins

Jenkins is a tool that is used for automation, and it is an open-source server that allows all the
developers to build, test and deploy software. It works or runs on java as it is written in java. By
using Jenkins we can make a continuous integration of projects(jobs) or end-to-endpoint
automation.

Let us do discuss the necessity of this tool before going ahead to the procedural part for
installation. Nowadays, humans are becoming lazy day by day so even having digital screens and
just one click button in front of us then also need some automation. Here, I’m referring to that
part of automation where we need not have to look upon a process(here called a job) for
completion and after it doing another job.

Installation of Jenkins in windows:

• Before installing Jenkins you should have already installed java on your device as above
said it works on java, so it’s important to install and for that, you should install version
jdk8. You can find the download it from the link provided. Make sure while downloading
JDK8, choose a favorable option based on your OS (like windows X 64 bit), and then install
the JDK8.
o After installing java check it by using command prompt by java -version and this
will show whether you have it or not.

• Now, go to the official website of Jenkins i.e. www.jenkins.io. Here you will have two
options one is an LTS release and one is a weekly release. Download Jenkins for windows
from the LTS section(recommended).

• After download, open that zip(compressed) file, and by right click and choose the all
extract option extract the file. We are doing extraction to unzip the compressed file.

• After extracting, you can see a new folder of Jenkins. Open it and install Jenkins. After
installing, it will automatically take you to the browser where localhost::8080 is running.
8080 is the by default port of Jenkins. And if the browser automatically doesn’t open then
simply search localhost::8080.
o After this, you will see the dashboard or interface of Jenkins. If you are installing
it the first time then it will show you some plugins which are recommended to
install. And then, you are ready to use Jenkins.

27
Procedure:

“We will be creating a very basic job that will throw some output. So, let us begin. Creating and
running a job on Jenkins is as follows”

Step 1: Click on a new item, and then you will have a page on which you have to give your name
to your job and choose ‘freestyle project’ or any other option according to your need and then
click ‘ok’.

Step 2: After this, you will reach a page where you have different options (like build, build
triggers, source code management) that help you manage your job.

28
Step 3: Now, we will give some description of our job.

Step 4: Now, you have to provide which source code management tool you are using since here
we are not using anyone so will choose the ‘none’ option.

Step 5: After this, if you want to give some triggers then you can choose accordingly even Jenkins
provides us scheduled triggers. And you can choose to build an environment also accordingly.
But, here we are making a simple job, so we are not using any triggers and build environment
options.

29
Step 6: In the build section we have an option ‘Execute Windows batch command’ by which we
can write some command or code.

Step 7: Now, you can give the command according to your need.

30
Step 8: Now, we will run it for which click the ‘build now’ option and a building history will be
created then click on it.

Step 9: Now, click on console output, and you can see your output. Also, by console output, you
can see whether your job is failed or successful.

31
Ansible
Ansible is an open-source IT engine that automates application deployment, cloud provisioning,
intra service orchestration, and other IT tools.

It is an automation and orchestration tool popular for the following reasons:

• Simple to Install.
• Free and open source.
• Lightweight and consistent.
• OpenSSH security features make it very secure.

Ansible Concepts

• Control node: Commands and Playbooks can run by invoking /usr/bin/ansible or


/usr/bin/ansible-playbook, from any control node. You can use any computer that has
Python installed on it as a control node. However, one can not use a computer with
Windows OS as a control node. One can have multiple control nodes.
• Managed nodes: Also sometimes called “hosts”, Managed nodes are the network devices
(and/or servers) you manage with Ansible.
• Inventory: Also sometimes called “hostfile”, Inventory is the list of Managed nodes use
to organize them. It is also used for creating and nesting groups for easier scaling.
• Modules: These are the units of code executed by Ansible. Each module can be used for
a specific purpose. One can invoke a single module with a task, or invoke several different
modules in a playbook.
• Tasks: The units of action in Ansible. One can execute a single task once with an ad-hoc
command.
• Playbooks3: These are the ordered list of tasks that are saved so you can run those tasks
in that order repeatedly. Playbooks are written in YAML and are easy to read, write, share
and understand.

32
Installation

33
AWS

Amazon Web Services (AWS), a subsidiary of Amazon.com, has invested billions of dollars in IT
resources distributed across the globe. These resources are shared among all the AWS account
holders across the globe. This account themselves are entirely isolated from each other. AWS
provides on-demand IT resources to its account holders on a pay-as-you-go pricing model with
no upfront cost. Amazon Web services offers flexibility because you can only pay for services you
use or you need. Enterprises use AWS to reduce capital expenditure of building their own private
IT infrastructure (which can be expensive depending upon the enterprise’s size and nature). AWS
has its own Physical fiber network that connects with Availability zones, regions and Edge
locations. All the maintenance cost is also bared by the AWS that saves a fortune for the
enterprises.

Security of cloud is the responsibility of AWS but Security in the cloud is Customer’s
Responsibility. The Performance efficiency in the cloud has four main areas:-

• Selection
• Review
• Monitoring
• Tradeoff

Each region is divided into at least two availability zones that are physically isolated from each
other, which provides business continuity for the infrastructure as in a distributed system. If one
zone fails to function, the infrastructure in other availability zones remains operational. The
largest region North Virginia (US-East), has six availability zones. These availability zones are
connected by high-speed fiber-optic networking.

There are over 100 edge locations distributed all over the globe that are used for the CloudFront
(content delivery network). CloudFront can cache frequently used content such as images and
videos (live streaming videos also) at edge locations and distribute it to edge locations across the
globe for high-speed delivery and low latency for end-users. It also protects from DDOS attacks.

34
AWS Management Console

The AWS management console is a web-based interface to access AWS. It requires an AWS
account and also has a smartphone application for the same purpose. So When you sign in for
first time, you see the console home page where you see all the services provided by AWS. Cost
monitoring is also done through the console.

AWS resources can also be accessed through various Software Development Kits (SDKs), which
allows the developers to create applications as AWS as its backend. There are SDKs for all the
major languages (e.g., JavaScript, Python, Node.js, .Net, PHP, Ruby, Go, C++). There are mobile
SDKs for Android, iOS, React Native, Unity, and Xamarin. AWS can also be accessed by making
HTTP calls using the AWS-API. AWS also provides a Command Line Interface (CLI) for remotely
accessing the AWS and can implement scripts to automate many processes. This Console is also
available as an app for Android and iOS. For mobile apps, you can simply download AWS console
app.

AWS Cloud Computing Models

There are three cloud computing models available on AWS.

• Infrastructure as a Service (IaaS): It is the basic building block of cloud IT. It generally
provides access to data storage space, networking features, and computer hardware
(virtual or dedicated hardware). It is highly flexible and gives management controls over
the IT resources to the developer. For example, VPC, EC2, EBS.
• Platform as a Service (PaaS): This is a type of service where AWS manages the underlying
infrastructure (usually operating system and hardware). This helps the developer to be
more efficient as they do not have to worry about undifferentiated heavy lifting required
for running the applications such as capacity planning, software maintenance, resource
procurement, patching, etc., and focus more on deployment and management of the
applications. For example, RDS, EMR, Elastic Search.
• Software as a Service (SaaS): It is a complete product that usually runs on a browser. It
primarily refers to end-user applications. It is run and managed by the service provider.
The end-user only has to worry about the application of the software suitable to its needs.
For example, Saleforce.com, Web-based email, Office 365.

35
Example

36
37
38
39
40
41
42
43
44

You might also like