Monday, June 30, 2014

Puppet and Oracle Enterprise Manager

Enterprises are using virtualization already for years as part of their datacenter strategy. Since recent you see that virtualization solutions are turning into private cloud solutions which enables business users even more to quickly request new systems and make full use of the benefits of cloud within the confinement of their own datacenter. A number of vendors provide both the software and the hardware to kickstart the deployment of a private cloud.

Oracle provides an engineered system in the form of the Oracle Virtual Compute Appliance which is a combination of pre-installed hardware which enables customers to get up and running in days instead of months. However, a similar solution can also be created “manually”. All software components are available separately from the OVCA. Central within the private cloud strategy from Oracle is Oracle Enterprise Manager 12C in combination with Oracle VM and Oracle Linux.

In the below diagram you can see a typical deployment of a private cloud solution based upon Oracle software.

As you can see in the above diagram Oracle Enterprise Manager plays a vital role in the Oracle private cloud architecture. Oracle positions the Oracle Enterprise Manager solution as the central monitoring and provisioning tooling for both the infrastructure components as well as application database components. Next to this Oracle Enterprise Manager is used for patching both operating system components as well as application and database components. In general Oracle positions the Oracle Enterprise Manager the central solution for your entire private cloud solution. Oracle Enterprise Manager ties in with Oracle VM Manager and enables customers to request / provision new virtual servers from an administrator role however also by using the cloud self service portals where users can create (and destroy) their own virtual servers. Before you can do so you however have to ensure that your Oracle VM Manager is connected to Oracle Enterprise Manager and that Oracle VM itself is configured. 

The initial steps to configure Oracle VM to be able to run virtual machines are outlined below and are commonly only needed once.

As you can observer quite a number of steps are needed before you will be able to create your first virtual machine. Not included in this diagram are the efforts needed to setup Oracle Enterprise Manager and combine it with Oracle VM Manager and on how to activate the self service portals that can be used by users to create a virtual machine without the need for an administrator. 

In general, when you create / provision a new virtual machine via Oracle tooling you will be making use of a template. A pre-defined template which can contain one or more virtual machines and which can potentially contain a full application or database. For this you can make use of the Oracle VM template builder or you can download pre-defined templates. The templates stored in your Oracle VM template repository can be used to provision a new virtual machine. Commonly used strategy is to use the right mix of things you put into your template and things you do configure and install using a first boot script which will be started the first time when a new virtual machine starts. even though you can do a lot in the first boot script this still will require you to potentially create and maintain a large set of templates which might differ substantially per application you would like to install or per environment it will be used in. 

In a more ideal scenario you will not be developing a large set of templates, in an ideal scenario you will only maintain one (or a very limited set of) templates and use other external tooling to ensure the correct actions are taken. Since recent Oracle has changed some of the policies and the Oracle Linux template for Oracle VM which you can download from the Oracle website is nothing more then a bare minimum installation where almost every package you might take for granted it missing. This means that there will not be a overhead of packages and services started that you do not want or need. the system will be fully your to configure. This configuration can be done by using first boot scripting which you would need to build and customize for a large part yourself or you can use external tooling for this. 

A good solution for this is to make use of puppet. This would mean that the first boot script only need to be able to install the puppet agent on the newly created virtual machine. By making use of node classification the puppet master will be able to see what the intended use of this new machine is and install packages and configure the machine accordingly.

Even though this is not a part of the Oracle best practices it is a solution for companies who do have a large set of different type of virtual machines they need to be able to provision automatically or semi automatically. By implementing puppet you will be able to keep the number of Oracle VM templates to a minimum and keep the maintenance on the template extremely limited. All changes to a certain type of virtual machine provisioning can be done by changing puppet scripts. An additional benefit is that this is seen as a non-intrusive customization to the Oracle VM way of working. This way you can stay true to the Oracle best practices and add the puppet best practices. 

As a warning, on the puppet website a number of scripts for Oracle databases and other Oracle software are available. Even though they do tend to work it is advised to be extremely contentious about using them and you should be aware that this might be harming your application and database software installation. it will be good to look at the inner workings of them before applying them in your production cloud. However, when tested and approved to be working for your needs they might be helping you to speed up deployments. 

Saturday, June 07, 2014

Oracle Cloud Periodic Table

Cloud computing and cloud in general is a well discussed topic which defines a new era of computing and how we think about computing and how this can be done in the new era. Defining the cloud is a hard thing and very much depend on your point of view. As many vendors have tried to describe what cloud computing is you might find that they all have a different explanation due to their point of view. This makes creating a single description of cloud computing hard. When you are looking for the pure definition of cloud computing the best source to turn to is NIST (National Institute of Standard and Technology) who have been giving a definition of cloud computing which might be one of the best ways of stating it.

The NIST definition lists five essential characteristics of cloud computing: on-demand self-service, broad network access, resource pooling, rapid elasticity or expansion, and measured service. It also lists three "service models" (software, platform and infrastructure), and four "deployment models" (private, community, public and hybrid) that together categorize ways to deliver cloud services. The definition is intended to serve as a means for broad comparisons of cloud services and deployment strategies, and to provide a baseline for discussion from what is cloud computing to how to best use cloud computing.

