CCS342-devops- UNIT-1
Computer Science (Anna University)
Scan to open on Studocu
Studocu is not sponsored or endorsed by any college or university
Downloaded by Sahila Devi
CCS342 –DEVOPS
UNIT I INTRODUCTION TO DEVOPS
Devops Essentials - Introduction To AWS, GCP, Azure - Version control
systems: Git and Github.
Introduction:
DevOps is a collection of two words, “Development” and “Operations,”
representing a cultural approach that emphasizes collaboration between
development and operations teams to streamline the entire software delivery
lifecycle.
What is DevOps?
DevOps is a software development approach emphasizing collaboration,
automation, and continuous delivery to provide high-quality products to
customers quickly and efficiently. DevOps breaks down silos between
development and operations teams to enable seamless communication, faster
time-to-market, and improved customer satisfaction.
It allows a team to handle the complete application lifecycle, from
development to testing, operations, and deployment. It shows cooperation
between Development and Operations groups to deploy code to production
quickly in an automated and repeatable manner.
Every phase of the software development lifecycle, including planning, coding,
testing, deployment, and monitoring, is heavily automated in DevOps. This
improves productivity, ensures consistency, and lowers error rates in the
development process.
A culture of continuous improvement is also promoted by DevOps, where
feedback loops are incorporated into the procedure to facilitate quicker iteration
and better decision-making. Organizations can increase their agility, lower costs,
and speed up innovation by adopting DevOps.
Why is DevOps Needed?
• Before DevOps, the development and operation team worked in
complete isolation.
• Testing and Deployment were isolated activities done after design-build.
Hence they consumed more time than actual build cycles.
Downloaded by Sahila Devi
• Without using DevOps, team members spend a large amount of their
time testing, deploying, and designing instead of building the project.
• Manual code deployment leads to human errors in production.
• Coding & operation teams have separate timelines and are not
synch, causing further delays.
How is DevOps different from traditional IT
In this DevOps training, let’s compare the traditional software waterfall model with
DevOps to understand the changes DevOps brings.
We assume the application is scheduled to go live in 2 weeks, and coding is 80%
done. We assume the application is a fresh launch, and the process of buying
servers to ship the code has just begun-
Old Process DevOps
1 After placing an order for new servers,After placing an order for new servers
the Development team works on Development and Operations team
testing. The Operations team works work together on the paperwork to
on extensive paperwork as required set up the new servers. This results
in enterprises to deploy the in better visibility of infrastructure
infrastructure. requirements.
2 Projections about failover, Projections about failover,
redundancy, data center locations, redundancy, disaster recovery, data
and storage requirements are center locations, and storage
skewed as no inputs are available requirements are pretty accurate
from developers who have deep due to the inputs from the
knowledge of the application. developers.
3 The operations team has no clue about In DevOps, the Operations team is
the progress of the Development completely aware of the
team. The operations team develops developers’ progress. Operations
a monitoring plan as per their teams interact with developers and
understanding. jointly develop a monitoring plan
that caters to IT and business
needs. They also use
advanced Application Performance
Downloaded by Sahila Devi
Monitoring (APM) Tools.
4 Before going go-live, the load Before going go-live, the load
testing crashes the application, and testing makes the application a bit
the release is delayed. slow. The development team
quickly fixes the bottlenecks, and
the application is released on time.
Why is DevOps used?
DevOps allows Agile Development Teams to implement Continuous Integration
and Continuous Delivery, which helps them launch products faster into the market.
Other Important reasons are:
1. Predictability: DevOps offers a significantly lower failure rate of new releases.
2. Reproducibility: Version everything so that earlier versions can be restored
anytime.
3. Maintainability: Effortless recovery process in the event of a new
release crashing or disabling the current system.
4. Time to market: DevOps reduces the time to market up to 50% through
streamlined software delivery. It is particularly the case for digital and
mobile applications.
5. Greater Quality: DevOps helps the team improve application
development quality by incorporating infrastructure issues.
6. Reduced Risk: DevOps incorporates security aspects in the software
delivery lifecycle, and it helps reduce defects across the lifecycle.
7. Resiliency: The Operational state of the software system is more stable, secure,
and changes are auditable.
8. Cost Efficiency: DevOps offers cost efficiency in the software
development process, which is always an aspiration of IT management.
Downloaded by Sahila Devi
9. Breaks larger code base into small pieces: DevOps is based on the agile
programming method. Therefore, it allows breaking larger codebases into
smaller and manageable chunks.
DevOps Workflow
Workflows provide a visual overview of the sequence in which input is provided.
It also tells about performed actions, and output is generated for an operations
process.
DevO
ps WorkFlow
Workflow allows the ability to separate and arrange jobs that the users top request.
It also can mirror their ideal process in the configuration jobs.
How is DevOps different from Agile?
DevOps Vs Agile
Stakeholders and communication chain a typical IT process.
Downloaded by Sahila Devi
Agile addresses gaps in Customer and Developer communications
Agile
Process
DevOps addresses gaps in Developer and IT Operations communications
DevOps
Process
Difference between DevOps and Agile
Agile DevOps
Emphasize breaking down barriers DevOps is about software
between developers and management. deployment and operation teams.
Addresses gaps between customer Addresses the gap between the
requirements and development teams. development and Operation team
Focuses more on functional and non- It focuses on operational and business
functional readiness readiness.
Agile development pertains mainly to the DevOps emphasises deploying
company’s way development is thought software in the most reliable and
out. safest ways that aren’t always the
fastest.
Agile development emphasises training DevOps likes to divide and conquer,
all team members to have varieties of spreading the skill set between the
similar and equal skills. So that, when development and operation teams. It
something goes wrong, any team also maintains consistent
member can get assistance from any communication.
member in the absence of the team
leader.
Agile development manages on “sprints”. DevOps strives for consolidated
Downloaded by Sahila Devi
It means that the timetable is much deadlines and benchmarks with
shorter (less than a month), and several significant releases rather than
features are to be produced and released smaller and more frequent ones.
in that period.
DevOps Automation Tools
Automating all the testing processes and configuring them to achieve speed and
agility is vital. This process is known as DevOps automation.
Classified briefly into six different categories.
1. Infrastructure Automation- ex: AWS
2. Configuration Management- ex: Chef
3. Deployment Automation- ex: Jenkins
4. Performance Management- ex: App dynamic
5. Log Management- ex: Splunk
6. Monitoring- ex: Nagios
What is DevOps Lifecycle?
The DevOps Lifecycle is a series of development stages that guide everyone as
efficiently as possible through the end-to-end process of product development.
All of these components of the DevOps lifecycle is necessary to take the
maximum leverage of the DevOps methodology.
DevOps Lifecycle: Key Components
Here are some important DevOps Lifecycle phases / Key components of DevOps:
Downloaded by Sahila Devi
DevOps Lifecycle
Diagram
Stage 1) Continuous Development:
This practice spans the planning and coding phases of the DevOps
lifecycle. Version-control mechanisms might be involved.
Stage 2) Continuous Integration:
This software engineering practice develops software by frequently integrating its
components. It helps to ensure that changes in the source code do not break the
build or cause other problems.
Stage 3) Continuous Testing:
This DevOps lifecycle stage incorporates automated, prescheduled, continued code
tests as application code is written or updated. Such tests can be written manually
or in conjunction with continuous integration tools.
Stage 4) Continuous Deployment:
The deployment process takes place continuously in this DevOps lifecycle phase.
It is performed so that any changes made in the code should not affect the
functioning of a high traffic website.
Stage 5) Continuous Monitoring:
During this phase, developers collect data, monitor each function, and spot errors
like low memory or server connection are broken. For example, when users log in,
they should access their account, and a failure to do so means there’s a problem
with your application.
Downloaded by Sahila Devi
Stage 6) Continuous Feedback:
Continuous feedback is like a progress report. In this DevOps stage, the software
automatically sends out information about performance and issues experienced by
the end-user. It’s also an opportunity for customers to share their experiences and
provide feedback.
Stage 7) Continuous Operations:
It is the last, shortest, and most straightforward phase of DevOps. It also involves
automating the application’s release and all these updates that help you keep
cycles short and give developers and provide more time to focus on developing.
LINUX COMMANDS:
Linux Directory Commands
1. pwd Command
The pwd command is used to display the location of the current working directory.
Syntax:
pwd
Output:
2. mkdir Command
The mkdir command is used to create a new directory under any directory.
Syntax:
1. mkdir <directory name>
Output:
3. rmdir Command
Downloaded by Sahila Devi
The rmdir command is used to delete a directory.
Syntax:
1. rmdir <directory name>
Output:
4. ls Command
The ls command is used to display a list of content of a directory.
Syntax:
ls
Output:
5. cd Command
The cd command is used to change the current directory.
Syntax:
cd <directory name> Output:
Linux File commands
Downloaded by Sahila Devi
touch Command
The touch command is used to create empty files. We can create multiple empty files by
executing it once.
Syntax:
1. touch <file name>
2. touch <file1> <file2> ....
Output:
7. cat Command
The cat command is a multi-purpose utility in the Linux system. It can be used to create a file,
display content of the file, copy the content of one file to another file, and more.
Syntax:
1. cat [OPTION]... [FILE]..
To create a file, execute it as follows:
1. cat > <file name>
2. // Enter file content
Press "CTRL+ D" keys to save the file. To display the content of the file, execute it as follows:
1. cat <file name>
Output:
8. rm Command
The rm command is used to remove a file.
Downloaded by Sahila Devi
Syntax:
rm <file name>
Output:
9. cp Command
The cp command is used to copy a file or directory.
Syntax:
To copy in the same directory:
1. cp <existing file name> <new file name>
To copy in a different directory:
Output:
10. mv Command
The mv command is used to move a file or a directory form one location to another location.
Syntax:
1. mv <file name> <directory path>
Output:
11. rename Command
The rename command is used to rename files. It is useful for renaming a large group of files.
Syntax:
1. rename 's/old-name/new-name/' files
Downloaded by Sahila Devi
For example, to convert all the text files into pdf files, execute the below command:
1. rename 's/\.txt$/\.pdf/' *.txt
Output:
Introduction To AWS
AWS (Amazon Web Services) is a comprehensive, evolving cloud
computing platform provided by Amazon that includes a mixture of infrastructure-
as-a-service (IaaS), platform-as-a-service (PaaS) and packaged-software-as-a-
service (SaaS) offerings. AWS services can offer an organization tools such as
compute power, database storage and content delivery services.
Some of the services that are commonly used by Amazon Web Services:
1. Amazon EC2 :- EC2 can be resettable due to the user's necessity, as long as a
secured computing capacity is available in the cloud. For example, in situations
whereby web traffic changes, this facility can increase its atmosphere, behind the
scenes, to three occurrences when necessary and then contract to a single resource
when weight reduces.
2. Amazon Elastic Beanstalk:- It consists of several programming languages;
such service enables scale and organizes web apps. Just upload the required code,
and the Elastic Beanstalk would automatically handle the setting from the
capacity provision to load balancing and auto-scaling to app health checking.
3. Amazon Lightsail - Easy to present and manage, Amazon Lightsail is
essentially a confidential server and contains all required to launch a
project
Downloaded by Sahila Devi
without delay on a computer-generated machine, such as tools for transferring data,
SSD-based storage, static IP, and DNS management.
4. Amazon Lambda :- It enables organizations for code running with no use
for server management and provisioning. It automatically scales little requests
for a day to so many for a second. Organizations pay for the time used for
computing and no charges while code isn't running.
Amazon Web Services Storage Services
With the quantity of data organizations collect, storing the data seems to be
high in demand. AWS, therefore, helps bring numerous solutions listed below:
● Amazon S3 – With S3, data can be stored and retrieved from anywhere,
including IoT sensors, mobile apps, websites, and others. There's flexibility in
data management, security, and durability for internet storage.
● Amazon Glacier – It's a service for cloud storage meant for storing data for
future use, including long-term backups, highly secure options, and low-cost
Glacier.
● Amazon Elastic Block Store (EBS) - EBS offers block store volumes for cases
of EC2. It is a dependable storage volume attached to whichever running instance
in a similar accessibility zone.
● Amazon Elastic File System (EFS): - EFS can be used with the Amazon Web
Services Cloud resources and services. It's scalable and straightforward; it's
flexible storing of files for on-premise resources. Containing an intuitive interface
allows users to build and file configuring systems without troubling the app
growth and automatic shrinking when files are being added or even removed.
Amazon Web Services Databases
Amazon Web Services offers databases in dual primary flavors:
• Amazon RDS –
Easing the process of setting up, operating, and scaling a relational database
in the cloud, Amazon RDS provides cost-efficient and resizable capacity while
automating time-consuming administrative tasks such as database hardware setup,
repairing, and backups. The enhanced service is for memory performance and
output/input processes. Amazon RDS gives you the freedom to use your relational
database of choice including the most popular open source and commercial agents
and amazon relational database built for the cloud, Amazon Aurora, which offers
Downloaded by Sahila Devi
the performance and availability of traditional commercial databases and fraction
of the cost.
• Amazon Redshift: is a data warehousing service allowing users to examine
data with SQL and other intelligence business instruments. It can be used in
running multifaceted queries compared to terabytes of organized data and
obtain results in seconds.
Services of AWS
Since its existence, AWS has developed into a vital technological cloud
computing. Below are some essential services offered by AWS:
1. Amazon S3: It is a tool used for backing up the internet and less costly for
storage options in the category of object-storage. The central part of this option
is that data stored can be retrieved from virtually anywhere they are needed.
2. AWS Data Transfer Products: As the term suggests, they are collecting data,
transferring data products, and migration that aids the collection of data
seamlessly. They can also allow the monitoring and analysis of data in actual
time.
3. Amazon EC2 (Elastic Compute Cloud): It provides a resizable and secured
capacity for computing, depending on your requirements. The service, therefore,
is designed to enable web-scale cloud computing more reachable.
4. Amazon SNS (Simple Notification Services): It is a tool for delivering
notification messages to a significant number of subscribers via SMS or email.
Alarms can be sent, including service notifications and other messages proposed
to call attention to important information.
5. Amazon KMS (Key Management System) It is a security instrument using
256-bit encryption for data. Also safeguarding it from cybercrime/attacks and
hackers.
6. Amazon Lambda Telegram Channel : It's for code running depending on a
particular event and manages reliant resources. You do not need either
provisioning servers or operating, and how much is paid depending on the length
of time, it takes in executing your code. It's cost-effective, unlike services that
their charges are according to hourly rates.
7. Route 53 It is a DNS service in the cloud that doesn't need you to keep a
separate DNS account. The aim is to provide a cost-effective and reliable
method to route users for businesses to internet apps.
Downloaded by Sahila Devi
Advantages of AWS
• AWS provides a user-friendly programming model, architecture, database
as well as operating system that has been already known to employers.
• AWS is a very cost-effective service. There is no such thing as long-term
commitments for anything you would like to purchase.
• It offers billing and management for the centralized sector, hybrid
computing, and fast installation or removal of your application in
any location with few clicks.
• There is no need to pay extra money on running data servers by AWS.
• AWS offers a total ownership cost at very reasonable rates in comparison
to other private cloud servers.
Disadvantages of AWS
• AWS has supportive paid packages for intensive or immediate response.
Thus, users might need to pay extra money for that.
• There might be some cloud computing problems in AWS especially when
you move to a cloud Server such as backup protection, downtime, and some
limited control.
• From region to region, AWS sets some default limitations on resources
such as volumes, images, or snapshots.
• If there is a sudden change in your hardware system, the application on
the cloud might not offer great performance
Introduction to Cloud Computing
Cloud Computing is the delivery of computing services such as servers, storage,
databases, networking, software, analytics, intelligence, and more, over the Cloud
(Internet).
Cloud Computing, a cloud vendor is responsible for the hardware purchase and
maintenance. They also provide a wide variety of software and platform as a service. We
Downloaded by Sahila Devi
can take any required services on rent. The cloud computing services will be charged
based on usage
Types of Cloud Computing
o Public Cloud: The cloud resources that are owned and operated by a third-party
cloud service provider are termed as public clouds. It delivers computing
resources such as servers, software, and storage over the internet
o
o Private Cloud: The cloud computing resources that are exclusively used inside a
single business or organization are termed as a private cloud. A private cloud may
physically be located on the company’s on-site datacentre or hosted by a third-
party service provider.
o Hybrid Cloud: It is the combination of public and private clouds, which is
bounded together by technology that allows data applications to be shared between
them. Hybrid cloud provides flexibility and more deployment options to the
business.
Downloaded by Sahila Devi
Types of Cloud Services
• Infrastructure as a Service (IaaS): It provides you all the hardware components
you require such as computing power, storage, network, etc.
• Platform as a Service (PaaS): It provides you a platform that you can use to
develop applications, software, and other projects.
• Software as a Service (SaaS): It provides you with complete software to use like
Gmail, google drive, etc.
Google Cloud Platform (GCP)
GCP is a public cloud vendor — like competitors Amazon Web Services
(AWS) and Microsoft Azure. With GCP and other cloud vendors, customers are able
to access computer resources housed in Google’s data centers around the world for
free or on a pay-per-use basis.
GCP offers a suite of computing services to do everything from GCP cost
management to data management to delivering web and video over the web to AI
and machine learning tools.
Google Cloud vs Google Cloud Platform
Google Cloud includes a combination of services available over the internet that
can help organizations go digital. Google Cloud Platform (which provides public
Downloaded by Sahila Devi
cloud infrastructure for hosting web-based applications and is the focus of this blog
post) is a part of Google Cloud.
Some other services that are a part of Google Cloud include:
• Google Workspace, formerly known as G Suite and Google Apps.
This product provides identity management for organizations, Gmail,
and collaboration tools.
• Enterprise versions of Android and Chrome OS. These phone and laptop
operating systems are ways for users to connect to web-based
applications.
• Application programming interfaces (APIs) for machine learning and
enterprise mapping services. These provide software-to-software
communication.
What are Google Cloud Platform services?
Each GCP region offers a category of services. Some services are limited to
specific regions. Major services of Google Cloud Platform include:
• Computing and hosting
• Storage and database
• Networking
• Big Data
• Machine learning
Google Cloud Platform Advantages & Disadvantages
Advantages of GCP
1. Good documentation: We are talking about many pages in total, including a
reasonably detailed API Reference guide.
2. Different storage classes for every necessity: Regional (frequent use), Nearline
(infrequent use), and Coldline (long-term storage).
3. High durability: This suggests that data survives even within the event of the
simultaneous loss of two disks.
4. Many regions available to store your data: North Ameria, South America,
Europe, Asia, and Australia.
Downloaded by Sahila Devi
Disadvantages
1. The support fee is sort of hefty: Around 150 USD per month for the foremost
basic service (Silver class).
2. Downloading data from Google Cloud Storage is expensive. 0, 12 USD per GB.
3. Google Cloud Platform web interface is somewhat confusing. Sometimes I am
lost while browsing around the menus.
4. Prices in both Microsoft Azure (around 0.018 USD per GB/month) or Backblaze
B2 (about 0.005 USD per GB/month) are less than Google Cloud Storage.
5. It has a high pricing schema, almost like AWS S3, so it’s easy to urge
unexpected costs (e.g. number of requests, transfers, etc.).
Cloud Storage in Google Cloud Platform
Google Cloud Platform provides a number of cloud storage choices, each with special
features and applications. The types are listed below.
1. Google Cloud Persistent Disk(Block Storage)
2. Google Cloud Filestore(Network File storage)
3. Google Cloud Storage (Object Storage).
4. Google Cloud Storage for Firebase
5. Google Cloud Storage Transfer Service
Google Cloud Persistent Disks (Block Storage)
A type of block storage called Google Cloud Persistent Disks offers dependable and quick
storage for your virtual machine instances on the Google Cloud Platform.
• We can back up our storage using persistent discs, which allow us to attach discs of
various sorts and sizes, such as SSDs or HDDs, to the necessary virtual machines.
This block storage will boost throughput and decrease latency.
• Because of its high durability and support for snapshots, persistent discs enable us to
take a disc backup when necessary without losing any data.
• Once the disk is attached to the VMs then also we can change the size of the disk
which makes them more flexible it can be done without losing the data.
• Persistent Disks are more secure we can encrypt the data by using a Google key or
customer-managed keys and also we can restrict the access of the disk to specific
users, groups, or resources by using IAM roles.
Google Cloud Filestore (Network File Storage)
A controlled network file storage service offered by Google Cloud Platform is Google Cloud
File Store. It enables reliable performance and high availability for storing and sharing
files.
• We can create files with the aid of file storage that can be mounted onto the
necessary path and accessed from an instance operating on the GCP or on-premises.
• File storage is available in two types:
Downloaded by Sahila Devi
1. Standard tier: It provides a throughput of 800 MB/s per share, which will result
in minimal latency and good performance.
2. Premium tier: The premium tier’s throughput is 1.2 GB/s per share, enables
SSD storage and can be particularly beneficial for applications that require high
IOPs and low latency.
• Automatic snapshots will be taken in the file storage, and since our storage is
automatically backed up, we can prevent data loss.
Google Cloud Storage (Object Storage)
Object storage is scalable, durable, and secure once we store our data in object storage it
can be accessed from anywhere means the object storage is region independent.
1. Object storage is very different from Block storage and file storage in this we store
the data in the form of objects it is more suited for static data like videos, photos,
etc.
2. We can save our data in accordance with our needs; for example, if we frequently
use it, we will keep it in Standard storage, while less frequently accessed data can be
kept in Coldline and Archive for long-term data access.
3. Object storage offers us data encryption, data replication, and lifecycle management
which make it more reliable and we can integrate the object storage with multiple
GCP services like Google Cloud Functions, BigQuery, and AI Platform, enabling
you to build powerful applications.
Features of GCP
• Object Lifecycle Management: Define conditions that trigger data deletion or
transition to a cheaper storage class.
• Object Versioning: Continue to store old copies of objects when they are deleted or
overwritten.
• Retention policies: Define minimum retention periods that objects must be stored
for before they’re deleted.
• The object holds: Place a hold on an object to prevent its deletion
• Customer-managed encryption keys: Encrypt object data with encryption keys
stored by the Cloud Key Management Service and managed by you.
• Customer-supplied encryption keys: Encrypt object data with encryption keys
created and managed by you.
• Uniform bucket-level access: Uniformly control access to your Cloud Storage
resources by disabling object ACLs.
• Requester Pays: Require access to your data to include a project ID to bill for
network charges, operation charges, and retrieval fees.
• Bucket Lock: Bucket Lock allows you to configure a data retention policy for a
Cloud Storage bucket that governs how long objects in the bucket must be retained.
INTRODUCTION TO AZURE
What is Azure?
Azure is Microsoft’s cloud platform, just like Google has its Google Cloud and Amazon has
its Amazon Web Service. Generally, it is a platform through which we can use
Downloaded by Sahila Devi
Microsoft’s resources. For example, to set up a huge server, we will require huge
investment, effort, physical space, and so on. In such situations, Microsoft Azure comes
to our rescue. It will provide us with virtual machines, fast processing of data, analytical
and monitoring tools, and so on to make our work simpler. The pricing of Azure is also
simpler and cost-effective. Popularly termed as “Pay As You Go”, which means how
much you use, pay only for that.
How Microsoft Azure Works?
o It is a private and public cloud platform that helps developers and IT
professionals to build deploy and manage the application. It uses the
technology known as virtualization.
o Virtualization separates the tight coupling between the hardware and the
operating system using an abstraction layer called a hypervisor.
o Hypervisor emulates all the functions of a computer in the virtual
machine, it can run multiple virtual machines at the same time and each
virtual machine can run any operating system such as Windows or Linux.
o Azure takes this virtualization technique and repeats it on a massive scale
in Datacenter owned by Microsoft. Each data center has many racks filled
with servers and each server includes the hypervisor to run multiple
virtual machines.
o The network switch provides connectivity to all those servers.
o One server in each rack runs a special piece of software called fabric
controller. Each fabric controller is connected to another special piece of
software known as the Orchestrator. Each Orchestrator is responsible for
managing the work like responding to user requests.
Microsoft Azure Services
Following are some of the services Microsoft Azure offers:
1. Compute: Includes Virtual Machines, Virtual Machine Scale Sets, Functions for
serverless computing, Batch for containerized batch workloads, Service Fabric for
microservices and container orchestration, and Cloud Services for building cloud-
based apps and APIs.
2. Networking: With Azure, you can use a variety of networking tools, like the Virtual
Network, which can connect to on-premise data centers; Load Balancer; Application
Gateway; VPN Gateway; Azure DNS for domain hosting, Content Delivery
Network, Traffic Manager, ExpressRoute dedicated private network fiber
connections; and Network Watcher monitoring and diagnostics
3. Storage: Includes Blob, Queue, File, and Disk Storage, as well as a Data Lake
Store, Backup, and Site Recovery, among others.
Downloaded by Sahila Devi
4. Web + Mobile: Creating Web + Mobile applications is very easy as it includes
several services for building and deploying applications.
5. Containers: Azure has a property that includes Container Service, which supports
Kubernetes, DC/OS or Docker Swarm, and Container Registry, as well as tools for
microservices.
6. Databases: Azure also included several SQL-based databases and related tools.
7. Data + Analytics: Azure has some big data tools like HDInsight for Hadoop Spark,
R Server, HBase, and Storm clusters
8. AI + Cognitive Services: With Azure developing applications with artificial
intelligence capabilities, like the Computer Vision API, Face API, Bing Web
Search, Video Indexer, and Language Understanding Intelligent.
9. Internet of Things: Includes IoT Hub and IoT Edge services that can be combined
with a variety of machine learning, analytics, and communications services.
10. Security + Identity: Includes Security Center, Azure Active Directory, Key Vault,
and Multi-Factor Authentication Services.
Creation And Connection of User and Virtual Machine:
Follow the below steps to create and connect a user to a virtual machine:
Step 1: The user makes a request using Orchestrators Web API for creating the virtual
machine.
Step 2: The web API can be called by many tools including the UI of the Azure portal.
Step 3: The orchestrator package everything that is needed, it picks the best server
rack and sends the package and request to the fabric controller.
Step 4: Once the fabric controller has created the virtual machine the user can connect to
it.
Downloaded by Sahila Devi
Advantages of Azure:
Following are some advantages of using Microsoft Azure:
1. High Availability: It refers to the quality of computing infrastructure which allows
it to continue functioning, even when some of its components fail.
2. Data Security: Azure provides many of the things to secure data over the cloud-like
Microsoft Defender for Cloud, Key Vault, Azure Information Protection, and many
more.
3. Scalability: Azure provides 2 types of scalability i.e. Vertical and Horizontal
scaling to tackle the load by changing the capacity of resources or by adding the
resources.
4. Cost-Effective: Azure provides different pricing models that can help to save costs.
5. Learning-Curve: Azure provides various programming languages such as C#,
Visual Basics etc., and tools such as Visual Studio, Azure ML Studio, Azure Dev
tools etc., for learning.
6. Hybrid-Capabilities : Azure provides hybrid working model. It allows the
organization or enterprise to avail services from public cloud as well as from on-
premise network.
Disadvantages of Azure:
Following are the key disadvantages of using Microsoft Azure:
1. Requires Platform Expertise: A common mistake, on-premise servers compute
power does not translate equivocally in the cloud but can potentially cost businesses.
2. Requires Management: As Azure provides many of the platforms so it needs to be
expertly managed and maintained which includes patching and server monitoring.
3. Complexity: For maintaining the SaaS application for large enterprise, it is bit
complexity in nature to ensure the smoothness of application all the time.
Version Control System (VCS): GIT & GIT HUB
What is Version Control System (VCS)?
Version Control Systems are the software tools for tracking/managing all the changes
made to the source code during the project development. It keeps a record of every
single change made to the code. It also allows us to turn back to the previous version
of the code if any mistake is made in the current version. Without a VCS in place, it
would not be possible to monitor the development of the project.
Downloaded by Sahila Devi
Types of VCS
The three types of VCS are:
1. Local Version Control System
2. Centralized Version Control System
3. Distributed Version Control System
Local Version Control System
Local Version Control System is located in your local machine. If the local machine
crashes, it would not be possible to retrieve the files, and all the information will be
lost. If anything happens to a single version, all the versions made after that will be
lost.
Also, with the Local Version Control System, it is not possible to collaborate with
other collaborators.
To collaborate with other developers on other systems, Centralized Version Control
Systems are developed.
Centralized Version Control System
In the Centralized Version Control Systems, there will be a single central server that
contains all the files related to the project, and many collaborators checkout files from
this single server (you will only have a working copy). The problem with the
Centralized Version Control Systems is if the central server crashes, almost
everything related to the project will be lost.
Downloaded by Sahila Devi
Image 3
To overcome all the above problems, Distributed Version Control Systems are
developed.
Distributed Version Control System
In a distributed version control system, there will be one or more servers and many
collaborators similar to the centralized system. But the difference is, not only do they
check out the latest version, but each collaborator will have an exact copy (mirroring)
of the main repository(including its entire history) on their local machines.
Each user has their own repository and a working copy. This is very useful because
even if the server crashes we would not lose everything as several copies are residing
in several other computers.
Image 4
Downloaded by Sahila Devi
What is Git?
Git is a popular version control system. It was created by Linus Torvalds in 2005, and has
been maintained by Junio Hamano since then.
It is used for:
• Tracking code changes
• Tracking who made changes
• Coding collaboration
What does Git do?
• Manage projects with Repositories
• Clone a project to work on a local copy
• Control and track changes with Staging and Committing
• Branch and Merge to allow for work on different parts and versions of a project
• Pull the latest version of the project to a local copy
• Push local updates to the main
project Working with Git
• Initialize Git on a folder, making it a Repository
• Git now creates a hidden folder to keep track of changes in that folder
• When a file is changed, added or deleted, it is considered modified
• You select the modified files you want to Stage
• The Staged files are Committed, which prompts Git to store
a permanent snapshot of the files
• Git allows you to see the full history of every commit.
• You can revert back to any previous commit.
• Git does not store a separate copy of every file in every commit, but keeps track
of changes made in each
What is GitHub?
• Git is not the same as GitHub.
• GitHub makes tools that use Git.
• GitHub is the largest host of source code in the world, and has been owned
by Microsoft since 2018.
Downloaded by Sahila Devi
DEFINE repository:
A repository is a directory (aka folder) where you are saving all the code files for any given
project.
First, you make a folder and then use git init to make it into a git repository.
Branching
"On branch master" (means on the main project, not a side branch) to
add to main branch use -m
to add to side branch use –t
Git Repository Structure
It consists of 4 parts:
1. Working directory: This is your local directory where you make the project (write
code) and make changes to it.
2. Staging Area (or index): this is an area where you first need to put your project
before committing. This is used for code review by other team members.
3. Local Repository: this is your local repository where you commit changes to
the project before pushing them to the central repository on Github. This is what is
provided by the distributed version control system. This corresponds to the .git
folder in our directory.
4. Central Repository: This is the main project on the central server, a copy of
which is with every team member as a local repository.
Downloaded by Sahila Devi
Difference between Git and GitHub
Git is a version control tool (software) to track the changes in the source code.
GitHub is a web-based cloud service to host your source code(Git repositories). It is a
centralized system.
Git doesn’t require GitHub but GitHub requires Git.
Installation of Git
There are two ways of installing Git.
1. Install Git for using WSL (Windows Subsystem for Linux)
Install Ubuntu – https://www.youtube.com/watch?v=X-
DHaQLrBi8
Install Git in Ubuntu – https://www.digitalocean.com/community/tutorials/how-to-
install-git-on-ubuntu-20-04
Downloaded by Sahila Devi
2. Install Git software for windows – https://git-scm.com/download/win
Go ahead with whichever method is comfortable for you. Continue further once you
are done with the installation.
Git operations and commands
Before deep-diving into Git operations and commands, create an account for yourself
on GitHub if you don’t have it already.
Git Commands: Working With Local Repositories
1) git init-----The command git init is used to create an empty Git repository.
After the git init command is used, a .git folder is created in the directory with some
subdirectories. Once the repository is initialized, the process of creating other files
begins
Syntax: $git init
2) git add----Add command is used after checking the status of the files, to add
those files to the staging area.
Before running the commit command, "git add" is used to add any new or modified
files.
Syntax: $git add
3) git commit---The commit command makes sure that the changes are saved to
the local repository.
The command "git commit –m <message>" allows you to describe everyone and help
them understand what has happened.
Syntax: git commit -m “commit message”
4) git status----The git status command tells the current state of the repository.
The command provides the current working branch. If the files are in the staging area,
but not committed, it will be shown by the git status. Also, if there are no changes, it
will show the message no changes to commit, working directory clean.
Syntax: $git status
Downloaded by Sahila Devi
5) git config---The git config command is used initially to configure the
user.name and user.email. This specifies what email id and username will be
used from a local repository.
When git config is used with --global flag, it writes the settings to all repositories on
the computer.
Syntax: git config --global user.name “any user name”
git config --global user.email <email id>
6) git branch---The git branch command is used to determine what branch
the local repository is on.
The command enables adding and deleting a branch.
Syntax: # Create a new branch
git branch <branch_name>
# List all remote or local branches
git branch –a
# Delete a branch
git branch -d <branch_name>
7) git checkout---The git checkout command is used to switch branches,
whenever the work is to be started on a different branch.
The command works on three separate entities: files, commits, and branches.
Syntax:
# Checkout an existing branch
git checkout <branch_name>
# Checkout and create a new branch with that name
git checkout -b <new_branch>
8) git merge--The git merge command is used to integrate the branches
together. The command combines the changes from one branch to another
branch.
It is used to merge the changes in the staging branch to the stable branch.
Syntax: git merge <branch_name>
Git Commands: Working With Remote Repositories
Downloaded by Sahila Devi
9) git remote ---The git remote command is used to create, view, and
delete connections to other repositories.
Syntax: $ git remote add origin <address>
10) git clone---The git clone command is used to create a local working copy
of an existing remote repository.
The command downloads the remote repository to the computer. It is equivalent to
the Git init command when working with a remote repository.
Syntax: $ git clone <remote_URL>
11) git pull-- The git pull command is used to fetch and merge changes from
the remote repository to the local repository.
The command "git pull origin master" copies all the files from the master branch of
the remote repository to the local repository.
Syntax: $git pull <branch_name> <remote URL>
12) git push--The command git push is used to transfer the commits or
pushing the content from the local repository to the remote repository.
The command is used after a local repository has been modified, and the
modifications are to be shared with the remote team members.
Syntax: $ git push -u origin master
13) git branch- is a new/separate version of the main repository.
Accessing Github central repository via HTTPS or SSH
Here, transfer project means transfer changes as git is very lightweight and works on
changes in a project. It internally does the transfer by using Lossless Compression
Techniques and transferring compressed files. Https is the default way to access Github
central repository.
• By git remote add origin http_url: remote means the remote central repository.
Origin corresponds to your central repository which you need to define (hereby
giving HTTPS URL) in order to push changes to Github.
• Via SSH: connect to Linux or other servers remotely.
Downloaded by Sahila Devi