Kicking the Tires on Your First Oracle IaaS Configuration - Part 1

Version 4
Visibility: Open to anyone

    Kicking the Tires on Your First IaaS Configuration - Part 1

     

    By Nitin Vengurlekar

     

    Alongside Platform as a Service (PaaS) and Software as a Service (SaaS), is Infrastructure as a Service (IaaS). These three, are the fundamental service models of cloud computing.

     

    However, unlike PaaS or SaaS, IaaS provides little to no application framework; i.e., with IaaS, just the essential computing infrastructure is provided; and typically consumers bring their own applications. Nevertheless, key components such as robust network connections, static IP addresses, and load balancers are generally available as provide of the service offering.

     

    As with PaaS and SaaS models, IaaS is generally offered as a virtualized multitenant architecture. Physically, the pool of hardware resource is pulled from a multitude of servers and networks, usually distributed across numerous data centers, all of which the cloud provider is responsible for maintaining. The client, on the other hand, is given access to the virtualized components in order to build their own IT platforms.

     

    Oracle provides Infrastructure as a Service (IaaS) through the Oracle Compute Cloud Service offering. Similarly to other Cloud providers, the main objective of IaaS is to rapidly provision configurations that include storage, memory, network and CPU resources. This configuration is essentially a virtual machine that can be instantiated from virtual machines on Oracle Cloud; with all the necessary storage and networking resources.

     

    Consumers can access, administer, monitor, and use Oracle Compute Cloud Service through the graphical web console from cloud.oracle.com. Additionally, REST API calls can be used to access and manage Oracle Compute Cloud Service resources.

     

    What are the Options and Properties?

     

    Oracle offers a free trial or non-metered subscription model. In our example use case and process flow, we will illustrate the Compute Cloud Service using the non-metered model approach. A site, is a set of physical servers, as well as the associated storage and networking resources in an Oracle Cloud data center. Compute Cloud servers are network isolated with a distinct REST API endpoint. Consumers that subscribe to Oracle Compute Cloud Service with Dedicated Compute Capacity, get a site that’s dedicated to the consumer. Oracle Compute Cloud Service with Compute Capacity, is a shared site with other tenants.

     

    In Dedicated Compute, consumers are the only tenant on the site. This may be the desired configuration, if consumers want absolute predictable performance in the cloud. In a shared configuration, consumers subscribe to OCPUs in a site that’s shared with other tenants. In a shared model, consumers can opt for a metered or nonmetered subscription. With the latter, non-metered consumers can enable elasticity by subscribing up to twice the number of  OCPUs than originally subscribed.

     

    Once the consumer has subscribed and activated their Compute Cloud Service, upon signing on to cloud.oracle.com (with appropriate identitiy domain and userid/password), they will see a Dashboard that reveals various Cloud Services that were enabled or purchased. In this chapter, the Compute Cloud is where we want to focus our attention. Consumers can provision and manage Oracle Compute Cloud Service instances, as well as the associated storage and networking resources by using REST API calls.

     

    Figure1.jpg

    The first place to start is Instance creation. Instances, are Oracle Compute Cloud virtual machines,that are created by using specific machine images with assigned CPU and memory resources.

     

    The figure below, displays the initial Instance creation page.

     

    Figure2.jpg

    With Oracle Compute Cloud Service, consumers leverage the Instance Creation Wizard to select from a range of images, resource profile shapes (OCPU and memory), as well as high availability configurations.

     

    Consumers have various options when instantiating the virtual machine.  When selecting Images from the Image library, consumers can choose from Oracle supplied images (Oracle branded images), Private Images, and Marketplace images.  The latter, refers to images that have been uploaded by Image Providers in Oracle Marketplace. Note, some of the images in Marketplace are free while others are for a fee. The next figure displays the short-list set of images from the MarketPlace, such as Ubuntu, CentOS, etc. Consumers must ensure all the software OS plus applications have appropriate licenses.

     

    Figure3.jpg

    All Oracle branded images are free to use. Alternatively, consumers can build custom virtual machines based on the operating system images that are personally uploaded.

     

    When creating an instance, you can not specify more resources than what were purchased. In updating an instance, you can’t change a plan, but you can specify additional resources if available

     

     

    The key value of any Cloud Service is the capability to Cloud burst. Note the following details on Cloud bursting as described by Oracle:

    • This Cloud Service permits you to use additional capacity above your subscription rate (also referred to as "bursting"). You will be charged per hour and billed monthly in arrears for this increased capacity using the "Pay as You Go" model. Pricing for this increased capacity will be based on the current per hour list price for this service available at cloud.oracle.com.
    • Your subscription rate is based on the quantities (e.g. 1 OCPU) that are included in your subscription service. Your total capacity (subscription rate plus bursting), cannot exceed two times (2x) your subscription rate. For example, if you have purchased a subscription that allows 4 OCPUs per month, your bursting would be capped at a total of 8 OCPUs for that service.

     

     

    Key layers of Oracle Compute Cloud

     

    In this section, we will describe the various components and layers of the Oracle Compute Cloud. For each component described, we will walk through the process flow of configuring that layer, along with the associated JSON file for REST API calls.

    Note:  A JSON validator tool should be used to create and validate the JSON file. An example of such a tool is http://jsonlint.com.

    Figure4.jpg

    Instance

    An Oracle Compute Cloud Service instance, is a virtual machine running a specific operating system; with CPU and memory resources that you specify. Associated with an Instance is Network, Storage, and Orchestration.

     

    Figure5.jpg

    In our use case, we will install Oracle Linux 6.7.

     

    Figure6.jpg

    Review and Create

     

    Let’s walk through the workflow for the Instance creation:

     

    Figure7.jpg

    Figure8.jpg

     

     

    Figure9.jpg

    We are going to add an additional disk for our Apache Web server. Note, the storage property options include policies for latency, iSCSI or NFS.

     

     

    Figure10.jpg

    Once the Instance is created, consumers can view their configuration. The next figure, describes the final configuration.

     

     

    Figure11.jpg

     

     

    The following sample JSON file illustrates the Instance creation:

     

    Instance JSON file:

     

    {

      "name": "/usvistech/nishan/VNAInstances",

      "oplans": [

        {

          "label": "VNA instance 1",

          "obj_type": "launchplan",

          "objects": [

            {

    "instances": [

         {

           "shape": "oc3",

           "boot_order": [1],

           "label": "vna-vm-1",

           "networking": {

              "eth0": {

                 "seclists": ["/usvistech/nishan/wlsadmin_seclist"],

                 "nat": "ipreservation:/usvistech/nishan/ipres1"

                              }

                          },

                         "sshkeys": ["/usvistech/nishan/key1"],

                         "storage_attachments": [

                            {

                                "index": 1,

                                     "volume": "/usvistech/nishan/boot"

                    }

                  ]

                }

              ]

            }

          ]

        }

      ]

    }

     

    The following summary list key points required to create an Compute Cloud instance:

    1.    Generate a SSH key
    2.    In the Create Instance page, upload the SSH public keys
    3.    Reserve public IP addresses for your instances.
    4.    Create a security list to group your instances.
    5.    Create a security rule to enable SSH access to the security list containing your instances.
    6.    Create storage volumes to boot your instances from and, optionally, to store your data and applications.
    7.    Build an orchestration file that defines your instances, associate a public IP address with each instance, configure instances for SSH access, and attach the storage volumes you created (if any).
    8.    Upload your orchestration to Oracle Compute Cloud Service and start it.
    9.    (Optional) Configure your instances for HTTP access.
    10.    Log in to your instances using ssh.
    11.    If you attached storage volumes to your instance, mount those storage volumes on your instance.

     

     

    About the Author

     

    Nitin Vengurlekar is the co-founder and CTO of Viscosity North America. At Viscosity, Nitin is responsible for service delivery, partner relationships, and end-to-end solution architecture. Nitin’s main emphasis has been on virtualization, Oracle Engineered Systems, Hyper-Converged Systems, and Public/Private Database Cloud implementations. Nitin is a well-known Oracle technologist and speaker in the areas of Oracle Storage, high availability, Oracle RAC, and private database cloud. He is the author of Database Cloud Storage, Oracle Automatic Storage Management, and the Data Guard Handbook. He has also written many papers on storage, database internals, database tuning, and served as a contributor to Oracle documentation as well as Oracle education material.