DZone
Cloud Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Cloud Zone > Oracle Bare Metal Cloud (BMC) Orchestration With Cloudify

Oracle Bare Metal Cloud (BMC) Orchestration With Cloudify

Oracle has bridged the gap between conventional data centers and the Cloud by providing an infrastructure-as-a-service interface to bare metal servers, while retaining the flexibility of virtual networking.

Dewayne Filppi user avatar by
Dewayne Filppi
·
Apr. 17, 17 · Cloud Zone · Tutorial
Like (2)
Save
Tweet
4.22K Views

Join the DZone community and get the full member experience.

Join For Free

Late last year, Oracle announced the availability of their Bare Metal Cloud IAAS to the world. The Bare Metal Cloud (BMC) combines physical instances combined with a fully virtualized networking infrastructure that emulates a traditional datacenter, but with the convenience and agility that infrastructure as a service provides. With non-virtualized compute and microsecond inter-host network latency, the BMC is particularly suited to demanding high performance workloads. For the latest on the bare metal cloud, see the Oracle website. This post covers the Cloudify integration with the Oracle BMC.

The Cloudify Oracle BMC Plugin

Like all IAAS plugins for Cloudify, the BMC plugin maps nouns in the underlying IAAS API to TOSCA types, and the verbs get mapped to orchestrator lifecycle events (e.g. "create" and "configure"). The current version of the BMC plugin only addresses compute and networking domains of the BMC SDK. The plugin provides the ability to orchestrate instances (both bare metal and virtual), along with related networking components such as networks, subnets, security, and Internet gateways.

The following components and relationships are supported:

cloudify.oraclebmc.nodes.Instance

This represents a compute node, either bare metal or virtual (based on the "instance_shape") property. It accepts configuration properties such as image_id, instance_shape, compartment_id, and availability_domain. After the install workflow is complete, the instance will have attributes public_ip and private_ip. It is connected to a subnet (described below), via the cloudify.oraclebmc.relationships.instance_connected_to_subnet relationship.

cloudify.oraclebmc.nodes.VCN

This node type represents a network. The main unique configuration property is the network cidr_block, from which subnets are carved out.

cloudify.oraclebmc.nodes.Subnet

This node type represents a subnet network. This node is configured with a cidr_block and security_list, among other properties. cidr_block represents the portion of the VNC network CIDR block, and the security_list is a list of firewall rules. It is associated with a target network via the cloudify.oraclebmc.relationships.subnet_in_network relationship.

cloudify.oraclebmc.nodes.Gateway

This node represents an internet gateway. It is configured with a list of routing rules, which amounts to an internet firewall. It is associated with a target network via the cloudify.oraclebmc.relationships.gateway_connected_to_network relationship.

A simple, single instance sample blueprint can be found in the plugin examples directory. Bear in mind that it, and the other example mentioned later, rely on images that have firewalld disabled.

node_templates:

  server:
    type: cloudify.oraclebmc.nodes.Instance
    properties:
      install_agent: false
      bmc_config: *bmc_config
      public_key_file: 'somekey.pub'
...


A more elaborate example blueprint can be found in the Cloudify Examples repo, which starts an autoscaling/autohealing Kubernetes cluster.

Limitations

When used with Cloudify Manager, the plugin must be installed via the cfy plugins upload method. A wgn package is included in the repo. The plugin currently only addresses compute and networking aspects of the cloud API. Future revisions will expand support to other aspects such as storage.

The Cloudify Oracle BMC Manager Blueprint

In order to fully support Cloudify orchestration capabilities, a Cloudify Manager is needed. In the examples/manager directory, there is a Cloudify manager blueprint that supports the Oracle Bare Metal Cloud. This blueprint is used to bootstrap a Cloudify manager in a similar fashion to manager blueprints for other clouds. The blueprint inputs file has a description of the settings needed.

Prerequisites

The image used must be a Centos 7 image on an instance shape with at least 8GB of RAM. The image must have firewalld (enabled by default) disabled. You'll need Oracle BMC API credentials as well. The blueprints directory contains the file oracle--agent.tar.gz. After manager bootstrap, this file should be added to the /opt/manager/resources/packages/agents directory, if you'll be running agents on Oracle Linux machines.

Bootstrapping

The bootstrapping process is no different from the standard process. First you'll need to get the Cloudify CLI and install it on a machine with internet access to the BMC API. Then just:

cfy bootstrap --install-plugins -p oracle-bmc-manager-blueprint.yaml -i oracle-bmc-manager-blueprint-inputs.yaml


After the bootstrap is complete, you can upload blueprints and have full Cloudify Manager functionality.

Conclusion

Oracle has bridged the gap between conventional data centers and the Cloud by providing an infrastructure-as-a-service interface to bare metal servers, while retaining the flexibility of virtual networking. Now this powerful environment has been added to the ever-growing Cloudify family of supported clouds. As always, the code and examples are available on GitHub.

Cloud

Published at DZone with permission of Dewayne Filppi, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Automation Testing vs. Manual Testing: What's the Difference?
  • To Shift Right, You Need Observability
  • NextJS Vs React: Key Differences, Advantages and Limitations
  • Correlation Between Fast TTM and Containers

Comments

Cloud Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo