Monthly Archives: October 2015

Oracle Cloud DBaaS – First Impressions

Disclaimer – I’m an Oracle ACE Director and I’ve been provided with a trial account for testing Oracle Cloud services. 

With the above disclaimer out the way, one nice feature of Oracle Cloud is that ANYONE can sign up for a free trial. Originally when Oracle Cloud launched there was a waiting period after requesting a trial, I’m not entirely sure if trial access is instant now or if there is still a waiting period, however it’s still pretty cool you can sign up for free (without having to enter any credit card details) and kick-the-tires before deciding if you want to use the service or not.

cloud-trial.png

Once you’ve signed up for a DBaaS trial account and receiving your credentials you can login, however this is where things get a little different to Amazon AWS if you’re familiar with it.

With Amazon AWS you typically login to your account and you can get an overview across all the datacenters you have instances running in.

Oracle have gone a different route and as part of signing into your account you are first asked to enter the datacenter you wish to login to. This immediately presents a couple of potential problems:

  1. You need to remember which datacenters you are using (was it US1 or US2?)
  2. If I have instances in different datacenters then I need to logout and back in, which is sub-optimal. I’d prefer a single entry point that then allows me to select a data-center once I’m logged in.

Over the time I’ve been using Oracle Cloud this hasn’t changed so it looks like their approach isn’t going to change anytime soon, however I can see it being initially confusing for someone looking to migrate away from AWS.

So next I’m asked for my Identity Domain:

 

identity-domain.png

Identity Domain

 

You will have chosen an identity domain when you signed up for the trial. This needs to be unique across a datacenter (if someone else has already chosen it then you won’t be able to use it). I’m not entirely sure if it needs to be unique across datacenters (I haven’t checked that). So – a bit like Twitter, Google, Facebook etc…if you have a name you want to use, make sure you sign up before someone else grabs it! 😉

Next I’m presented with the usual login and password screen:

login.png

once I’ve logged in then I’m presented with the main dashboard:

dashboard1.png

My Services Dashboard

 

note in my case I have access to most of the Trial Service types, lower down in my Services Dashboard I can see the Database Cloud Service option:

dashboard2.png

Database Cloud Service

I have to say that I’ve noticed this Dashboard ‘evolve’ in the first few days, I did have some issues when viewing it on a large external monitor (images were repeated, and weird CSS related issues). It gradually seems to be settling down to a relatively visually appealing dashboard, I’m sure Oracle will enhance and tweak it as they get more feedback on it.

My first impressions were that there are lots of places I can click and navigate to and once I’ve navigated a different screen I might get a very different UI experience. Again Oracle seems to be working on this and I expect there will be a much more unified UI experience soon.

Clicking on the Details option in the Database Cloud Service section gives me some basic overview of my service:

details.png

(note I’ve obscured some information here).

Pretty basic stuff.

The billing metrics link isn’t that interesting to show for a Trial account so I’ll omit it here, but gives you some nice stats and charts that break down your usage for your different instance types.

Clicking on the ‘Open Service Console’ link is where all the fun stuff is, you can see here that I have already created an instance and I get some basic (albeit aggregated) stats on how many OCPU’s, memory and storage space I’m using in total.

myservices.png

In the next blog post we’ll walk through creating an instance from scratch.

Oracle Cloud – Which Edition?

In my previous post I discussed General Purpose versus High Memory instance option types in Oracle Cloud.

Another decision you’ll need to make is which Edition of the database do you wish to use? Here the options are slightly different to if you host ‘On-Prem’ (as the marketing speak goes).

Using the Non-Metered service as our comparison, we can see there are 4 Editions available

 

cloud7.png

Non-metered Editions

The Editions available are the same whether you choose Virtual Image versus DBaaS, Metered versus Non-Metered or indeed General Purpose versus High Memory. The Editions are (at the time of writing) described as

  • Standard Edition
  • Enterprise Edition
  • High Performance
  • Extreme Performance

Underneath the pricing information there is some extra information detailing the options available in the High Performance and Extreme Performance Editions,  for High Performance it lists:

High Performance: Multitenant, Partitioning, Real Application Testing, Advanced Compression, Advanced Security, Label Security, Database Vault, OLAP, Advanced Analytics, Spatial and Graph, Diagnostics Pack, Tuning Pack, Database Lifecycle Management Pack, Data Masking and Subsetting Pack, and Cloud Management Pack for Oracle Database.

whereas for Extreme Performance it lists:

Extreme Performance: In-Memory Database, RAC (Real Application Clusters), Active Data Guard, Multitenant, Partitioning, Real Application Testing, Advanced Compression, Advanced Security, Label Security, Database Vault, OLAP, Advanced Analytics, Spatial and Graph, Diagnostics Pack, Tuning Pack, Database Lifecycle Management Pack, Data Masking and Subsetting Pack, and Cloud Management Pack for Oracle Database.

My first thoughts were that this is not exactly easily digestible information. I had to stare long and hard at two lists (and actually paste them into a Text Editor to format for more easier comparison). Also where is the list of features for Standard Edition and Enterprise Edition?

Let’s look at each Edition in turn.

Standard Edition

What’s to say here? Since there’s no definitive list, I’m going to assume that the list of features is identical to if you had installed it On-Prem. It would be nice if Oracle explicitly stated that though IMHO.

Enterprise Edition

Again, there is no list of options displayed, so I’m going to have to assume that the options are identical to if you installed it On-Prem. However as every Oracle veteran knows, you can’t just assume things about which Options you can use, especially where Enterprise Edition is concerned (think $$$ here). However I like to think that Oracle have thought about this long and hard and will prevent me from using any Option I’m not licensed to use in Oracle Cloud. However it would be beneficial to have something clearly written on the Oracle Cloud site that let me know what I could expect feature-wise with the Enterprise Edition.

High Performance Edition

Ok here’s where we start to see the differences emerge and things start to get interesting. With High Performance, we get everything in Enterprise Edition plus the following options:

  • Multitenant
  • Partitioning
  • Real Application Testing
  • Advanced Compression
  • Advanced Security
  • Label Security
  • Database Vault
  • OLAP
  • Advanced Analytics
  • Spatial and Graph
  • Diagnostics Pack
  • Tuning Pack
  • Database Lifecycle Management Pack
  • Data Masking and Subsetting Pack
  • Cloud Management Pack for Oracle Database.

 

Straight off the bat, the one that catches my eye here is the Multi-tenant option. I’m no Oracle Licensing Expert (please don’t rely on my advice here), but my understanding was that Multi-tenant was an extra licensing option cost in addition to Enterprise Edition, plus I believed each additional PDB incurred extra licensing (however this might be based on my misunderstanding or old information).

So I can pay $1500 / OCPU / month for Enterprise Edition, or for an extra $500 / OCPU / month I can get High Performance Edition which gives me the ability to create as many Pluggable Databases (PDB’s) as I like for “just” an extra $6,000 a year. That’s actually a pretty good deal when you look at the Oracle Global List price. That’s without even taking the other options you get thrown in for that extra $500 / OCPU / month.

If you add up the cost of some of those extra licensable Option Packs, the extra $500 / OCPU / month (in this example) starts to look like an extremely good deal versus hosting it On-Prem and having to pay the additional option prices.

This I think is where Oracle got really smart. They’re beating the competition by offering prices you just can’t compete with elsewhere. They’re making options that were previously unaffordable for many businesses now much cheaper.

Extreme Performance Edition

With Extreme Performance Edition we get everything we got with High Performance Edition (and therefore also Enterprise Edition), namely:

  • In-Memory Database 
  • RAC (Real Application Clusters)
  • Active Data Guard
  • Multitenant
  • Partitioning
  • Real Application Testing
  • Advanced Compression
  • Advanced Security
  • Label Security
  • Database Vault
  • OLAP
  • Advanced Analytics
  • Spatial and Graph
  • Diagnostics Pack
  • Tuning Pack
  • Database Lifecycle Management Pack
  • Data Masking and Subsetting Pack
  • Cloud Management Pack for Oracle Database

However I’ve marked in bold the 3 new options specific to Extreme Performance. The stand-out one here is the In-Memory option, which again if you were to host On-Prem would be a not insignificant extra licensing cost, but in my previous example of General Compute it’s an extra $500 / OCPU / month over the cost of the High Performance Edition, thus bringing it into the ‘not too pricey’ range.

The “rub” here however is that the In-Memory option isn’t that useful unless you have a reasonable amount of memory to throw at it. Since Oracle Cloud will charge you more for an instance with more memory you may find that it could be more cost effective to run this option On-Prem since In-Memory licensing cost isn’t driven by the amount of memory you have, but rather by the processors. So in theory you may have a machine with say (for example) 2 Processors but 120Gb of memory, which is an option that Oracle doesn’t provide with their standard instance types.

All in all, I’m pretty impressed with the features provided by the instance types, particular since it opens the door to getting access to some options you might not have been able to afford previously.

Oracle Cloud – General Purpose versus High-Memory

In my last post, I discussed making sense of OCPU’s, in this post I want to talk about the instance types General Purpose and High-Memory.

cloud4.png

General Purpose Compute versus High-Memory Compute

You’ll notice the High-Memory compute option is between 50-70% more expensive depending whether you opt for Standard Edition, Enterprise Edition, High Performance or Extreme Performance.

So what do you get for that extra money?

Well, when I first looked at Oracle Cloud, I have to say information was pretty hard to find and navigate round. I would have expected it to be much easier to click an option and see exactly what I got for my money. I have noticed that as the days and weeks go by that the website is constantly being updated (so I encourage you to refer back to it regularly because something that you read a few weeks ago might have changed).

The key is to find the (very easily overlooked and not-very-prominent) link to the Compute Shape information (note in the screenshot the highlighting was added by me to make it easier to find).

cloud5.png

Once you click that link you’ll see information on the various instance sizes:

cloud6.png

Compute Shapes Available

Note – I highly recommend checking this page every so often as I’ve noticed new options appear and the values changing.

The key thing to note is that generally, as the name suggests, the High Memory shapes offer instances with more memory. As a generalisation typically the size of the memory available for a given OCPU amount is double for the High Memory Shape versus the General Purpose shape.

So for example if we select the OC2M High Memory Shape, we can see that it has –

  • 2 OCPU’s
  • 30Gb memory

contrast that with the OC4 General Purpose Shape, which has

  • 2 OCPU’s
  • 15Gb memory

but here’s where I find it confusing…at first glance you’d expect the OC2M shape to be the High Memory version of the OC2 shape (with the M suffix denoting that it’s the High Memory version), however it’s not that simple.

For whatever reason, Oracle has decided that the numbers in the General Purpose and the High Memory shapes don’t really align (i.e. don’t compare OCn with OCnM (where ‘n’ denotes a number). Personally I think it would be simpler and more logical had they chosen a numbering system that made that comparison easier (sure I know it’s not difficult to work out, but hey if it takes me an extra couple of minutes to understand the options then that’s two minutes longer before I’ve decided to purchase or not).

So there’s clearly decisions and trade offs to be made here, let’s imagine in terms of budget I have roughly $1200 a month to spend on Oracle Cloud and I’m happy to stick with Standard Edition. I can see from the pricing that Standard Edition would (currently) cost me $300 / OCPU / month. So I could go for:

  • OC3 – 1 OCPU with 7.5Gb memory = $300 / month
  • OC4 – 2 OCPU with 15Gb memory  = $600 / month
  • OC5 – 4 OCPU with 30Gb memory = $1200 / month

so pretty simple here, double my money and I get double the CPU and double the memory. However if I take the High Memory compute option into account I can also go for:

  • OC1M – 1 OCPU with 15Gb memory = $525 / month
  • OC2M – 2 OCPU with 30Gb memory = $1,050 / month
  • OC3M – 4 OCPU with 60Gb memory = $2,100 / month

So my choice here is do I go for OC5 with 4 OCPU’s and 15Gb of memory or maybe OC2M with 2 OCPU’s and 30Gb of memory? They’re roughly the same cost, but do I need memory more than CPU or vice-versa? Clearly only you can answer that.

All in all, some pretty interesting instance types in terms of OCPU and memory and your workload and anticipated usage and future growth will dictate which option is best for you. One thing Oracle Cloud promises (but I’ve yet to test) is that it’s easy to scale up (but not down) to a larger instance size when you need to grow, so right now maybe the best option is to save some money and choose a more minimal instance type and grow when you need to rather than going for the ‘big machine’ right upfront (and paying the extra cost for under-used capabilities).

Oracle APEX 5.0.2 Patchset Released

APEX patchset 5.0.2. was released with a few important fixes in it (less than the 5.0.1 patchset at first glance), a few stand-out ones that caught my eye were:

  • 21479385 – APEX_WEB_SERVICE.MAKE_REST_REQUEST results in ORA-06502 if P_BODY pass as Null
  • 21531843 – apxremov.sql does not remove all public synonyms
  • 21882834 – APEX_JSON: Invalid Output when combining Write(Cursor) with other writes (I hit this one)
  • 21901376 – ORA-06502 when calling APEX_UTIL.PREPARE_URL in classic report query (I also hit this one)

As always it’s worth checking out  the known issues before you install, but I’d definitely recommend installing this patch (I did and haven’t noticed any adverse effects).

 

 

 

 

Making Sense of Oracle Cloud OCPU’s

As a long time user and advocate of Amazon AWS services I’ve been watching the Oracle Cloud Services evolution very carefully and with a lot of interest. After all, if you’re going to run Oracle products you’d think Oracle would be able to host them for you better than anyone else right?

Whilst Oracle Cloud provides an arrange of services and infrastructure options, the service I’m most interested in is the Database as a Service (DBaaS) option. With this service I’m essentially using an Oracle Database that Oracle are hosting in one of their data-centers that I can use for pretty much any application than requires a back-end Oracle Database.

One of the first decision points (after deciding to sign-up that is!) is deciding what Instance Type you want. As a long-time Amazon AWS user I’m very familiar with the instance types that Amazon provide and I have to admit it took me a while to adjust and understand the instance types and sizes available with Oracle Cloud.

If you head to pricing page for the DBaaS service, you’ll see something similar to (prices may change – the original image is from the Oracle website)

cloud1.png

DBaaS Cloud Pricing

Pretty simply right? But wait a moment, what is an OCPU exactly? The other thing that immediately struck me was what are different prices and different service types, for example there are Virtual Image prices:

 

cloud2.png

Virtual Image Prices

there are Non-Metered services:

cloud3.png

Non-Metered Prices

I must admit it took me a while to get my head around how they (Oracle) had structured the instance types and prices, basically it comes down to a couple of options.

  • Metered versus Non-Metered
  • Virtual Image versus DBaaS

Metered versus Non-Metered

There are no server capability differences between Metered versus Non-Metered (i.e. you can perform the same functions with both offerings). However with metered versus non-metered you are deciding whether you want to be charged on the actual usage of the service, so you can scale up and down . A Non-metered subscription is the ‘typical’ flat monthly fee for a fixed configuration, if you stopped your service half way through the month you would still be charged for the month (although you can be billed by the hour too).

Virtual Image versus “Standard DBaaS”

I struggled with the wording here, but basically with the Virtual Image you get the bare instance and it’s your responsibility to install and setup the database, you get no additional tooling (i.e. no fancy Web GUI just whatever you’re used to with the standard SQLPlus, EM interfaces etc).

With “Standard DBaaS” you are getting a machine that already has the Database installed, using a standardised installation (i.e. you can’t really customise anything during the installation as you could if you installed it yourself). You also get Glassfish, APEX Listener and some other software pre-installed as well as a GUI front-end to manage (i.e. start / stop / restart etc) the instance.

So – choose Standard DBaaS if you want a nice front-end to manage your instance, plus the convenience of not having to install it yourself. Choose Virtual Image if you want more control (and save some $$$ for not having the additional tooling).

So What about OCPUs?

Simply put OCPU’s are “Oracle CPU’s”, at the time of writing Oracle is quoted on the Pricing Page as saying –

An OCPU provides CPU capacity equivalent of one physical core of an Intel Xeon processor with hyper threading enabled. Each OCPU corresponds to two hardware execution threads, known as vCPUs.

So the prices listed are for a single OCPU (giving you two hardware threads / vCPU’s). So if you chose:

  • Standard Edition
  • Non-Metered
  • General Purpose Compute

 

The list price is $300 per month per OCPU. If you wanted a machine with 2 OCPU’s, multiply that figure by 2 ($600 per month) and you’ll get a machine with 4 vCPUs / threads).

In the next post we’ll talk about General Purpose versus High-Memory and the various database options available.