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

Unit I Introduction To Devops Up

Uploaded by

21csa30
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views

Unit I Introduction To Devops Up

Uploaded by

21csa30
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 61

KARPAGAM INSTITUTE OF TECHNOLOGY

COIMBATORE - 641 105

Department of Computer Science and Engineering


Name of the Faculty : P.G.Banupriya

Subject Name & Code : CCS342 / DEVOPS

Branch & Department : CSE

Year & Semester : III / VI

Batch : 2021-2025

Academic Year : 2023-24


SYLLABUS

CCS342 DEVOPS

OBJECTIVES:

• To introduce DevOps terminology, definition & concepts

• To understand the different Version control tools like Git, Mercurial

• To understand the concepts of Continuous Integration/ Continuous Testing/ Continuous Deployment)

• To understand Configuration management using Ansible

• Illustrate the benefits and drive the adoption of cloud-based Devops tools to solve real world problems

OUTCOMES:

CO1: Understand different actions performed through Version control tools like Git.

CO2: Perform Continuous Integration and Continuous Testing and Continuous Deployment using Jenkins by building and
automating test cases using Maven & Gradle.

CO3: Ability to Perform Automated Continuous Deployment

CO4: Ability to do configuration management using Ansible


SYLLABUS

UNIT I INTRODUCTION TO DEVOPS

Devops Essentials - Introduction To AWS, GCP, Azure - Version control systems: Git and Github.

UNIT II COMPILE AND BUILD USING MAVEN & GRADLE

Introduction, Installation of Maven, POM files, Maven Build lifecycle, Build phases(compile build, test, package)

Maven Profiles, Maven repositories(local, central, global),Maven plugins, Maven create and build Artificats,

Dependency management, Installation of Gradle, Understand build using Gradle

UNIT III CONTINUOUS INTEGRATION USING JENKINS

Install & Configure Jenkins, Jenkins Architecture Overview, Creating a Jenkins Job, Configuring a Jenkins job,

Introduction to Plugins, Adding Plugins to Jenkins, Commonly used plugins (Git Plugin, Parameter Plugin, HTML

Publisher, Copy Artifact and Extended choice parameters). Configuring Jenkins to work with java, Git and Maven,

Creating a Jenkins Build and Jenkins workspace.


SYLLABUS

UNIT IV CONFIGURATION MANAGEMENT USING ANSIBLE

Ansible Introduction, Installation, Ansible master/slave configuration, YAML basics, Ansible modules, Ansible
Inventory files, Ansible playbooks, Ansible Roles, adhoc commands in ansible – Email Basics - Email with
attachments - PHP and HTML - Simple PHP scripts - Databases with PHP

UNIT V BUILDING DEVOPS PIPELINES USING AZURE 6

Create Github Account, Create Repository, Create Azure Organization, Create a new pipeline, Build a sample
code, Modify azure-pipelines.yaml file

30 PERIODS
SYLLABUS

PRACTICAL EXERCISES: 60 PERIODS

1. Create Maven Build pipeline in Azure

2. Run regression tests using Maven Build pipeline in Azure

3. Install Jenkins in Cloud

4. Create CI pipeline using Jenkins

5. Create a CD pipeline in Jenkins and deploy in Cloud

6. Create an Ansible playbook for a simple web application infrastructure

7. Build a simple application using Gradle

8. Install Ansible and configure ansible roles and to write playbooks


Text Book

TEXT BOOKS
1. Roberto Vormittag, “A Practical Guide to Git and GitHub for Windows Users: From Beginner to Expert in
Easy Step-By-Step Exercises”, Second Edition, Kindle Edition, 2016.
2. Jason Cannon, “Linux for Beginners: An Introduction to the Linux Operating System and Command
Line”, Kindle Edition, 2014
REFERENCES:
1. Hands-On Azure Devops: Cicd Implementation For Mobile, Hybrid, And Web Applications Using Azure
Devops And Microsoft Azure: CICD Implementation for ... DevOps and Microsoft Azure (English Edition)
Paperback – 1 January 2020
2. by Mitesh Soni
3. Jeff Geerling, “Ansible for DevOps: Server and configuration management for humans”, First Edition,
2015.
4. David Johnson, “Ansible for DevOps: Everything You Need to Know to Use Ansible for DevOps”, Second
Edition, 2016.
5. Mariot Tsitoara, “Ansible
6. Beginning Git and GitHub: A Comprehensive Guide to Version Control, Project Management,
and Teamwork for the New Developer”, Second Edition, 2019.
7. https://www.jenkins.io/user-handbook.pdf
8. https://maven.apache.org/guides/getting-started/
Basics

