I have been recently working with a charity who had developed a production APEX application and hosted it on apex.oracle.com. While this environment is brilliant for quickly creating a full APEX workspace and accessing from anywhere in the world, it is definitely not supposed to be used to host a production application (the environment can be upgraded to the latest version of APEX and even taken down with no notice so no SLA is given). You also have no direct Database access and have to manage everything through the APEX development tools.
The reason that we were contacted was that the apex.oracle.com environment had been upgraded from 4.2 to 5.0, breaking the customer’s application. We had to fix the application hosted on apex.oracle.com, enhance the application with new features and then migrate the application and data to a new Database Cloud service.
We didn’t want to develop on the live environment, so we built a local Oracle environment to develop on and recreated the Database schema. Migrating the application from apex.oracle.com to our local instance was easy using the in-built APEX import and export utilities, as was migrating the fixed and enhanced application back to apex.oracle.com.
Once the application was fixed, the next piece of work was to move the whole thing to an Oracle Cloud environment. The process for getting this up and running is as easy as visiting the Oracle Cloud Website and picking the plan that suits you. Once this was provisioned, we could migrate our schema, data and application to the Cloud in exactly the same way as we did for the on-premise environment. Nothing has changed to how the Database operates in the Cloud and there are no extra steps – we just run the Database import, use the APEX import wizard and we’re good to go. I’m not afraid to say that when I see Oracle state that it’s the same technology in the Cloud as it is on-premise I was always sceptical, but it really is true in my experience!
We now have three environments with the application installed:
- Oracle Cloud (DBaaS) – Our production environment allowing users all over the world to log in to a single application and access their data.
- On-Premise – Our development and testing environments.
- Apex.oracle.com – where the legacy application is still running. This will be kept online to allow any users who haven’t made the switch to the new environment to still be able to access their information.
We are in a position where we can develop and test new features and push them out to both online environments using exactly the same method (the simple APEX application import wizard). We can also export our cloud applications and easily import them into new on-premise test environments whenever we need to, all without any downtime. We can just as easily go the opposite direction, and migrate any new versions of the application from the on-premise development environment onto the live Cloud environment.
As a developer I didn’t have to learn anything new to migrate to and work in the Cloud, I just changed the URL I was using to access the application builder. The transition is seamless, and with the web based development environment that has been around in APEX for years, I’m more comfortable and confident than ever that “Cloud” is a really valuable platform for developers the world over.
With talk of a free entry-level Oracle Cloud service possibly on the horizon and the ease of migrating APEX applications to the cloud, this could be a huge step towards wider adoption from Oracle developers for building Cloud native applications.
Craig is a Senior Development Consultant at Explorer. Craig has an MSc in Computing Science and is an experienced software engineer, utilising development tools such as PL/SQL and APEX to provide bespoke ERP software to both UK and international businesses. Craig has experience developing solutions to connect Oracle systems to a wide range of existing external applications within business environments.