Friday, February 22, 2019

virsioncontrol


Need of  VCS
Version control assist you to evaluate documents, become aware of differences, and merge
the adjustments if wished previous to committing any code. Versioning is also a tremendous manner to keep track of utility builds
being able to discover which model is presently in development, QA , and manufacturing. Also, while new developers be a part of the crew,
they are able to easily download the modern version of the utility to their nearby surrounding the use of the model control device and
able to keep track of the version there are presently running. During improvement
you could additionally have completely unbiased code variations in case you chose to keep special improvement ,
effort separate. When equipped, you could merge the document to create a very last running version

Models of VCSs
Centralized Version control
Benefits:-
1.It is easy to understand.
2.you have more control over users and access(since it served from one place)
3.More GUI and IDE clients
4.Simple to get start commenced

Drawbacks:-
1.Dependent on access to the server
2.Hard to mange a server and backups
3.It can be slower because every command connects to the server
4.Branching and merging tools are difficult to use

Distributed version control
Benefits:-
1.It's speedy
2.No server essential
3.More powerful and exact exchange tracking, which means that less conflicts
4.Branching and merging is more dependable, and therefore

Drawbacks:-
1.The distributed model is harder to understand.
2.It’s new, so not as many GUI clients.
3.The revisions are not incremental numbers, which make them harder to reference.
4.It can be easier to make mistakes until you are familiar with the model.

GIT and GIT HUB
Git is a free and open source distributed version control system designed to handle
everything from small to very large projects with speed and efficiency
GitHub is a web-based Git repository hosting service, which offers all of the distributed
revision control and source code management functionality of Git as well as adding
its own features


GIT commands , commit, push
commit: adding changes to the local repository
push: to transfer the last commit to a remote server
Git commit: "records changes to the repository" while Git push "updates remote
refs along with associated objects”. So that first one is used in connection with
your local repository, while the latter one is used to interact with a remote
repository

Staging area and GIT directory
when you work on your project making changes you are dealing with your project's working
directory. This is the project directory on your computer's file system. All the changes
you make will remain in the working directory until you add them to staging area( via git add
command) .the staging area is best described as preview of your next commits. Meaning,
when you do a git commit, git will take the changes that are in the staging area and make a new commit
out of those changes. One practical use of the staging area is that it allows you to fine-tune your commits. You can add and remove changes from staging area until you are satisfied with how your
Next commit will look like , at which point you can do git commit.  And after your commit your changes they go in to .git/Objects directory where they are saved as commit, blob and three objects.

GIT workflow
Git workflow defines a strict branching model designed around the project release. This work flow doesn’t add any new concepts or commands beyond what’s required  for the Feature Branch flow . Collaboration is often about branching workflow. Thinking ahead on how you will interview commit trees will help you minimize integration bugs and support your release management strategy.

·        Nimal works on his feature
In his local repository, Nimal can develop features using the standard Git commit process:
Edit, stage and commit . Remember that since three commands create local commits, Nimal
Can repeat this process as many times as he wants without worrying about what’s going on
The central repository.


·        Anne works on her feature
Meanwhile, Anne is working on her own feature in her own local repository using the same
Edit/stage/commit process. Like Nimal ,she doesn’t care what’s going on in the central repository, and she really doesn’t care what Nimal is doing in his local repository, Since all local repositories  are private.


Benefits of CDN
Companies that witness a huge traffic on their website on daily basis can use cdn to their advantage. When large number of users at the same time access a web page on same specific content such as video, a cdn enables that content to be each of them without delay. There are some few of benefits using a cdn for your website
·        Your server load will decrease
·        Content delivery become faster
·        Segmenting your audience become easy
·        Lower network Latency and packet loss
·        Higher Availability and better usage analytics
·        Offer secure storage capacity foe content
Differences between CDNs and Web Hosting
Web hosting is used to host your website on a server and let users access it over the internet. A content delivery network is about speeding up the access/delivery of your website’s assets to those users.

Web Hosting normally refers to one server. A content delivery network refers to a global network of edge servers which distributes your content from a multi-host environment.

Traditional web hosting would deliver 100% of your content to the user. If they are located across the world, the user still must wait for the data to be retrieved from where  your web server is located. A CDN takes a majority of your static dynamic content  and servers it from across the globe, decreasing download times. Most times, the closer the CDN server is to the web visitor , the faster assets will load for them.


Identify free And Commercial CDNs
               CDN is a geographically distributed network for proxy servers and their data centers. The goal is to provide high availability and high performance by distributing the service spatially relative to end users
               CDN server a large portion of the internet content today, including web objects ,  downloadable objects , applications , live streaming media, and social media sites.


Requirements for virtualization
               There is a gap between development and implementation environments
ü  Different platforms
ü  Missing dependencies , frameworks/ run times
ü  Wrong configurations
ü  Version mismatches
Hardware virtualization
OS level virtualization (desktop virtualization)
Application level virtualization
Containerization (also OS / application level)
Other virtualization types


Pros and Cons of different virtualization techniques in different levels
               Pro :-
Ø  Efficient resource utilization:
Virtualization enables business  to get the most out of  their investments in hardware  and
               Resources.
              
Ø  Reduced IT costs:
Virtualization helps business reduce costs in several way, according to Mike adams who is senior director of cloud platform product marketing at VMware
v  Capital expenditure savings
v  Operational expenditure savings
v  Data center and energy-efficiency savings
Con:-
Ø  Not all hardware or software can be virtualized

Ø  The upfront costs are hefty

Popular implementations and available tools for each level of virtualization

*     Plotly
*     Tableau
*     FusionCharts
*     Datawrapper
*     Sisense
*     Highcharts
Hypervisor and it’s role

A hypervisor is a process that separate a computer’s operating system and applications from the underlying physical hardware. Usually done as software although embedded hypervisors can be created for things like mobile devices. The hypervisor drives concept of virtualization by allowing physical host machine to operate multiple virtual machines as guests to help maximize the effective use of computing resource such as memory, network bandwidth and CPU cycles.
              
How 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.

VMs vs Container





        VMs
      Containers
heavyweight
Lightweight
Limited performance
Native performance
Each VM runs in its own OS
All containers share the hosts OS
Hard ware level virtualization
OS virtualization
Startup time in minutes
Startup time in milliseconds
Allocates required memory
Requires less money space
Fully isolated and hence more secure
Process-level isolation , possibly less secure


Advantage of VMs:-
*     All os resources available to apps
*     Established management tools
*     Appliance upgrade , patches and bug fixes
*     Testing and support tools
*     Better known security tools
*     Supported platform for PIN safe deployment
Disadvantage of VMs:-
*     VM type may not be part of organization standard

Advantage of containers:-
*     Less code to transfer, migrate, upload workloads
*     Reduced IT management resources
*     Quicker spinning up apps
*     Reduced size of snapshots

Disadvantage of Containers:-
*     Data storage is intricate
*     The container ecosystem is split
*     Graphical applications don’t operate well


No comments:

Post a Comment