Sunday 26 December 2021

Virtualization, Virtual Machines and how to create them...

Think about simulations when you hear the word ‘virtual’. It can also be better explained using the term ‘computer generated’.

All thanks to some certain processes, you no longer need to purchase hardware every time you need a different kind of operating system to for example, run a particular application. This is because a ‘computer generated’ computer, can now run on your laptop or desktop. This is possible because of the process known as virtualization.

Virtualization uses hypervisors (a layer of abstraction between the hardware, it’s OS and the guest OS) to accommodate other operating systems on your hardware itself. This means that more than 1 operating system can run on your computer device at the same time. The generated computer shares the disk space of the existing hardware and imitates the hardware’s functionality. Ultimately, through this technology, organizations can run multiple operating systems and applications on a single server. Of course, I do not need to mention the immediate advantages that it presents such as lesser operating costs, as opposed to actually buying hardware every time you need to run specific applications, with custom fit OS, and lesser purchasing and set up time for these hardware machines.

Hardware (host machine)----Host OS (optional) --- Hypervisor --- Guest OS libraries apps

Now, these hypervisors, mostly come in 2 types, Type 1 (also known as bare-metal hypervisor) these are loaded directly on a hardware, just like an OS usually is example ishyper-v and Type 2 (also known as hosted hypervisor) which is loaded on an OS running on the hardware, just like running an application, a good example is Oracle VM (virtual box).

Image not mine, retrieved from https://www.youtube.com/watch?v=UEk0CKoeUnA


However, instead of installing hypervisors on your computer servers or OS, cloud computing providers make it even easier to create virtual machines, as I said in my earlier blog post, this is an Infrastructure as a Service, IaaS offering. This is because in this case, all you need to do is log into their portal, create a resource (this particular resource being a virtual machine), and follow the prompts to customize it to taste.

I will be logging onto Microsoft’s Azure portal and showing you how to create a virtual machine shortly. Stay with me please.

Firstly, login to the Azure Portal.

Click on Virtual Machine within the left navigation pane.


In *Virtual machines* click on create.



Now configure setting for your Virtual Machine

*Subscription* can be left as default.

*Resource group* create one and name it as Webservers.

*VM Name* set to web01

*Region* can be left as default but double check that it is the region that iis closest to your location.

In the Availability options bar, you can set it to 'No infrastructure redundancy required'.

For Image, use Windows Server 2019 Datacenter-Gen1