Basic prerequisites to learn DevOps


• Basic understanding of Linux/Unix system concepts and administration
• Familiarity with command-line interface
• Knowing how build and deployment process works
• Familiarity with text editor
• Setting up a home lab environment with VirtualBox
• Networking in VirtualBox
• Setting up multiple VMs in VirtualBox
• Linux networking basics
• Good to know basic scripting
• Basics of applications – Java, NodeJS, Python
• Web servers – Apache HTTPD, G-Unicorn, PM2
• Databases – MySQL, MongoDB
Basics

DevOps benefits
• Improves deployment frequency
• Helps with faster time to market
• Lowers the failure rate of new releases
• Increased code quality
• More collaboration between the teams and departments
• Shorter lead times between fixes
• Improves the mean time to recovery
Software:
Software comprises a collection of programmed instructions, along with related documentation and data, designed to execute
specific tasks.

There are different types of software that can run on a computer:


• System software
• Utility software
• Application software

Goals and Objectives of Software:


• Satisfy users requirements
• High reliability
• Low maintenance cost
• High performance
• Ease of reuse
Software Process:
The software process can be described as a methodical sequence of activities essential for the development of a software system.
Process Framework:
• Customer Requirement Gathering
• Planning (Work plan, Technical risk, Resource requirement, Define work schedule etc.)
• Modelling (Analysis of requirement, Product Design)
• Construction (Code Generation)
• Testing
• Deployment
• Product Release
Others:
• Work tasks
• Risk Management
• Project milestones
• S/W Quality Assurance
• Formal Technical review
• Software configuration management
• Work product preparation and production (Activities, Logs, Documentations etc.)
Process Model also called as Software Development Life Cycle:
- Abstract representation of process

The appropriate process model can be chosen based on abstract representation of process.

Types of Process Model:


1) Waterfall Model
2) Incremental Model
3) RAD Model
4) Agile Model
5) Spiral Model
6) Prototype Model
7) V Model etc..

“understand - what is the next activity and how to do it.“ process model will bring the
definiteness and discipline in overall development process.
Waterfall Model:
The waterfall model is a breakdown of project activities into linear sequential phases, where each phase depends on the deliverables of the
previous one and corresponds to a specialization of tasks.
V Model:
Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model
demonstrates the relationships between each phase of the development life cycle and its associated phase of testing. The horizontal and
vertical axes represent time or project completeness (left-to-right)
Incremental Model
The product is defined as finished when it satisfies all of its requirements. Each iteration passes through the requirements, design, coding and
testing phases. And each subsequent release of the system adds function to the previous release until all designed functionally has been
implemented.
Business Analysist Developer Testing Operation and Release

Waterfall Model

Development Operation Developer + Testing + Operation and Release

Agile DevOps
DevOps: (Came into existence from the agile)
DevOps is a Methodology/set of practices and cultural philosophies that aims to
automate and integrate the processes of software development and IT operations (hence
the term "DevOps" – Development + Operations).
The goal of DevOps is to create a more efficient and collaborative environment in which
software development, testing, deployment, and operations can work together seamlessly
to deliver software quickly and reliably.

Two teams involved in software development:


1) The development team is responsible for developing, designing, and building the
application.
2) The operation team deals with the deployment and testing of the application.
Here, the problem arises when the development team continuously changes the code for better performance
and sends the code to the operations team for testing.
DevOps is the solution to this problem. DevOps is a set of practices or a methodology in which the
development and operations teams work together by including automation at the initial stages. So they can
work on rapidly changing systems, fix bugs, and help to deliver a good quality of software in time.

