OCI (Oracle Cloud Infrastructure) review

OCI (Oracle Cloud Infrastructure) review

Interesting AWS alternative or provider you should not trust? Small startup POV.

Why OCI might be interesting

When choosing a cloud provider for your project / startup you might consider many factors, from which we point out:

  1. Completeness of its cloud stack to fit your needs
  2. Technology (maturity, stability, ease to use)
  3. Relations with customers, support
  4. Pricing
  5. Startup discounts / credits (if applicable for you)

So what about OCI?

  • According to their features supported, OCI is something in between stating cloud providers like Vultr, Linode, Scaleway and tech giants like AWS, Azure, GCP.
  • Their website is stating significant costs savings compared to AWS.
  • Their free tier is pretty generous

But it's not as shiny as it seems, lets describe everything step by step

OCI Review

Cloud stack (features)

We can take a look at Gartner's report chart "Ability to execute" to understand OCI features completeness compare to other cloud providers (the report itself is here): image.png The total list of features is visible from the official pricing page (however it's hard to estimate until you use every single one of them) image.png If we talk about starting a new project, most likely we would be interested in OpenSource databases managed hosting and compute / serverless resources. So here is the shortlist:

  1. Oracle provides managed Kubernetes service with ARM / x86 support and free control pane. On ARM you can even host a server of 4CPU + 24RAM for free according to the "always free resources" (but read the article to the end before you run creating an account there).
  2. Oracle provides MySQL (enterprise edition) managed database hosting apart from Oracle databases - no managed cache or MongoDB.
  3. Oracle functions - based on Fn Project have pretty standard pricing, but are capable only of running containers (you can't write code and deploy it from oracle)
  4. Compute consists of various shapes, that can be fully customized by CPU + RAM, you create instances as you see fit, you can buy additional performance for your block storage.
  5. Same goes for load balancer - it's completely flexible in shape, and can dynamically change it
  6. Integrated web shell
  7. Resource manager using terraform configuration files
  8. There are spot instances but with much more limitations and lesser discount
  9. There are burstable instances with pricing only for base CPU fraction

Sidenote: Oracle databases lack support in tooling across languages and frameworks - only the most basic are present. Their Dynamodb analog seems more generous but there is no "pay as you go" option so you have to specify the maximum reserved capacity and pay for it.

Technology (maturity, stability, ease to use)

Website

There are multiple web apps to face when working with OCI. The main one, and the most pretty of them all, OCI web interface: image.png It is basic, contains all the basic functions one would expect and that's it. But also there are other web apps like for support, oracle account management that looks very outdated. Some functionality is shared across them and is confusing especially support. One of support portal apps:

image.png

When it comes to billing - there is only general overview, for the rest you should look into downloadable csv files, which are detailed but are hard to understand.

Infrastructure

During my testing which lasted a few weeks, I faced 2 issues:

  1. I was trying to use only free resources at the end of free trial. Billing information was reporting some billing, then it stopped, then started again. Support wasn't able to help me with identifying what I was billed for. I imagine what it can be for real big workloads.
  2. I scaled down my cluster and couldn't resize it back :) ARM capacity went out of stock and upscaling wasn't available for several days

Also when you subscribe to a free trial you have to wait up to several days for its activation (guess it's done manually). This is the first cloud provider with such a complicated sign-up procedure.

Some users on reddit complain about inefficient Network layer as well so in some regions network traffic would do unnecessary roundtrips.

This should give some picture about infrastructure maturity

Relations with customers, support

Support

First of all, there are so many channels to ask for support in - popups, support.oracle.com, cloud support service directly from OCI console, sales chat, https://www.oracle.com/support/contact.html and more. Sometimes they are named differently but are the same. Mostly as per my experience and other reviews that can be found on reddit - it won't help you or take ages to help. They will respond promptly but without impact.

Relations with customers and accounts blocking

Here I will just post my case that is partially related to support as well.

I was using a free trial and eventually, it got expired. I could still use always free services and access console, just couldn't use any paid ones.

So then I decided to give OCI a chance and upgrade to paid account - it gave me an "error". I contacted one channel for support, then another one, then local support in my country - in total discussions cost me 5+ days.

At last, I received an email like this: "Your account was being suspended for violating Terms of Use. You can raise an issue again if you think it's an error". So I raised again and the response was "Your account is suspended. Decision is final". I rechecked Terms, found nothing, and asked what exactly I violated - silence in response. And support agent that called me politely before - are just ignoring

My guess here is that their system uses some "dirty" rules for marking users as "violators" that's why they just don't want to share it. And I saw that I`m not the only one.

The worst thing is that they do everything manually and involve card issuer info checking to try to prevent a person from ever mimicking another one to create a second account. Meaning once they suspend your account - you will be forbidden to use their services ever. (unless you do use completely different name and corresponding card)

Upgrading to Pay-As-You-Go at once might lower your chances of being suspended but still won't give you confidence, as the billing system might have bugs.

For another completely described cases refer to this Reddit thread.

Pricing

Oracle claims that its pricing is better than on AWS. And it is. Almost. It works for pay as you go prices and egress.

  1. If we compare spot instances - they offer far less discount (strictly 50%) and I likely less availability of those.
  2. When you check Oracle pricing page - you will find that they compare to pay as you go pricing on AWS. However, AWS has reserved instances that provide discounts up to 70% and become better than Oracle offerings.
  3. Oracle has its own "reservation" analog - credits system. It's pre-paid money that expire in 1 year. But I failed to get any information about what amount of money you need to put in to get any discount. Its closed information compared to what Azure and AWS offers

Conclusion

Before the situation with my account, I would recommend trying out Oracle due to their generous free tier and good pay-per-hour prices. But now I would recommend trying out OCI only in 2 cases:

  1. You are a big customer, then you should talk your case through sales and I guess you will be paid more attention to, probably you will get good discounts on credits. But considering not enough infrastructure maturity - this is not for all customers.
  2. You just want to host a pet project and don't mind being locked out. Two pieces of advice in this case: a) do an upgrade to paid account at once - this will reduce your chances for being locked out soon b) keep backups somewhere else and be ready to migrate

FINAL ADVICE: when signing up for a free trial, not all bank cards will be accepted and they don't provide options like Paypal, if you have several cards - try them all.