Friday, February 22, 2019

Industry Practices and Tools

1. What is the need for VCS?

Version control helps teams solve these kinds of problems, tracking every individual change by each contributor and helping prevent concurrent work from conflicting. Changes made in one part of the software can be incompatible with those made by another developer working at the same time.

Key Benefits of VCS :

  • Collaboration
  • Storing Version
  • Restoring
  • Understanding
  • Backup



2. Differentiate the three models of VCSs, stating their pros and cons .

Local Data Model :

This is the simplest variations of version control, and it requires that all developers have access to the same file system.

Client-Server Model :

Using this model, developers use a single shared repository of files. It does require that all developers have access to the repository via the internet of a local network. This is the model used by Subversion (SVN).

Distributed Model :

In this model, each developer works directly with their own local repository, and changes are shared between repositories as a separate step. This is the model used by Git, an open source software used by many of the largest software development projects.



3. Git and GitHub, are they same or different? Discuss with facts.  

Git is a revision control system, a tool to manage your source code history. GitHub is a hosting service for Git repositories. So they are not the same thing:Git is the tool, GitHub is the service for projects that use Git.

Get Git Cheat Sheet Here

Git is a tool a developer installs locally on their computer, while GitHub is an online service that stores code pushed to it from computers running the Git tool. The key difference between Git and GitHub is that Git is an open-source tool developers install locally to manage source code, while GitHub is an online service to which developers who use Git can connect and upload or download resources.


4. Compare and contrast the Git commands, commit and push  

The difference is that commit will commit changes to your local repository, whereas push will push changes up to a remote repo. git commit record your changes to the local repository. git push update the remote repository with your local changes.

"Commit" is like saving our new changes and "Push" is the one which is used to update our new changes to the main project.


5. Discuss the use of staging area and Git directory

Staging area is the place where we are committing our changes. Here we can figure what we changed and new commits. And also our snapshots are stored here. As well as staging helps reviewing in changes and checking any merge conflicts.


Git Directory is the place where we do our project. Once we given the "$git init" command the GIT version controller will start to check the directory.


6. Explain the collaboration workflow of Git, with example

Basically GIT have two types of repositories, Private & Public. We need to clone a repo form Github or can Start new project from local. 

git clone "URL"

or Create New

git init "Project Name"

Then we have to edit or develop our project and have to add all the files to staging area.

git add .

Next have to save our changes

git commit -m "Message"

Then have to push it to the Github

git push


Best Explanation in this Video :




7. Discuss the benefits of CDNs  

Different Domain :

Browsers limit the number of concurrent connections (file downloads) to a single domain. Most permit four active connections so the fifth download is blocked until one of the previous files has been fully retrieved.

File May be pre-cached :

There’s a high probability that someone visiting your pages has already visited a site using the Google CDN. Therefore, the file has already been cached by your browser and won’t need to be downloaded again.

High Performance :

A CDN can distribute the load, save bandwidth, boost performance and reduce your existing hosting costs.

Storage & Security :

CDNs offer secure storage capacity for content such as Videos, as well as archiving and enhanced data backup services.


8. How CDNs differ from web hosting servers? 

CDN is basically used to deliver performance of web page. CDN nodes and servers are deployed in multiple locations around the globe over multiple Internet backbones. These nodes cooperate with each other to satisfy data requests by end users, transparently moving content to optimize the delivery process.

CDNs choose the least expensive locations while optimizing for cost.


9. Identify free and commercial CDNs

Free CDNs :

  • CloudFlare
  • Incapsula
  • JetPack
  • Swarmify


Paid CDNs :

  • AWS Cloudfront
  • Google Cloud CDN
  • Microsoft Azure CDN
  • imgur

10. Discuss the requirements for virtualization 

Resource optimization 

Virtual machines offer software developers isolated, constrained, test environments. Rather than purchasing dedicated physical hardware, virtual machines can be created on the existing hardware. Because each virtual machine is independent and isolated from all the other servers, programmers can run software without having to worry about affecting other applications, or external components affecting the execution of their code

Maximizing Uptime


Agility is all about being able to respond to changing requirements as quickly and flexibly as possible. Virtualization brings new opportunities to data center administration, allowing users to enjoy

Automatically Protect Applications from Server Failure

Server virtualization provides a way to implement redundancy without purchasing additional hardware. Redundancy, in the sense of running the same application on multiple servers, is a safety measure:


11. Discuss and compare the pros and cons of different virtualization techniques in different levels 

Server Virtualization : 

This technique is the masking of server resources. It simulates physical servers by changing their identity, numbers, processors and operating systems.

Storage Virtualization :

Using this technique gives the user an ability to pool the hardware storage space from several interconnected storage devices into a simulated single storage device that is managed from one single command console.

Network Virtualization : 

Network virtualization in cloud computing is a method of combining the available resources in a network by splitting up the available bandwidth into different channels, each being separate and distinguished.


12. Identify popular implementations and available tools for each level of visualization 

Docker
Kubernetes
Apache Mesos

13. What is the hypervisor and what is the role of it?

It is used for fast disaster recovery. Virtualization technology also expands the capabilities of our hardware. Hypervisor is a program that would enable you to host several different virtual machines or operating systems you have will be able to run its own programs.

Hypervisor allows us to have several virtual machines all working optimally on a single piece of computer hardware.


14. How does the emulation is different from VMs? 

Virtual machines make use of CPU self-virtualization, to whatever extent it exists, to provide a virtualized interface to the real hardware. Emulators emulate hardware without relying on the CPU being able to run code directly and redirect some operations to a hypervisor controlling the virtual container.

The purpose of a virtual machine is to create an isolated environment.

The purpose of an emulator is to accurately reproduce the behavior of some hardware.

15. Compare and contrast the VMs and containers/dockers, indicating their advantages and disadvantages.


With virtualization, the virtual machine uses hardware directly, although there is an overarching scheduler. As such, no emulation is taking place, but this limits what can be run inside virtual machines to operating systems that could otherwise run atop the underlying hardware. That said, this method provides the best overall performance of the two solutions.

Advantages :

Its Cheaper
Less Workload
Faster Deployment
Energy Savings
Easier Backup
Disaster Recovery

Disadvantages ;

High Cost of Implementation
It still has limitations
Availability issue
Possible learning curve.




No comments:

Post a Comment