Development Operation
DevOps Architecture:
DevOps Architecture:
Plan – In DevOps planning plays an important role. In this stage, all the requirements of the project and
everything regarding the project like time for each stage, cost. etc are discussed. This will help everyone in teams
to get a brief idea about the project.

Code – In this Stage the code is written over here according to the client’s requirements. Here the code is divided
into small codes called Units. This is done to get a clear picture of the code.
For example,
if the team is doing a project on an online -Ekart application then the login part is divided as one unit, after login
the page which shows all the categories is divided as another unit,
user profile as another unit, etc.
Build – In this stage Building of the units is done.
Some of the examples of the tools used are maven, Gradle.

Test – Testing of all units is done in this stage. So we will get to know where exactly the code is having bugs and if
there are mistakes found it is returned.
Some of the examples of the tools used are Selenium, Pytest

Integrate – In this stage, all the units of the codes are integrated. That means in this step we will be creating a
connection between the development team and the operation team to implement Continuous Integration and
Continuous Deployment.
An example of the tool used is Jenkins.
Deploy – In this stage, the code is deployed on the client’s environment.
Some of the examples of the tools used are AWS, Docker.

Operate – Operations are performed on the code if required.


Some of the examples of the tools used are Kubernetes, open shift.

Monitor – In this stage monitoring of the application is done over here in the client’s environment.
Some of the examples of the tools used are Nagios, elastic stack.

How is DevOps different from traditional IT ?


Advantages and Disadvantages of DevOps:
Advantages:
• Faster development of software and quick deliveries.
• DevOps is flexible and adaptable to changes easily.
• Compared to the previous software development models confusion about the project is decreased due to which the product quality and
efficiency are increased.
• The gap between the development team and operation team was bridged. i.e, the communication between the teams has been increased.
• Efficiency is increased by the addition of automation which includes continuous integration and continuous deployment.
• Customer satisfaction is enhanced.
Disadvantages:
• DevOps is expensive.
• Certain levels of skills are required for maintaining the DevOps architecture.
• Adopting DevOps technology into the traditional style of industries is quite a challenge.
• Introduction To AWS, GCP, Azure - Version control systems: Git and Github.
How does DevOps Work? (Lifecycle)
1.Continuous Development: Developers use various platforms for code repository where planning and coding are involved.
1. Planning
2. Coding
2.Continuous Integration: All the desired changes within the code for compatibility are involved in this phase and it is also considered one of the most crucial
phases of software development.
3.Continuous Deployment: The desired code is now pushed back to the server to prepare for the deployment process. This phase includes both the release and
deployment process.
1. Releasing
2. Deploying
4.Continuous Testing: This phase includes the rigorous testing that is necessary to check the software compatibility by using automation tools and all the notified
errors are fixed during this phase.
1. Building
2. Testing
5.Continuous Monitoring: Once the project is live, it is a mandate to keep a close track of its performance and behavior for best practice and if any bugs are
reported then developers fix those errors in no time.
1. Operation
2. Monitoring
What is DevOps Culture?
The culture of DevOps is nothing but just about bringing developers and operations together and ensuring that how efficiently
a project can be delivered with more transparency and that would be better for the business for sure. It is believed to have
these 4 best practices for a better DevOps culture within an organization.
Responsibility: Since both the development and operations are going to work together, it is important to keep a close track of
every individual’s skills so that the tasks can be assigned accordingly and that is one of the basic ways to build a better DevOps
culture.
Define work: A team with a clear mindset that knows how and what tasks are required to complete a milestone and the
frequency of aligning regular meetings makes a perfect DevOps culture.
Analysis: There are times when any issue can arise during any phase, and the best practice to handle it is to perform a
thorough analysis so that such issues don’t come up again.
Regular Feedback: Conducting a retrospective meeting will ensure that all team members are aligned well and are moving in
the same direction. Taking regular feedback will also address the roadblocks and challenges the respective teams are facing for
better product delivery.
DevOps is today more than a collaborative culture and software development automation.
It integrates emerging technologies like artificial intelligence (AI), machine learning (ML), the internet of things (IoT), and
cloud computing.
Far too many exceptional DevOps tool(s) for build, version control, configuration management, project management, incident
management, and more have been developed.
1. Version Control Tool: Git & GitHub
2. Compile & Build Tool: Maven & Gradle
3. Continuous Integration Tool: Jenkins
4. Configuration Management Tool: Ansible & Chef
5. Container Platforms: Docker & Kubernetes
6. Communication & Collaboration: Slack
7. Cloud Computing and Storage: AWS, GCP, Azure
8. Monitoring, Alerting Tools: SignalFx
9. Testing Tool: Selenium etc…
DevOps Tools: (Here are some most popular DevOps tools)
Puppet
Puppet is the most widely used DevOps tool. It allows the delivery and release of the technology changes quickly and frequently. It has
features of versioning, automated testing, and continuous delivery. It enables to manage entire infrastructure as code without expanding the
size of the team.

