Tools That we Use – Part 2 – Virtualization
This post is the second part of our blog series in where we talk about the tools we use. Last time we covered the topic of Git, and today we are talking about Virtualization.
What is virtualization and why do we use it?
Virtualization is the process of running a virtual instance of a computer system in a layer abstracted from the actual hardware. A virtual instance, also known as a virtual machine, is an emulated equivalent of a computer system that runs within another computer system.
There are two main reasons why we use virtualization. The first one is the emulation property. The virtual machine can run on any computer regardless of hardware. In other words, there is no risk of hardware variation, and software is always developed in the same conditions.
The second one is that we can store the state of a virtual machine at any time. Storing a virtual machine state (better known as a snapshot) is a useful backup technique and it also provides portability of virtual machines between different hosts.
What do we use for virtualization?
Our virtualization workflow is made up of three components:
- Hypervisor, or hardware virtualization software, is computer software that creates and runs virtual machines. A computer on which the hypervisor runs is called a host machine. A virtual machine that runs within a hypervisor is called a guest machine. The hypervisor we use is Parallels Desktop for Mac.
- Vagrant is open-source software for building and maintaining portable virtual software development environments. Vagrant has an easy-to-use workflow focused on automation. It provides a simple, elegant way to manage and provision virtual machines.
- The Vagrant box is an easy-to-configure and portable work environment. We use Laravel Homestead pre-packaged Vagrant box that provides a development environment without requiring you to install PHP, a web server, or any other server software on your local machine. Vagrant boxes are completely disposable so there is no concern about messing up your local operating system. If something goes wrong, you can destroy and re-create the box.
Parallels Desktop for Mac
Parallels Desktop for Mac was the first software product to bring mainstream virtualization to Macintosh computers utilizing Apple-Intel architecture. The most recent version is version 16, released on August 11th, 2020. Version 16 brings support for the new macOS “Big Sur” architecture. It also brings easier export of a virtual machine in a compressed format ready for transfer to another Mac.
All virtual machines are managed through Parallels Control Center. With Control Center you can clone a virtual machine if you need an exact copy of it. You can make backups of virtual machines to protect yourself from data loss. As already mentioned, you can save a snapshot of a virtual machine at any time. If you don’t need a virtual machine anymore, you can permanently remove it from your computer. To make virtual machines more distinctive inside the Control Center you can also change the virtual machine icon or change the virtual machine name.
Vagrant and Laravel Homestead
Vagrant uses provisioners and providers to manage development environments. The provider (our hypervisor) is a service that Vagrant uses to set up and create virtual environments. Provisioners are tools that help us customize the configuration of virtual environments.
Vagrant sits on top of the virtualization software as a wrapper and helps the developer to easily interact with the provider. It is useful in software development because it isolates dependencies and their configuration within a single disposable, consistent environment. To make this possible, we write a Vagrantfile.
The primary function of Vagrantfile is to describe the type of machine required for a project and how to configure and provision it. Vagrant is meant to run within one Vagrantfile per project and it is supposed to be committed to version control. If you want to learn what version control is, check part 1 of the tools we use. This allows other developers involved to run the same development environments, against the same dependencies, all configured the same way regardless of the hardware and host OS. Just run vagrant up, and you will be on your way.
Although we can use any other pre-packaged Vagrant box, we use Laravel Homestead. Homestead has proven to be the best because it comes bundled with all the software necessary for the development of web applications.
By using Vagrant we significantly reduce the time needed for the preparation of our working environments. When using a pre-packaged Vagrant box there is no need for us to download the OS, manually install it, go inside the OS, and set up applications needed for software development. The creation of the work environment is made just by running a few commands. Running existing projects is even easier. Just download project files and run vagrant up.
We use Homestead as our box of choice, but you can visit this link to find the box that best suits your needs. Also, you are not limited to using Parallels as your provider, although our experience with Parallels showed us that it is faster and more reliable than its comparable providers.
22 Feb 2021How to Double The Traffic and The Number of Reservations From Your Travel Agency’s Website?Marketing
Estee Šilo – case study In this case study, we will show how our client, thanks to quality optimization, managed to nearly double visibility, indexing, organic traffic, and direct bookings through the client´s website despite a difficult year for tourism; the tourist revenue on the Island of Krk dropped by 50% in the season 2020, […]
25 Jan 2021How a Small Travel Agency Increased The Number of Bookings on Their Website With The Help of SEOMarketing
Krevatin and Hexis Krevatin Tours is a small, family-run, but nevertheless, a successful travel agency based in Novigrad, Istria. It has been in business catering to domestic and foreign customers for over 20 years. Their offer is primarily focused on tourist accommodation in the town of Novigrad and the surrounding area. Novigrad is a small […]
20 Dec 2020Most Impactful Projects of 2020Miscellaneous
As 2020 is coming to a close, it is time to review the most impactful projects Hexis worked on in the last year. The global pandemic locked the world down, bringing profound changes to the work environments. All of a sudden, in addition to the usual challenges which accompany each new project, we also had […]
06 Oct 2020Introduction to SEOMarketing
SEO (Search Engine Optimization) is a process of optimizing websites and their content so it can be discovered by users who search for specific terms. Search engines, such as Google, aim to give their users the most relevant information for the topic they are searching for. For that reason, they rank websites based on […]