For Size, use `Standard_DS1_v2 - 1 vcpu, 3.5 GiB memory (If you do not see this size, you can choose the size in the standard section with the closest specifications).

For Username, use 'iisadmin'

For Password, use a password that meets the given requirements

Select inbound ports 'HTTP (80)', HTTPS (443), RDP (3389)

Don't change options for the licensing!!!

Click on 'Review + create'.

Click on 'Create'.










Once provisioning is underway, you will get a page that says something along the lines of

'your deployment is in progress' and shortly after, 'your deployment is complete'.


Click on the button Go to resource.

On the top left click *Connect* and select *RDP*



When you click *Connect with RDP*, your IP address and port number are displayed. Mine were: Public IP address (40.85.165.209), and Port number 3389

Next, you should click on 'Download RDP file' and open the file

Enter the login credentials that you created within the Azure Portal for the username and password of the virtual machine (Depending on your network you may need to click on other account and enter \iisadmin as the username and the password you setup)

Click 'connect' and 'yes' to accept the certificate

Voila! You have your virtual machine, As easy as that! Yet another reason to embrace cloud computing for your business and other concerns…


But why stop here? Why not take it a notch higher? Let's create a web page!

Once you login, the Server Manager should be open. Then you can click on 'Add roles and features'

Follow the wizard and leave all the settings in the default settings, keep clicking next until you get to Server Roles.





Under Server Roles, select 'Web Server (IIS)',


Select 'Include management tools (if applicable)' and Click 'Add features' . Then, click 'Next' (the minimal features should already be selected and adequate). Once again, Click 'Next', then scroll down, select 'IIS Management Console' in 'Management Tools', then click 'Next'.

The next thing to do, is to select 'Restart the destination server automatically if required', then click 'Install'.


Once the installation has completed, click 'Close'.



Go to the main menu for you computer and search for 'inetmgr' and open 'Internet Information Services (IIS) Manager'

Click the '>' to the left of 'web01 (web01/iisadim)' to open up the pane



Click the arrow next to 'sites' to access the default website.



Right click on the default website, select 'manage website'. Select 'advanced settings' (Look for and copy the physical path which should be something like '%SystemDrive%\inetpub\wwwroot').

Open 'File Explorer'

Enter the physical path into the search bar at the top *%SystemDrive%\inetpub\wwwroot*

Right click on the empty space and select *New Text Document* and then open the text document

Enter the following text with no markup into the text document.

'Welcome to my initial web page'

Click 'File' and save as 'index.html'

Change the 'Save as type' as 'All Files'.

Click 'Save'


This will take precedents over the 'iisstart' file and you should now see this page as your home page when you go to the public IP address.

When you go to the public IP address , you should see the home page you created with the text "Welcome to my initial web page".



Sunday 12 December 2021

Emerging Trends in Cloud Computing

 Containerization: Containers ensure that applications are retro-fit to work on different kinds of operating systems. They are built to adapt and fit into different OS, as each container is specially designed with apps that come with their own libraries, bins, and all their other dependencies and therefore take up lesser space on the host OS, enabling them to work seamlessly, and further lessening their deployment time, as against using Virtual machines. Docker and Kubernetes (by Google) are some of those offering container services.


Serverless Computing: As the name implies, it enables consumers to build and run applications seamlessly without having to worry about servers. This is because the cloud providers cover that aspect, which the consumer pays for on a per-use basis. So no, it does not mean the eradication of servers from computing, it just implies that you can focus on just running your application, and let others take of the associated servers for you a.k.a "relass and be taken kiaruff"...


IoT a.k.a Internet of Things: refers to random, everyday objects that are implanted with various technologies that enable them to collect and transmit data with other systems over the internet. Examples of IoT devices include  wearable health monitors which transmit data about the health status of the person wearing them, and notifies the hospital in cases of sharp changes to the person's health status, for further action. Cool right?!


Edge Computing: As the name implies, involves processing information/data at the edge of the network, bringing it as close as physically possible to the client. This is done, instead of processing the information at a centralized data processing center, which might not necessarily be as close to the client and might likely lead to a longer processing and latency time. The rise of Edge locations distributed all over a geographic location has taken care of that. Think of them as grass-root politicians in different constituencies that sort out the issues of constituents, instead of you taking your complaints all the way to the federal government all the way at the top. Even if your requests are eventually met, it would take a much longer period of time to reach you, when compared to that same issue being dealt at the grass-root stage.

Saturday 11 December 2021

Cloud Computing Models

Cloud computing models can be spread out into 2 broad categories.

The first being Deployment Models, while the other is service models. These models spell out the modalities involved in making cloud services accessible to you and I (the end-users).

Lets talk about the first model i.e Deployment models (DMs). DMs talk about the accessibility in terms of location to the cloud. It could be public, private or hybrid. We would talk about these using transportation for better illustration.

Public cloud: Think about the public bus. It is likely the cheapest mode of vehicular transportation. It is designed to engage a high number of persons at the same time, who pay for the amount of distance they cover. Of course, it does not have privacy when compared to using your own car, however, it is usually the choice for people who can not yet afford to purchase their own vehicle. This cloud model is handled strictly by 3rd party providers.

private cloud: Can be likened to buying your own car strictly for your own use. Although costly to purchase, it provides you with a high amount of privacy, as you and you alone enjoy your car ride. This cloud model is designed and built strictly for an individual enterprise/company.

Hybrid Cloud: As the name implies, is a bridge between the public and private cloud. A good illustration would be the cab hailing service, where you still enjoy the best of both worlds, in terms of enjoying an element of privacy for that particular trip, but also paying for that particular journey alone and not having to buy the entire cab. Hybrid combines the benefit of 3rd party providers either partially or entirely, and combines it with private cloud to enjoy the best of both worlds.


Now let's talk about the second model i.e service models...

This refers to the means through which cloud computing is offered, each of which satisfy specific business requirements.


Infrastructure-as-a-Service (IaaS): These provide basic computing, networking and storage services over the internet on a pay-per-use basis. Think of it as renting computers and servers. You leave the management of infrastructure to the cloud providers. Examples include Amazon's EC2 and Google cloud platform.


Platform-as-a-Service (PaaS): This particular service model, provides the environment for developers to deploy their applications without the need for installing IDEs (Integrated Development Environments), so they can deploy their programs and applications as quickly as possible. It is highly customizable and includes examples such as Microsoft Azure, and Google app engine. 


Software-as-a-Service (SaaS): This refers to cloud services offered and managed entirely by 3rd party providers. All the customer/user needs to do is login to access it. This can provide a huge relief for companies using the service as they do not concern themselves with issues such as software maintenance and infrastructure management. Examples include Gmail Email service, and the Office 360 package.

Overview of Cloud Computing

 To be quite honest, until a few weeks ago, I believed cloud computing had to do with actual clouds...Whenever I heard that some of my pictures were stored up in the cloud, I would look up to the skies and assume those pictures had found their way up there somehow. You can imagine my utmost shock when I eventually discovered that it simply meant someone somewhere was storing up my pictures/data (on my behalf) in their facility remotely...Let me explain better so you do not (like myself) keep staring into the skies when ever you hear your pictures and videos have been backed up in the cloud.

In very very simplistic terms, cloud computing has to do with the provision of IT services over the internet; By this, I mean the supply of IT facilities and solutions, which can be easily accessed by you wherever you are, as long as you have the right tools and credentials to gain access to said services.

Okay, okay, think of it this way...Remember back when we would download games on our phones from play store? and if you were unfortunate enough to have lost your phone, you had to re-download the game and painstakingly re-start the game allover from level 1? I know! Dark days! Well most games now provide you with the option of continuing your game exactly where you stopped on your previous device. They tell you your progress is saved in the cloud, and that once you log in with the right credentials, you can re-access it, and simply pick up where you left off. This pretty much sums it all up. Instead of losing all that data, it is backed up in some data base and readily made available to you upon request.

These cloud services that are readily supplied by providers over the internet, range from computers, servers, operating systems, networks, databases, you name it, and the overall aim is to handle that aspect of your business for you, so you can focus on growing your business, and making profit.

Worthy of mention is the fact that you simply pay for what you consume, as against having to purchase all these IT equipment (and staff), some of which might eventually not be put to use (due to over-estimation).

It also leads to faster deployment of your application and services, since the burden of setting up those equipment and environment has been lifted off you. This means that instead of taking weeks or sometimes months to roll out your products, it can be launched in as little as minutes or hours. It also means that as demand for your product/application increases, you can easily increase/enlarge your capacity to cope with this demand, as against having to go shopping for additional servers which might take days or weeks to integrate. In others words it is elastic and can increase or decrease in demand to fit the given situation/context.

Also, using the scenario of the game, which I gave above, data recovery is seamless in cloud, (since it is backed up in multiple servers) as against using your own on-premises infrastructure, which might mean it's ultimate loss. 

There are numerous other benefits which I would touch in greater details some other time. For now, just know that it is cost effective, leads to faster deployment/innovation, has faster data recovery, and highly available (since it can be accessed remotely).