Ansible
Ansible is a leading DevOps tool. Ansible is an open-source IT engine that automates application deployment, cloud provisioning, intra service
orchestration, and other IT tools. It makes it easier for DevOps teams to scale automation and speed up productivity.
Ansible is easy to deploy because it does not use any agents or custom security infrastructure on the client-side, and by pushing modules to
the clients. These modules are executed locally on the client-side, and the output is pushed back to the Ansible server.

Docker
Docker is a high-end DevOps tool that allows building, ship, and run distributed applications on multiple systems. It also helps to assemble the
apps quickly from the components, and it is typically suitable for container management.
Jenkins
Jenkins is a DevOps tool for monitoring the execution of repeated tasks. Jenkins is a software that allows continuous
integration. Jenkins will be installed on a server where the central build will take place. It helps to integrate project changes
more efficiently by finding the issues quickly.
Git
Git is an open-source distributed version control system that is freely available for everyone. It is designed to handle minor to
major projects with speed and efficiency. It is developed to co-ordinate the work among programmers. The version control
allows you to track and work together with your team members at the same workspace. It is used as a critical distributed
version-control for the DevOps tool.
Selenium
Selenium is a portable software testing framework for web applications. It provides an easy interface for developing
automated tests.
What is Cloud Computing? (On demand Availability)
Cloud computing is defined as the services offered through remote servers on the internet. These services might include
database storage, applications, compute power and other IT resources over the pay-as-you-go pricing approach. The remote
server allows users to save, modify, or process data on the internet or cloud-based platform instead of storing it on a local
server or their devices.
There are basically 3 categories in cloud computing:
SaaS (Software as a Service)
• It allows companies to use software without having to purchase them, which reduces the expenditure of the company
drastically, since they are already installed on the cloud server they can be quickly deployed and therefore saves time.
PaaS (Platform as a Service)
• It allows developers to build applications, collaborate on projects without having to purchase or maintain
infrastructure.
IaaS (Infrastructure as a Service)

There are basically 3 categories in cloud computing:
Advantages of Cloud Computing
Here is a list of some of the most important advantages that Cloud Computing has to offer −

Cost-Efficient − Building our own servers and tools is time-consuming as well as expensive as we need to order, pay for, install,
and configure expensive hardware, long before we need it. However, using cloud computing, we only pay for the amount we
use and when we use the computing resources. In this manner, cloud computing is cost efficient.

Reliability − A cloud computing platform provides much more managed, reliable and consistent service than an in-house IT
infrastructure. It guarantees 24x7 and 365 days of service. If any of the server fails, then hosted applications and services can
easily be transited to any of the available servers.

Unlimited Storage − Cloud computing provides almost unlimited storage capacity, i.e., we need not worry about running out
of storage space or increasing our current storage space availability. We can access as much or as little as we need.
Backup & Recovery − Storing data in the cloud, backing it up and restoring the same is relatively easier than
storing it on a physical device. The cloud service providers also have enough technology to recover our data, so
there is the convenience of recovering our data anytime.

