July 6, 2022

„How to create images on Cloud Marketplace“

AuthorAna Novokmet
Categories

In times of digitalization, it is important for ensuring business continuity that IT managers within companies increasingly turn into digital technology platforms. You can often find them on cloud marketplaces, today's "online storefronts" for software solutions. Here, an extensive range of cloud solutions for data & analysis, business applications or security awaits them. The largest cloud marketplaces are operated by Amazon Web Services, Microsoft Azure and Google Cloud Platform.

But what exactly are cloud marketplaces anyway? In our blog post "What are Cloud Marketplaces?" we have clarified this question and took a closer look at the topic of marketplaces.

The second part of the blog series on the topic of cloud marketplaces is dedicated to the topic: Image creation on cloud marketplaces. An image is a single file containing a complete copy of the structure and contents of a disk's file system. Software distributions, such as operating system distributions or disks with pre-installed products, can be distributed via images.

An image is a single file with a complete copy of a disk's file system structure and contents. Software distributions, such as operating system distributions or disks with pre-installed products, can be distributed via images.

What are the different image types?

Depending on the cloud provider, there are different ways to develop an image. For example, the Amazon Machine Image (AMI) is an image supported and maintained by Amazon Web Services (AWS) containing  the information required to launch an instance. The AMI must be specified when launching an instance on AWS and can be set onto the cloud marketplace. (Source)

Similar to AMIs, Azure provides virtual hard disk (VHD) images for configuring virtual machines. (Source) Whether the images are copies of a complete virtual machine (including all data disks) or just the operating system disk, these images are used in the global cloud marketplace. An image can be used to create an instance an infinite number of times as long as it exists in the cloud service marketplace.

Ways to create an image

Cloud providers have their own methods for creating images, which are usually done via  a dashboard after authenticating to a specific cloud (e.g., AWS, Azure, Google Cloud, etc.). The figures below show the process of creating an image from an existing instance on AWS. This method of image creation is probably the easiest, as it allows you to create an instance of an existing image, then install additional software, and then generate your own custom image out of it.

Figure 1 - first step for creating an image from an instance on AWS

Figure 2 - second step for creating image from an instance on AWS

The method on Azure is fairly similar to the previous one; all that is required is to follow the instructions.

Figure 3 - first step for creating an image from an instance on Azure

Figure 4 - second step for creating an image from an instance on Azure

Automating the creating images process

Most companies want their product to be offered in a variety of global cloud marketplaces. With that, it may become challenging to create an image on each cloud manually using the method described above. Custom images can also be created using third-party software, even for multiple cloud marketplaces at once. One such software is Packer from Hashicorp; a free and open source tool for creating identical machine images for multiple platforms from a single source configuration or a template. (Source)

The Packer documentation contains all of the information needed in order to create custom images for any available cloud marketplace. The example below demonstrates a template for simultaneously creating images on both AWS and Azure.  

Each packer configuration file is of the ‘hcl.pkr’ format (for example, file.pkr.hcl) and has two mandatory blocks: source and build blocks. According to Packer documentation, source blocks contain configuration for builder plugins. Once defined, sources can be used and further configured by the "build" block. (Source) Simply said, the source block provides all of the information required to build an image on a certain cloud provider, including authentication, region, OS and instance type, and other mandatory or optional parameters. Build blocks contain configuration for a specific combination of builders, provisioners, and post-processors used to create a specific image artifact. (Source) This means that the build block specifies everything that will be included in the image, with both initial and extra software.

In the sample figure below, there are two source blocks that represent 2 distinct cloud providers: AWS and Azure.

Figure 5 - Packer configuration: source blocks

The build block is required once the source block(s) have been declared. The build blocks in the example below have two already constructed sources specified, as well as some simple shell script copying and execution.

Figure 6 - Packer configuration: build block

Once these three blocks are configured, the packer build file.pkr.hcl command is used to create the final Cloud Marketplace image. This approach to creating cloud service marketplace images is extremely effective because it creates them automatically without much manual effort.

Once an image is ready for all desired clouds, a manual bid must be created on those cloud marketplaces. Once this process is complete, the service becomes publicly available onto the global cloud marketplace.

Paths to the Cloud with Libelle Software

Would you like to learn more about the cloud? Then feel free to visit our corresponding blog category.

At Libelle IT Group, we also rely on the advantages of the cloud and provide you with various solutions. Use the cloud editions of Libelle DataMasking (AWS / Microsoft Azure), Libelle SystemCopy (AWS / Microsoft Azure) or Libelle CloudShadow (IBM Cloud) now.


Recommended articles
December 22, 2022 Libelle IT Glossary Part 22: What is DevOps?
November 30, 2022 The 12 Factor App Part 3: (Disposability, Dev/prod parity, Logs, Admin processes)

All blog articles