Thursday, April 22, 2021

Which one to pick: Free APEX Service vs Free Oracle Autonomous DB

I'm a big fan of the Free Oracle Cloud as it allows Oracle APEX, Oracle Database, web developers, or more generally, everybody, to get started doing their thing. If you want to get going, I previously did a series you may want to read called Best and Cheapest Oracle APEX hosting: Free Oracle Cloud.

A few days ago Oracle announced the free offering for the Oracle APEX Service. I previously started on a series on this new APEX service My spin on the new Oracle APEX Application Development Service. I still have to continue that series, but I first thought to write now that it's available for free, about which one to pick.  The Free Oracle Autonomous DB which comes with APEX or the Free APEX Service which comes with the Oracle DB?

All-in-all both services are very similar, but the decision is very easy for me. Ask these two questions to yourself:

Do I want to have SQL*net access (e.g. connect with SQLcl, SQL Developer, or Visual Studio Code)?

If the answer is yes, you need to go with the Oracle Autonomous Database as of the time of writing SQL*net access isn't available for the APEX Service.

Do I want to upgrade my free service to a paid service at some point?

The APEX Service is unbelievable value for money, and 1/3 of the price of the Autonomous Database, so if you ever want to upgrade in one click to a paid version of the APEX Service, you want to start from the free APEX Service, You can't go from the Autonomous DB to the APEX Service, so the one you pick decides where you upgrade to.

Combining both ...

If you don't mind a bit of hassle, you could start with the Always Free Autonomous Database, export the database and APEX apps, and import them into the APEX Service. It will take a bit of effort to do this, but it's definitely a good choice if you don't mind doing that. But from that moment onwards you will work with the APEX Service... or you treat the APEX service as your production environment and your Always Free Oracle Autonomous DB as your development environment.

If you wonder why do you even care about SQL*net access... I work file-based, e.g. all my PL/SQL objects (packages, procedures, ...) are in files in Git and I edit them, I see very nicely what I changed, I can easily commit, etc. I won't mess up other people's code and I can always go back to a previous version. So, I really like to work in Visual Studio Code linked to my Git. Now I could just copy/paste when I'm done editing and compile it in SQL Workshop of SQL Developer Web, but it's one extra step.

Starting with the Always Free APEX Service and upgrading to Paid.

For most smaller projects I will probably educate people to go with the Always Free APEX Service. Most time is spent in APEX anyway and SQL Workshop or SQL Developer Web is good enough for those small projects to maintain the database objects as typically not many people are working on the same package at the same time. So I thought to see how well upgrading from Free to Paid would work... and I must say I was impressed! It took about 15 minutes to do. Here's what I did:

In the Oracle Cloud console, go to the APEX Application Development - APEX Instances and hit the Create APEX Service button:

Follow the wizard to Create the APEX Service; give it a name


Add a password and provide the email addresses of people you want to be notified of maintenance. This notification part is new and really useful!


The Always Free APEX Service is ready and you can play with it. Now, let's hope at some point you are so successful with your APEX app, that you will switch to a Paid instance. Here's what it takes to upgrade.
Click the More Actions : Upgrade Instance to Paid:


Confirm you want to upgrade:


It will take a few minutes to update:


And presto, there it becomes available:


Easy! Now one of the best features of the APEX Service is that it can Auto Scale, which means that on heavy traffic the service can take up to 3 times the OCPU you have. I find that super cool :) You pay for it, but you don't have to do anything, and it's only for the time it needs more resources.

When you upgrade from a free tier, the auto-scaling is not enabled by default. Here's how to enable it: Click More Actions > Scale:


Hit the Auto Scaling checkbox:


This takes a bit of time and for me, it didn't automatically tell me it was done....


... at some point I refreshed the browser and saw it was done:

I like the APEX Service a lot. It's missing a few features before I can move a few customers
e.g. the ability to have custom domain names to name one. 

But since January 13th I'm actually using the new APEX Service and hosting a public website on it.
It's a fun app to predict the curve of the COVID-19 cases in Belgium. There's a static page in front of it, so the custom domain name toogviroloog.be is there, but once you click on Predict (Voorspel zelf), you will see the APEX app hosted on the APEX Service.


Hope this post helps to pick the Free Oracle Cloud service you need.

6 comments:

Alberto Gonzalez said...

Good explanation, thanks so much!

Norman said...

Thanks Dimitri. for the custom domain. you can try the Vanity URLs.

https://docs.oracle.com/en/cloud/paas/exadata-express-cloud/csdbp/vanity-urls.html

Stew said...

I found that the easiest way to sign up for the Free Apex Service is to go to this page:

https://apex.oracle.com/en/learn/getting-started/

Then simply click the button "Request a Free Workspace"

They'd approved my request after less than a minute!

I'm hoping this will be a lot simpler to provision for someone who just wants to develop in Apex outside of their work environment. I found the Free Oracle Service a bit daunting since I don't deal with the database level at all.

Mikael said...

Will the free APEX service shut down after a few days of inactivity as the Autonomous DB does?

Dimitri Gielis said...

Yes I believe the APEX Service might stop after inactivity

Anonymous said...

I see there are 2 locations on Oracle to sign up for a free APEX account -

apex.oracle.com (no credit card necessary)

cloud.oracle.com/apex (always-free account but still needs a credit card)

I see on cloud.oracle, the databases/workspaces are shutdown after 7 days of inactivity and accounts are deleted if not used for 90 days. Any such restrictions on apex.oracle?

Which one is better for “learning” APEX?