Easy Access to Information − Once you register yourself in cloud, you can access your account from anywhere in
the world provided there is internet connection at that point. There are various storage and security facilities that
vary with the account type chosen.

There are various cloud services out there. The top three cloud providers are below:
• Amazon Web Services (AWS)
• Microsoft Azure
• Google Cloud Platform (GCP)
Amazon Web Services (AWS):
• Amazon Web Services is a comprehensive suite of cloud computing services that lets you create, operate, and manage a
variety of applications. AWS offers a broad range of services that can be used to power your business and help you increase
efficiency and improve your scalability.
• As the world's leading provider of cloud services, Amazon Web Services (AWS) has plenty to offer
business owners. It offers a variety of services, including Amazon Elastic Compute Cloud (EC2),
Amazon Simple Storage Service (S3), and Amazon Route 53. AWS is often used to power web
applications, but it also has powerful capabilities for building data centers, managing networks,
and deploying applications.
• AWS EC2 is a cloud computing service that enables customers to launch, run, and terminate
applications on Amazon Web Services. It provides a platform for building, deploying, and scaling
web applications. AWS EC2 is important because it makes it easy for businesses to get started with
cloud computing. It's also a good choice for larger businesses that need more resources and
AWS Architecture:
This is the basic structure of AWS EC2, where EC2 stands for Elastic Compute Cloud.
EC2 allow users to use virtual machines of different configurations as per their requirement. It allows various configuration
options, mapping of individual server, various pricing options, etc.
• Amazon S3 also mentioned as Simple Storage Service may be a service offered by AWS that provides object storage to the
users through an internet service interface. it’s described as the flat service environment because it is constructed to store,
protect and retrieve data from the bucket at any time from anywhere on any device, i.e a user can create a bucket, which
then stores objects within the cloud. By using S3 it is easy to store and retrieve data of various types using application
programming interface calls.
• An Elastic IP address is a permanent public IP address that you may assign to any EC2 instance in a given area until you
release it.
• Amazon Elastic Compute Cloud is a web service that has a cloud-computing platform for the users to rent virtual
computers on which to run their own computer applications which incorporates an OS, apps, and configurations.
• An Elastic Load Balancer (ELB) has the power to scale load balancers and applications supported real-time traffic
automatically. Due to elasticity, External traffic to the servers is balanced by Elastic Load Balancer.
• EBS Snapshots are a copy of your data that may be utilized for backup and recovery, data migration across regions and
accounts, and backup compliance.
• Elastic Block Storage (EBS) is a type of EC2 storage volume that is durable at the block level.
AWS Services:
Compute
It is used to process data on the cloud by making use of powerful processors which serve multiple instances at a time.
Storage and Content Delivery
The storage as the name suggests is used to store data in the cloud, this data can be stored anywhere but content delivery, on
the other hand, is used to cache data nearer to the user so as to provide low latency.
Database
The database domain is used to provide reliable relational and non relational database instances managed by AWS.
Networking
It includes services that provide a variety of networking features such as security, faster access etc.
Management Tools
It includes services that can be used to manage and monitor your AWS instances.
Security and Identity
It includes services for user authentication or limiting access to a certain set of audiences on your AWS resources.
Application Services
It includes simple services like notifications, emailing, and queuing.

Advantages of AWS:
Economical
AWS lets clients pay only for the services they use, making it considerably more cost-effective. Furthermore, if we want to build a real server,
we will have to pay for the installation and configuration of pricey hardware. As a result, it is preferable to use cloud services from cloud
service providers, particularly AWS, which are both cost-effective and reliable.
Reliability
AWS is extremely dependable since it operates 24/7 all year. If one of the servers fails, the hosted apps and services will continue to function
since they can simply be shifted to another server.
Limitless Storage Capacity
There is no limit to the amount of data that may be store. Users are often concerned about storage capacity, but AWS provides nearly limitless
storage, so users do not have to pay any additional fees for storage. They can store as much as they wish.

Recovery and backup

When compared to storing data on a physical device, AWS makes it easier to store, backup, and recover data. Almost all cloud service

providers now provide the ability to restore all data in the event of a data loss, making it acceptable and helpful for any company.

