KEMBAR78
Week 3 | PDF | Cloud Computing | Virtualization
0% found this document useful (0 votes)
13 views12 pages

Week 3

The document provides an overview of DevOps practices, including configuration management, continuous integration, automated testing, and cloud computing concepts. It explains the importance of version control systems, particularly Git, and outlines the components and models of cloud computing. Additionally, it discusses the benefits of cloud-native application development and how DevOps enhances full stack development efficiency.

Uploaded by

asnvishwas1244
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)
13 views12 pages

Week 3

The document provides an overview of DevOps practices, including configuration management, continuous integration, automated testing, and cloud computing concepts. It explains the importance of version control systems, particularly Git, and outlines the components and models of cloud computing. Additionally, it discusses the benefits of cloud-native application development and how DevOps enhances full stack development efficiency.

Uploaded by

asnvishwas1244
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/ 12

FSD

Week 3

DevOps is a set of practices that combines software development and IT operations.


● It aims to shorten the systems development life cycle and provide continuous
delivery with high software quality.

Configuration management
● Configuration management is a process for maintaining computer systems,
servers, and software in a desired, consistent state. It's a way to make sure that a
system performs as it's expected to as changes are made over time

Continuous integration
● Continuous integration is a DevOps software development practice where
developers regularly merge their code changes into a central repository, after which
automated builds and tests are run.

Automated testing
● Test automation helps development teams build, test, and ship faster and more
reliably.
● Test automation is the practice of automatically reviewing and validating a
software product, such as a web application, to make sure it meets predefined
quality standards for code style, functionality (business logic), and user
experience.

Infrastructure as code
● Infrastructure as code (also known as IaC) is an advanced system of managing,
monitoring, and provisioning infrastructure through the use of code instead of the
regular manual approach of engaging the processes.

Continuous delivery
● Continuous delivery (CD) is the process of automating build, test, configuration,
and deployment from a build to a production environment. 

Continuous deployment (CD) 


● CI/CD is a method to frequently deliver apps to customers by introducing
automation into the stages of app development. The main concepts attributed to
CI/CD are continuous integration, continuous delivery, and continuous deployment.
Dept. of CSE, JSSP Page
FSD

Continuous monitoring
● Continuous monitoring in DevOps is the process of identifying threats to the
security and compliance rules of a software development cycle and architecture.

Git hub
● GitHub is an online software development platform used for storing, tracking, and
collaborating on software projects. It enables developers to upload their own code
files and to collaborate with fellow developers on open-source projects.

Why do we need version control system


Version control systems allow multiple developers, designers, and team members to work
together on the same project. It helps them work smarter and faster

Fundamentals of Git
1. Create a "repository" (project) with a git hosting tool (like Bitbucket)
2. Copy (or clone) the repository to your local machine
3. Add a file to your local repo and "commit" (save) the changes
4. "Push" your changes to your main branch
5. Make a change to your file with a git hosting tool and commit
6. "Pull" the changes to your local machine
7. Create a "branch" (version), make a change, commit the change
8. Open a "pull request" (propose changes to the main branch)
9. "Merge" your branch to the main branch

Basic local Git Operations

Dept. of CSE, JSSP Page


FSD

What is a Repository ?
A repository also know as repo is nothing but a collection of source code.

Creating a repository
1. In the upper-right corner of any page, use the drop-down menu, and select New
repository.
2. Type a short, memorable name for your repository. For example, "hello-world".
3. Optionally, add a description of your repository. For example, "My first repository
on GitHub."
4. Choose a repository visibility. For more information, see "About repositories."
5. Select Initialize this repository with a README.
6. Click Create repository.

Cloning a repository - git clone


● When you clone a repository, you copy the repository from GitHub.com to your
local machine.

Making and recording changes - git add


● Git has a staging area that modified files must be added to before they can be
committed. This allows for easily breaking changes up into separate commits.

Staging and committing changes - git commit


● Records a snapshot of your changes. Always include a comment with what was
modified.
Dept. of CSE, JSSP Page
FSD

