0% found this document useful (0 votes)
258 views

Cloud Native Computing: Daniyal Nagori

Cloud computing provides on-demand access to shared computing resources over the internet. It offers advantages like lower costs, flexibility, scalability, and reliability compared to maintaining physical servers. Modern software development follows a microservices architecture, breaking applications into smaller independent services. Cloud native applications are designed for containerization, orchestration using tools like Kubernetes, and continuous integration/delivery using tools like Jenkins. This allows applications to be more scalable, resilient, and optimized for cloud environments.

Uploaded by

WaqasMirza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
258 views

Cloud Native Computing: Daniyal Nagori

Cloud computing provides on-demand access to shared computing resources over the internet. It offers advantages like lower costs, flexibility, scalability, and reliability compared to maintaining physical servers. Modern software development follows a microservices architecture, breaking applications into smaller independent services. Cloud native applications are designed for containerization, orchestration using tools like Kubernetes, and continuous integration/delivery using tools like Jenkins. This allows applications to be more scalable, resilient, and optimized for cloud environments.

Uploaded by

WaqasMirza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

CLOUD NATIVE COMPUTING

DANIYAL NAGORI
ROAD MAP
WHY CLOUD COMPUTING IS SUCCESSFUL AND EMERGING DAY BY DAY?

STARTS WITH HISTORY


What is a Server?
What is A SERVER?
● A person or thing that serves.

● A server is a computer program or a device that provides services for other programs or devices

(client).

● A server is a computer, a device or a program that is dedicated to managing network resources

● All server is a computer on the network that provides services to other computers now this might be

windows 2008 server and ubuntu server and so on.


IN HOUSE SERVERS VS CLOUD SERVERS
Disadvantages Of In House Server
● Sizeable capital investment required for infrastructure and hardware.

● Dedicated IT support required with a dedicated space needed for the in house server.

● Being more susceptible to data loss during disaster situations. This will be dependent on how often data is
stored securely offsite.

● No recovery time or uptime guarantees.


Cloud Computing
Cloud Computing (cont..)
● Cloud Computing is when you use a computer/server which is provided to you by someone else.
This server has to be accessed over the internet by using a web-based tool for personal or business
use.

● Cloud computing is the delivery of on-demand computing services -- from applications to storage and
processing power -- typically over the internet and on a pay-as-you-go basis.

● Cloud computing is a scalable services consumption and delivery platform that provides on-demand
computing service for shared pool of resources, namely servers, storage, networking, software,
database, applications etc., over the Internet.
Cloud Computing (cont..)
● Cloud computing is the use of various services, such as software development platforms, servers,
storage and software, over the internet, often referred to as the "cloud."

● In general, there are three cloud computing characteristics that are common among all
cloud-computing vendors:

1. The back-end of the application (especially hardware) is completely managed by a cloud vendor.

2. A user only pays for services used (memory, processing time and bandwidth, etc.).

3. Services are scalable.


Why do we need cloud computing?

● Cloud customers can access computing resources like a VM machine, storage, an application, or a
utility on a pay-per-use basis. Customers can choose this method instead of building and
maintaining on-premise computing infrastructures. Companies can opt for cloud services for their
infrastructure needs and save capital, Instead of building their own IT infrastructure which takes a
huge amount of time and capital.

● For instance, if you need a laptop with an i7 processor and 32 GB RAM for completing a workload.
You can either buy a laptop and execute the workload on it. But this laptop will become idle after the
usage which is not profitable for me.
Traditional Way Of Software Development
Traditional Way Of Software Development (cont..)
A monolithic application describes a single-tiered software application in which the
user interface and data access code are combined into a single program from a
single platform.

● Authorization — responsible for authorizing a user


● Presentation — responsible for handling HTTP requests and responding with
either HTML or JSON/XML (for web services APIs).
● Business logic — the application’s business logic.
Traditional Way Of Software Development (cont..)

● Database layer — data access objects responsible for accessing the database.

● Application integration — integration with other services (e.g. via messaging or REST API). Or

integration with any other Data sources.

● Notification module — responsible for sending email notifications whenever needed.


Modern Way Of Software Development
MICROSERVICES
Traditional way VS Modern way
MICROSERVICES
● The term “microservices” (micro services) refers to a software architecture approach that enables
greater agility (ability to move quickly and easily) by breaking applications down into smaller
components.