To help customers understand cloud and cloud computing better and to show that cloud computing is not a single solution however constist out of many solutions which can be combined to form other solutions Oracle has released a short video to create a mindset which uses the analogy with the Periodic Table of Elements which is called the Oracle Cloud Periodic Table.

This video shows the vision of Oracle on cloud computing, or at least a part of the vision and creates a mindset to understand that your specific cloud solution will most likely be the combination of a number of modules which are offered from within a cloud platform. Not only Oracle is making use of this model, it is a growing trend in hybrid clouds and is largely based upon open standards and the as-a-Service way of thinking. 

Wednesday, June 04, 2014

Define new blackout reasons in Oracle Enterprise Manager 12c

Oracle Enterprise Manager is positioned by Oracle as the standard solution for monitoring and managing Oracle and non-Oracle hardware and software. Oracle Enterprise manager is quickly becoming the standard tooling for many organisations who do have operate an Oracle implementation inside their corporate IT landscape.

Oracle Enterprise Manager monitors all targets and has the ability to alert administrators when an issue occurs. For example when a host or a database is down an alert is created and additional notification can be triggered.

In essence this is a great solution, however in cases where you do for example maintenance you do not want Oracle Enterprise Manager to send out an alert as you intentionally bring down some components or create a situation which might trigger an alert. For this Oracle provides you the ability to create a blackout from both the graphical user interface as well as the CLI. A blackout will prevent alerts to be send out and you can do your maintenance (as an example).

One of the things you will have to provide during the creation of a blackout is the blackout reason which is a pre-set description of the blackout. This is next to a free text description. The blackout reason will provide you to report on blackouts in a more efficient manner.

Oracle provides a number of blackout reasons, however your organisation might require other blackout reasons specific to your situation. When using the CLI you can query all the blackout reasons and you can also create new blackout reasons.

To get an overview of all blackout reasons that have been defined in your Oracle Enterprise Manager instance you can execute the following command to get an overview:

emcli get_blackout_reasons

In case the default set of blackout reasons are not providing you the blackout reason you do require you can create your own custom blackout reason. When using the CLI you can execute the following command:

emcli add_blackout_reason -name=""

As an example, if you need a reason which is named "DOWNTIME monthly cold backup" you should execute the following command which will ensure that next time you execute get_blackout_reasons you should see this new reason in the list. It also ensures it is directly available in the GUI version when creating a blackout.

emcli add_blackout_reason -name="DOWNTIME monthly cold backup"

Tuesday, June 03, 2014

Resolving missing YAML issue in Perl CPAN

When installing modules as part of your Perl ecosystem or when updating modules inside your Perl ecosystem you do most likely use CPAN or CPANM. CPAN stands for Comprehensive Perl Archive Network and is the default location where a large set of additional modules for the Perl programming language do reside and which you can download. CPAN provides an interactive CLI interface which you can use to install new modules. In essence CPAN is much more then just a tool and a download location, CPAN is a thriving ecosystem where people add new software and modules to the extending CPAN archive on a daily basis. The below image shows how the CPAN ecosystem looks like from a high level perspective;

When you use the CPAN CLI out of the box you might be hit with a number of warnings around YAML missing. YAML stands for, YAML Ain't Markup Language, and is a human friendly data serialization standard for all programming languages with implementatins for C/C++, Ruby, Python, Java, Perl, C#, .NET, PHP, OCaml, JavaScript, ActionScript, Haskell and a number of others.

The warning messages you get when using CPAN might look like the ones below;

"YAML' not installed, falling back to Data::Dumper and Storable to read prefs '/root/.cpan/prefs"

"Warning (usually harmless): 'YAML' not installed, will not store persistent state"

The way to resolve this is very simple, first ensure you have the YAML module installed. If this is the case ensure you inform CPAN that you would like to use YAML, this can be done by excuting the 2 commands below and this should resolve the issue of the repeating warnings when using CPAN.

o conf yaml_module YAML
o conf commit

Exalogic and Oracle Ops Center

Oracle Exalogic, as part of the Oracle Engineered systems portfolio, can be completely managed by making use of Oracle Enterprise Manager. It is within the strategy of Oracle to ensure all products can be tied into Oracle Enterprise Manager as the central maintenance and monitor solution for the enterprise. Traditionally Oracle Enterprise Manager finds its roots in a software monitor and management tool and is traditionally not used for hardware monitoring and maintenance. Oracle OPS center, originally from Sun, is build for this tasks.

Oracle has integrated the two solutions, Oracle Enterprise Manager and Oracle OPS center to form a single view. Even though under the hood it are still two different products you see that the integration is getting more and more mature and that the two products startt to act as one where the OEM12C core is used for software tasks and the OPS core is used for hardware tasks. The below image shows the split of the two products.
As the Oracle Exalogic engineered system consists out of a solution containing both hardware and software you will see that managing one or more instances of Oracle Exalogic will require you to have both products configured and work together to provide a full end-to-end monitoring and maintenance solution.

The below video gives a short introduction of the capabilities of Oracle OPS center in combination with Oracle Exalogic.