git push
● Your commits aren’t pushed immediately to the remote repository when
committing. This pushes your changes to the remote repository.

git pull –rebase


● If changes have been pushed to your fork by other users, you will need to pull them
in before you can push. This pulls those changes in and applies your changes on
top of them.

Viewing the history of all the changes undoing changes - git log
● The git log command shows the order of the commit history for a repository.
● The command helps in understanding the state of the current branch by showing
the commits that lead to this state.

Git branching
● Git branching allows developers to diverge(move away) from the production
version of code to fix a bug or add a feature.
● Developers create branches to work with a copy of the code without modifying the
existing version.
● You create branches to isolate your code changes, which you test before merging
to the main branch

Merging Branches
● Once you’ve completed work on your branch, it is time to merge it into the main
branch. Merging takes your branch changes and implements them into the main
branch.

CLOUD BASICS
● The term Cloud refers to a Network or Internet.
● Cloud is something, which is present at remote location. Cloud can provide
services over public and private networks, i.e., WAN, LAN or VPN.
● Applications such as e-mail, web conferencing, customer relationship
management (CRM) execute on cloud.

Dept. of CSE, JSSP Page


FSD

What is Cloud Computing?


o Cloud computing is the on-demand delivery of IT resources over the Internet with pay-as-you-
go pricing.
o Instead of buying, owning, and maintaining physical data centers and servers, you can access
technology services, such as computing power, storage, and databases, on an as-needed basis
from a cloud provider

The below diagram shows the architecture of cloud computing -

Components of Cloud Computing Architecture


There are the following components of cloud computing architecture -
1. Client Infrastructure
Client Infrastructure is a Front end component. It provides GUI (Graphical User Interface) to

Dept. of CSE, JSSP Page


FSD

interact with the cloud.


2. Application
The application may be any software or platform that a client wants to access.
3. Service
A Cloud Services manages that which type of service you access according to the client’s
requirement.
Cloud computing service models:
Software as a Service (SaaS) –
o SaaS is also known as "on-demand software".
o It is a software in which the applications are hosted by a cloud service provider.
o Users can access these applications with the help of internet connection and web
browser.
o SaaS applications run directly through the web browser means we do not require
to download and install these applications.
Example: Google Apps, Salesforce Dropbox, Slack, Hubspot, Cisco WebEx.
Platform as a Service (PaaS) –
o PaaS provides a platform for software creation, but using SaaS.
o we can access software over the internet without the need of any platform.
o PaaS cloud computing platform is created for the programmer to develop, test, run,
and manage the applications.
o Example: Windows Azure, Force.com, Magento Commerce Cloud, OpenShift.

Infrastructure as a Service (IaaS) – 


o IaaS is also known as Hardware as a Service (HaaS).
o It is a computing infrastructure managed over the internet.
o The main advantage of using IaaS is that it helps users to avoid the cost and
complexity of purchasing and managing the physical servers.
o It is responsible for managing applications data, middleware, and runtime
environments.
o Example: Amazon Web Services (AWS) EC2, Google Compute Engine (GCE), Cisco
Metapod.
Dept. of CSE, JSSP Page
FSD

4. Runtime Cloud
Runtime Cloud provides the execution and runtime environment to the virtual machines.
5. Storage
Storage is one of the most important components of cloud computing. It provides a huge
amount of storage capacity in the cloud to store and manage data.
6. Infrastructure
Cloud infrastructure includes hardware and software components such as servers, storage,
network devices, virtualization software, and other storage resources that are needed to
support the cloud computing model.
7. Management
Management is used to manage components such as application, service, runtime cloud,
storage, infrastructure, and other security issues in the backend and establish coordination
between them.
8. Security
Security is an in-built back end component of cloud computing. It implements a security
mechanism in the back end.
9. Internet
The Internet is medium through which front end and back end can interact and
communicate with each other.

Deployment Model

o A cloud deployment model is defined by where the infrastructure for the


deployment is located and who controls that infrastructure.

The four cloud computing deployment models are as follows:


1. Public cloud
2. Private cloud
3. Hybrid cloud
4. Community cloud
Public Cloud
● This type of cloud is open to the public.

Dept. of CSE, JSSP Page


FSD

● It is a perfect choice for businesses with low-security concerns.


● As a result, you pay a cloud service provider for networking, computing,
virtualization, and storage accessible via the public internet.

Benefits:
● No hardware setup
● Minimal investment
● No infrastructure management

Limitations:
● License restrictions
● Concerns about data security and privacy
● Reliability issues

Private cloud:
● A Private Cloud is a model of cloud computing where the infrastructure is
dedicated to a single user organization.

Benefits:
1. Data security
2. Supports legacy (Outdated) systems
Limitations:
1. Higher Cost
2. Fixed scalability
3. High maintenance

Community Cloud

Dept. of CSE, JSSP Page


FSD

● This cloud enables a group of organizations to access systems and services


● Organizations could share the community’s infrastructure with common concerns
or tasks.

Benefits of Community Cloud


o Smaller Investment
o Setup Benefits

Hybrid Cloud
● A hybrid cloud is a combination of two or more cloud architectures.
Benefits of Hybrid Cloud
o Cost-Effectiveness
o Security
o Flexibility
Virtualization
● Virtualization is a technique, which allows to share a single physical instance of a
resource or an application among multiple customers and organizations. 

Types of Virtualization:
1. Application Virtualization
● Application virtualization helps a user to have remote access of an application
from a server. 
● The server stores all personal information and other characteristics of the
application but can still run on a local workstation through the internet.
2. Network Virtualization
● The ability to run multiple virtual networks with each has a separate control and
data plan.
● Network virtualization creates virtual networks, logical switches, firewalls, routers,
load balancers, and workload security management systems can be created.
3. Desktop Virtualization
Dept. of CSE, JSSP Page
FSD

● Enables the operating system of end-users to be remotely stored on a server or


data center.
● It enables the users to access their desktops remotely and do so by sitting in any
geographical location
4. Storage Virtualization
● Provides virtual storage systems that facilitate storage management.
5. Server Virtualization
● The main server is divided into many virtual servers, each server can run its own
operating systems.
● Such servers keep changing their identity numbers and processors to facilitate the
masking process.
6. Data Virtualization
● Data is collected from various sources and managed that at a single place without
knowing more about the technical information like how data is collected

Cloud Native Application Development:


● The term cloud native refers to the concept of building and running applications to
take advantage of the distributed computing offered by the cloud delivery model.
● Cloud native apps are designed and built to exploit the scale, elasticity, resiliency,
and flexibility the cloud provides.
● They’re highly scalable, easy to modify, and connect to cloud services to extend
capabilities without a lot of coding.

4 examples of cloud-native applications


1. Software Containers: Software containers are portable, integrated operating
environments encompassing an application and all the software components needed to
run it.
2. Microservices: microservices are pieced together like Lego blocks with minimal custom
coding, facilitating faster and more reliable development
3. Software-defined Infrastructure: Cloud-native applications assume that the underlying
infrastructure is fluid and adaptable to their needs.
4. Application Program Interfaces (APIs): APIs are software connectors that expose
functionality that other software can use.

Dept. of CSE, JSSP Page


FSD

Comparison of cloud services:

How to make full stack development efficient by using DevOps:


a. Greater collaboration and productivity
● By working closely with operations, you’ll get to share your goals, timelines, and
provide constant feedback, leading to higher levels of productivity and greater
quality of results.
b. Faster product or solution delivery
● Encouraging continuous monitoring and feedback among teams, which brings
higher-quality products and solutions to customers at greater speeds
c.Greater security
● Security is integrated at every stage of the product development cycle, you’ll set
the stage for smoother, faster processes; reduced downtime, and the ability to
address potential threats
d. Continuous improvement and innovation
● DevOps is able to develop software products, solutions, and updates, developers
have more time to focus on experimenting with new, additional features or

Dept. of CSE, JSSP Page


FSD

upgrading existing ones. 

Dept. of CSE, JSSP Page

You might also like