Easier Information Access

Access to Information Is Made Easier. Users may access their information from anywhere in the globe after enrolling on the AWS cloud service

offering platform, as long as they have a strong Internet connection. These features, however, differ depending on the type of account or plan

selected. We will now continue learning from this AWS tutorial about creating an AWS account.
Amazon Web services are widely used for various computing purposes like:
• Web site hosting
• Application hosting/SaaS hosting
• Media Sharing (Image/ Video)
• Mobile and Social Applications
• Content delivery and Media Distribution
• Storage, backup, and disaster recovery
• Development and test environments
• Academic Computing
• Search Engines
• Social Networking
Google Cloud Platform (GCP):
Starting from 1998 with the launch of google search. google has developed one of the largest and most Powerful
IT Infrastructure in the world. Today, this infrastructure is used by billion of users to use services such as Gmail,
Youtube, Google Photo and Maps etc. In 2008 , Google decided to open its network and IT infrastructure to
business customers, taking an infrastructure that was initially developed for consumers application to public
service and launching google cloud platform. All the services listed above are provided by Google hence the name
Google Cloud Platform (GCP).
Google Cloud Platform (GCP):It is a public cloud computing platform consisting of a variety of services like
compute, storage, networking, application development, Big Data, and more, which run on the same cloud
infrastructure that Google uses internally for its end-user products, such as Google Search, Photos, Gmail and
YouTube, etc. The services of GCP can be accessed by software developers, cloud administrators and IT
professionals over the Internet or through a dedicated network connection.
Why Google Cloud Platform?
Google Cloud Platform is known as one of the leading cloud providers in the IT field. The services and features can be easily
accessed and used by the software developers and users with little technical knowledge. Google has been on top amongst its
competitors, offering the highly scalable and most reliable platform for building, testing and deploying the applications in the
real-time environment.
GCP architecture pillars:
System design: This forms the basis of the GCP architecture. It involves understanding the structure, modules, interfaces, and data needed to
fulfill the requirements of cloud systems.
Design typically includes the following steps:
1. Defining the Requirements: Identify and document the functional and non-functional requirements of the system, such as
performance, scalability, security, and availability.
2. Service Selection: Select the appropriate GCP services and features that will be used to build the system, such as Compute Engine,
Cloud Storage, Cloud SQL, and Cloud Spanner.
3. High-level Design: Create a high-level architecture of the system that shows how the different GCP services and features will be used
to meet the requirements of the system.
4. Detailed Design: Develop a detailed design of the system that includes the specific configurations and settings for the GCP services
and features that will be used.
5. Deployment and Testing: Deploy the system on GCP and test it to ensure that it meets the requirements and works as expected.
6. Monitoring and Optimization: Monitor the system’s performance and usage and make adjustments as needed to optimize its
performance, scalability, and cost-efficiency.
Operational excellence: This includes the deployment and management of cloud workloads efficiently.
Features of Operational Excellence Includes:
1. Monitoring and Logging: GCP provides a wide variety of monitoring and logging tools that can be used
to track the performance and usage of applications, such as Stackdriver and Cloud Logging.
2. Automation: GCP provides a number of automation tools, such as Cloud Deployment Manager and
Cloud Functions, that can be used to automate the deployment, scaling, and management of
applications.
3. Disaster Recovery: GCP provides a number of disaster recovery features, such as Cloud Backup and
Cloud Storage, that can be used to protect applications and data from disaster scenarios.
Cost Optimization: GCP provides a number of cost optimization features, such as the GCP Pricing Calculator and
the GCP Cost Management tools, that can be used to optimize the cost of running applications on the platform.
Cost Optimization Includes:
1. Right-Sizing: GCP provides a number of tools and services, such as Compute Engine and Kubernetes
Engine, that can be used to right-size resources based on the actual usage patterns and requirements of
the applications and services.
2. Auto-Scaling: GCP provides automatic scaling capabilities for many of its services, such as Compute Engine
and Kubernetes Engine, which can automatically increase or decrease the number of instances running
based on the demand for resources.
Security: Ensures solid security and privacy of your application data workloads by enhancing security controls and
adhering to requirements.
Security Includes:
• Cloud Identity and Access Management (IAM) which allows users to control access to resources and data.
• Cloud Key Management Service (KMS) which allows users to encrypt data at rest and in transit
• Cloud Security Scanner which scans for security vulnerabilities in web applications
• Cloud Security Command Center which provides a centralized view of security risks and incidents across
GCP
Reliability: Builds resilient and highly available workloads to prevent downtime as much as possible.
Key Features of Reliability:
1. Redundancy: GCP provides built-in redundancy for many of its services, such as Cloud Storage, Cloud Spanner, and
Cloud SQL, which automatically replicate data across multiple zones and regions to ensure that it remains available in
the event of a failure.
2. Auto-Scaling: GCP provides automatic scaling capabilities for many of its services, such as Compute Engine and
Kubernetes Engine, which can automatically increase or decrease the number of instances running based on the
demand for resources.
3. Load Balancing: GCP provides load balancing capabilities for many of its services, such as Cloud Load Balancing and
Cloud CDN, which can distribute traffic across multiple instances to ensure that applications remain available and
responsive even under heavy load.
4. Disaster Recovery: GCP provides a number of disaster recovery features, such as Cloud Backup and Cloud Storage,
that can be used to protect applications and data from disaster scenarios.
Performance optimization:
Based on the performance of your applications and changes in requirements, configure the cloud resources to
meet the current performance requirements. For example, resize the resources or set up autoscaling. When you
configure the resources, evaluate opportunities to use recently released Google Cloud features and services that
can help further optimize performance.
Benefits of Google Cloud Platform:

Best Pricing: Google enables users to get Google Cloud hosting at the cheapest rates. The hosting plans are not only cheaper

than other hosting platforms but also offer better features than others. GCP provides a pay-as-you-go option to the users

where users can pay separately only for the services and resources they want to use.

Work from Anywhere: Once the account is configured on GCP, it can be accessed from anywhere. That means that the user

can use GCP across different devices from different places. It is possible because Google provides web-based applications that

allow users to have complete access to GCP.

Private Network: Google has its own network that enables users to have more control over GCP functions. Due to this, users

achieve smooth performance and increased efficiency over the network.


Scalable: Users are getting a more scalable platform over the private network. Because Google uses fiber-optic
cables to extend its network range, it is likely to have more scalability. Google is always working to scale its
network because there can be any amount of traffic at any time.
Security: There is a high number of security professionals working at Google. They always keep trying to secure
the network and protect the data stored on servers. Additionally, Google uses an algorithm that encrypts all the
data on the Cloud platform. This gives assurance to the users that their data is completely safe and secure from
unauthorized sources.
Redundant Backup: Google always keeps backup of user's data with built-in redundant backup integration. In
case a user has lost the stored data, it's not a big problem. Google always has a copy of the users' data unless the
data is deleted forcefully. This adds data integrity, reliability and durability with GCP.
Microsoft Azure :