● “Microservices” refers to a method within software system architecture where an application is


structured as a collection of separate services.

● Microservices is an emerging architecture for the distributed development of cloud applications. In a


microservices architecture, a single large cloud application (“the monolith”) is decoupled into a set of
very small applications (“microservices”).

● Microservices, or microservice architecture, is an approach to application development in which a


large application is built as a suite of modular components or services.
Benefits of Microservices
● Faster Time To Market

● Flexibility and Scalability

● Resiliency

● Organizational Alignment

● Reduction in Cost
Advantages Of Cloud Computing
Cost Savings

The most significant cloud computing benefit is cost savings. Businesses, no matter what their type or
size.

Reliability

With a managed service platform, cloud computing is much more reliable and consistent than in-house
IT infrastructure. Most providers offer a Service Level Agreement which guarantees 24/7/365 and
99.99% availability. if a server fails, hosted applications and services can easily be transited to any of
the available servers.
Advantages of Cloud Computing (cont..)
Manageability

Cloud computing provides enhanced and simplified IT management and maintenance capabilities
through central administration of resources, vendor managed infrastructure and SLA backed
agreements.

Strategic Edge

Ever-increasing computing resources give you a competitive edge over competitors, as the time you
require for IT procurement is virtually nil. Your company can deploy mission critical applications that
deliver significant business benefits, without any upfront costs and minimal provisioning time. Cloud
computing allows you to forget about technology and focus on your key business activities and
objectives. It can also help you to reduce the time needed to market newer applications and services.
What is CLOUD NATIVE?
CLOUD NATIVE (cont..)
● Cloud native is a lot more than just signing up with a cloud provider and using it to run your existing
applications. It affects the design, implementation, deployment, and operation of your application.

● Cloud native is a term used to describe container-based environments.

● Cloud-native technologies are used to develop applications built with services packaged in
containers, deployed as microservices and managed on elastic infrastructure through agile DevOps
processes and continuous delivery workflows.
CLOUD NATIVE (Cont..)
● Cloud native computing uses an open source software stack to deploy applications as
microservices, packaging each part into its own container, and dynamically orchestrating those
containers to optimize resource utilization. Cloud native technologies enable software developers to
build great products faster.

● An approach that builds software applications as:

○ Microservices

○ Containerized

○ Orchestration

○ CI/CD
CONTAINERS
CONTAINERIZATION (cont..)
● Containerization is a lightweight virtualization technology.

● Any application can be bundled in a container can run without any worries about
dependencies, libraries and binaries.

● Container creates the isolated environment with all the required dependencies, libraries
and binaries to run your application without any issue.

● The application can run in any environment.


ORCHESTRATION (cont..)
● Deploying your application with all dependencies into a container is just the first step.

● Once your apps are running in containers, they still need to be managed.

● Starting additional or shutting down running application nodes based on the current load of your
system isn’t that easy. You need to

○ monitor your system,

○ trigger the startup or shutdown of a container,

○ make sure that all required configuration parameters are in place,

○ balance the load between the active application instances

○ share authentication secrets between your containers.


ORCHESTRATION (cont..)
● Doing all of that manually requires a lot of effort and is too slow to react to unexpected
changes in system load.

● You need to have the right tools in place that automatically do all of this.

● Most popular one is KUBERNETES.


Continuous integration / Continuous delivery /
Continuous deployment
CONTINUOUS INTEGRATION

● Continuous integration puts a great emphasis on testing automation to check that the application is
not broken whenever new changes are integrated into the application.

CONTINUOUS DELIVERY

● Continuous Delivery is an extension of continuous integration to make sure that you can release new
changes to your customers quickly in a sustainable way.

● This means that on top of having automated your testing, you also have automated your release
process and you can deploy your application at any point of time by clicking on a button.
Continuous integration / Continuous delivery /
Continuous deployment (Cont..)

CONTINUOUS DEPLOYMENT

● Continuous deployment goes one step further than continuous delivery. With this practice,
every change that passes all stages of your production pipeline is released to your customers.

● There's no human intervention, and only a failed test will prevent a new change to be
deployed to production.

The most popular tool for CI/CD is JENKINS


THANK YOU

You might also like