Industry Practices and Tools - The Framework Blog

Hot

Post Top Ad

Tuesday, February 19, 2019

Industry Practices and Tools

What is Version Control System? & What is GIT?
Version control systems(VCS) are a category of software tools that helps to manage changes to source code over time. VSC gives a lot of advantages to the software team. They are,  
  • supports to collaboration,
  • storing versions properly,
  • restoring previous versions,
  • can understanding what happened,
  • can get backups. 
There are three types of VCSs which are used to solve three types of problems.

1) Local Version Control System
   This is the oldest VCS. In here, developer is going to maintain files in local computer. He marks a file with a version. After Modifies that file, he should rename it with different version. If there is any problem with 2nd version, he can go back and replace the previous version with that. This is an advantage of local VCS. There are few disadvantages. They are, when developer is keeping wrong version or maintaining different folders, there is a chance to missing data. Other than that, there is no any security in local computer. So that, there can be lost all the files, when hard disk failures or the computer crashes. And Cannot be used for collaborative software development.

2) Centralized Version Control System
   Code will be in the central repository server that will call as central VCS server. This maintains all the versions of the given project. Software team should be connected to the server and should check out the code to their local computers. Advantages are everything will be placed on the server and has more security. As the centralized server, a developer can know other developers' working status. When server breakdown, it will impact with developers as well. That is the disadvantage of this VCS.

3) Distributed Version Control System
   In Distributed VCS, the main server will have all the versions of the files. So, developers should firstly clone the complete code from the server to their local computers. when a developer completed his changes, he can push it into the main repository. If main server dies, and systems were collaborating via it, any of the developer repositories can be copied back to the server. Can collaborate with different team in different ways simultaneously within the same project. There is no single point of failure.

    GIT is a distributed version control system. It offers features that makes it easy for multiple people to work on same code base. Git is the most popular version control system and has already surpassed other VCS systems in today.

   GitHub is a website that allows you to store your code or program on the cloud. It is not just a cloud storage, but a full version control system powered by git.

This video will help you to get an idea about the collaboration workflow of Git.
Watch the video below for detailed information.

Git Commands

  • When gave a command as "git add <file>..." will add the file to the staging area. 
  • Staging area is the area which contains that you are ready to commit. 
  • When gave command as "git commit...", it is taking the file from the staging area.
  • git commit adds the changes to local version control database not to the remote server. File is still insides on the local computer.
  • When gave a command as "git push...", will now push committed changes to remote server. That is the difference between commit and push commands.

Content Delivery Network (CDN)
The CDN refers to a group of servers which are geographically located different places and work together to provide fast browsing experience of a website content. Each CDN Edge Server caches the static content of a site like the images, CSS, JS, videos/audios and transfer quickly the resources needed for website loading.
Web hosting server is the central content repository and CDN’s are the cache of that repository. CDNs are designed to take their instructions from a central server and serve out the website contents and files from different geographic locations.

Benefits of CDN
1. Improve page load speed:Visitors are accessing the website content from a nearby CDN server, and experience faster page loading. 2. Handle high traffic loads:CDN’s are highly redundant as requests can always be transferred to other servers if one of them is down. 3. Block spammers, scrapers and other bad bots:Most of the CDNs are smart enough to block spammers in an intelligent manner which is quite difficult through website hosting itself. 4. Load Balancing:All traffic are monitored and distributed among the edge servers, so there will not be any huge load on your hosting server and website content will be always available without having any delay. 5. Secure your application:A CDN may improve security by providing DDoS mitigation, improvements to security certificates, and other optimizations. 6. Search Engine Ranking:Due to higher page speed and reduce bounce rate, automatically gives better search engine ranking.
                                     Free CDNsCloudFlare, Incapsula, Jetpack
Commercial CDNs - Microsoft Azzure, Cloudinary, Google Cloud

Virtualization
  The virtual machine needs to match the requirements that a physical machine has for the Access Manager component. For the hard disk, RAM, and CPU requirements, each virtual machine should have the following minimum requirements:
  • 100 GB of disk space 
  • 4 GB RAM 
  • 2 CPUs

Types of Virtualization

  • Operating System Virtualization
  • Hardware Virtualization
  • Application Virtualization
  • Administrative Virtualization
  • Network Virtualization
  • Desktop Virtualization
  • Storage Virtualization
  • Server Virtualization.

           OS virtualization is the one of those types which is getting popular in the current market.Everything run from the network using a kind of virtual disk. Private and shared virtual disks are the two types of virtual disks in most implementations.OS virtualization is done with 3 ways. They are hypervisor, VMWare workstation and Virtual Box. Advantages of OS virtualization are usually imposes little or no overhead, capable of living migration and can also use dynamic load balancing of containers between nodes and a cluster.

         Hardware Virtualization refers to the creation of OSs. This technology was developed by Intel and AMD for their server platforms and was designed to improve the performance of the processor. There are many advantages. They are lower cost, increase IT flexibility and Efficient resource utilization. Full, Emulation and Para are the three types of hardware virtualization.

   
Software Virtualization is capable to abstract the software installation procedure and create virtual software installation. Virtual Box, VMWare workstation etc.. are the examples for application virtualization. Easy to link file in a network or file copying to the workstation, Software Migration, Easy to manage are the advantages of Application virtualization.


Hypervisor

A hypervisor is a function which abstracts operating systems and applications from computer hardware. Hypervisors use a thin layer of code in software or firmware to allocate resources in real-time. It can access all physical devices residing on a server. It can also access the memory and disk. it can control all aspects and parts of a virtual machine and it is a software that can visualize the hardware resources.

No comments:

Post a Comment

Post Top Ad