Azure is Microsoft’s cloud platform, just like Google has its Google Cloud and Amazon has its Amazon Web Service
or AWS.000. Generally, it is a platform through which we can use 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.
What is Azure and how does it work?
Microsoft Azure is a cloud computing platform that makes it easy for businesses to create, deploy, and manage
digital applications. It offers a variety of technologies that can be used to build online experiences, including web
apps, cloud, mobile apps, and AI. It also provides developer tools, such as the Azure Blockchain Developer Portal
and the Ethereum Development Kit.
Azure Services
Microsoft Azure provides various services that would help you in computing in one way or the other and these
services are clubbed into domains. Here are a few notable domains:
Compute - It is used to process data on the cloud by making use of powerful processors which serve multiple
instances at a time.
Storage Services - The storage as the name suggests, is used to store data in the cloud with the ability to scale as and
when required. This data can be stored anywhere.
Database - The database domain is used to provide reliable relational and non relational database instances managed by
Azure.
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.
Web + Mobile - Creating Web + Mobile applications is very easy as it includes several services for building and
deploying applications.
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.
Internet of Things - Includes IoT Hub and IoT Edge services that can be combined with a variety of machine learning,
analytics, and communications services.
Security + Identity - Includes Security Center, Azure Active Directory, Key Vault, and Multi-Factor Authentication Services.
Developer Tools - Includes cloud development services like Visual Studio Team Services, Azure DevTest Labs, HockeyApp
mobile app deployment and monitoring, Xamarin cross-platform mobile development, and more.
Advantages of using Azure:
• Azure infrastructure will cost-effectively enhance your business continuity strategy
• It allows you to access the application without buying a license for the individual machine
• Windows Azure offers the best solution for your data needs, from SQL database to blobs to tables
• Offers scalability, flexibility, and cost-effectiveness
• Helps you to maintain consistency across clouds with familiar tools and resources
• Allows you to extend data center with a consistent management toolset and familiar development and identity solutions.
• You can deploy premium virtual machines in minutes which also include Linux and Windows servers
• Helps you to scale your IT resources up and down based on your needs
• You are not required to run the high-powered and high-priced computer to run cloud computing’s web-based applications.
• You will not require processing power or hard disk space if you are using Azure
• Cloud computing offers virtually limitless storage
• If your personal computer or laptop crashes, all your data is still out there in the cloud, and it is still accessible
• Sharing documents leads directly to better collaboration
• If you change your device your computers, applications and documents follow you through the cloud
Advantages of using Azure:
• Azure infrastructure will cost-effectively enhance your business continuity strategy
• It allows you to access the application without buying a license for the individual machine
• Windows Azure offers the best solution for your data needs, from SQL database to blobs to tables
• Offers scalability, flexibility, and cost-effectiveness
• Helps you to maintain consistency across clouds with familiar tools and resources
• Allows you to extend data center with a consistent management toolset and familiar development and identity solutions.
• You can deploy premium virtual machines in minutes which also include Linux and Windows servers
• Helps you to scale your IT resources up and down based on your needs
• You are not required to run the high-powered and high-priced computer to run cloud computing’s web-based applications.
• You will not require processing power or hard disk space if you are using Azure
• Cloud computing offers virtually limitless storage
• If your personal computer or laptop crashes, all your data is still out there in the cloud, and it is still accessible
• Sharing documents leads directly to better collaboration
• If you change your device your computers, applications and documents follow you through the cloud
AWS Vs GCP Vs Azure
Version Control Systems:
Version control systems are tools that manage and track changes to source code and other files in a collaborative software development
environment.
Types:
• Centralized VCS (CVCS): A central server stores the repository, and developers check out and commit changes to this central
repository (e.g., SVN).
• Distributed VCS (DVCS): Every developer has a complete copy of the repository, and changes are committed locally before being
pushed to a remote repository (e.g., Git).
Key Features:
• Tracking changes, history, and revisions.
• Collaboration and concurrent development.
• Rollback and branching.
• Code review and collaboration.
• Popular Tools: Git, SVN, Mercurial, and Perforce.
Each of these cloud platforms (AWS, GCP, Azure) offers a wide range of services and tools for building, deploying,
and managing applications and infrastructure in the cloud. The choice between them often depends on specific
project requirements, existing technology stacks, and familiarity with the platform.

Version control systems, on the other hand, are essential tools for software development teams to manage code
changes, collaborate effectively, and maintain a history of code revisions. Git, in particular, is widely used due to
its distributed nature and popularity in the open-source community.
Git and Github:

What is Git?
It is a distributed type of version control system that tracks the changes occurring in the source code during the process of software
development. The main purpose of Git is to coordinate the work among the programmers involved in the development, but it can also help a
lot in tracking the changes in a given set of files. The goals of a Git include data integrity, speed, and providing support for non-linear,
distributed workflows.

What is GitHub?
It is a hosting service for the Git repository that is web-based. It offers all the functionalities of source code management as well and
distributed revision control that comes with Git. Along with this, GitHub comes with a lot of its own additional features.
Difference Between Git and GitHub:
Self Study Topics:
Git and Github – Refer E Resource Material

You might also like