Migrate Oracle-based applications to Google Cloud and simplify operations
Darren Evans
EMEA Practice Solutions Lead, Application Platform
Last year, Google Cloud and Oracle forged a strategic partnership to accelerate cloud transformation for businesses, allowing them to integrate Oracle's robust database capabilities within Google Cloud's environment.
This partnership applies to Oracle databases, as well as the applications that run alongside them. That means migrating existing Oracle database applications to Google Cloud, where customers enjoy the benefits of our performance, stability and security. Oracle also offers a variety of enterprise and middleware applications that aren’t databases per se that you may want to migrate. And of course, you can build and deploy new cloud-native applications using Oracle databases and services on Google Cloud's services and infrastructure.
This blog post explores migrating Oracle applications and databases to Google Cloud. It details various migration paths, from fully managed services to customized options, with an emphasis on how containerization and GraalVM can help optimize performance and scalability.
Oracle databases in Google Cloud
Google Cloud offers several migration paths for your Oracle workloads, from fully managed to highly customized, offering flexibility depending on your needs.
High performance:
-
Exadata Cloud Service in Google Cloud: Run Oracle's high-performance hardware, Exadata, directly within Google's data centers. This is ideal for demanding workloads that need the maximum available speed and power.
Fully managed:
-
Autonomous Database on Google Cloud: Google Cloud handles everything, making it super easy to run Oracle. It automates all the essential management tasks — provisioning, patching, scaling, backup, and recovery — so you can focus on what matters most to your business.
As highly managed offerings, both of the above migration paths require very few (if any) changes to your Oracle Database instances, and the physical migration itself can be performed by our support team.
Flexible options:
When you choose one of these flexible options, however, there are several things to think about to get the best possible performance from your new cloud-based environment.
-
Compute Engine: Run Oracle on virtual machines, giving you control and flexibility. This is good for "lift and shift" migrations of existing systems.
-
Google Kubernetes Engine (GKE): Using OraOperator, Oracle’s Database Operator for Kubernetes, you can deploy Oracle pluggable databases; you can read more about the use cases for this below.
Containerize Oracle-based applications
This partnership is designed to provide businesses with the flexibility they need to deploy and manage Oracle applications on Google Cloud, accelerating migration, modernization and innovation. A key part of that is support for containerization, which gives development teams high levels of agility and scalability. Whether your Oracle-based application is built with Java, Python, .NET, or runs on WebLogic, containers provide a consistent and isolated environment, abstracting away the underlying complexities of programming languages and frameworks.
Google Cloud offers a wide range of container-based runtimes for you to choose from.
Google Kubernetes Engine (GKE) is a powerful and versatile container orchestration platform that simplifies the deployment and management of diverse workloads on Google Cloud. Designed for businesses running complex setups and microservices architectures, GKE leverages Google's global network and high-performance VMs to provide an optimized infrastructure for running containers smoothly and reliably. It automatically adjusts resources to meet real-time demand, optimizing both cost and performance through autoscaling and node auto-provisioning. Moreover, GKE's broad support for container runtimes and advanced networking capabilities helps it efficiently handle everything from basic web applications to demanding machine learning workloads, written in any language.
Then there’s Cloud Run, a fully managed serverless platform for deploying containerized applications. Designed for applications that need to scale automatically based on demand, you simply provide your code or container image and Cloud Run takes care of the rest. It automatically scales resources up or down in response to traffic, meaning you only pay when your application is actively processing requests. By eliminating server management tasks like provisioning and scaling, Cloud Run frees you to concentrate on building and deploying applications, making it a good fit for microservices, APIs, web apps, and event-driven functions. Further, Cloud Run's automatic base image updates helps your containers benefit from the latest security patches and operating system upgrades, minimizing vulnerabilities and significantly reducing maintenance overhead.
Best of all, containerizing your Oracle based applications with open standards means you don't have to choose your path upfront. Don't want to manage Kubernetes? Start with Cloud Run! Need more flexibility later on? Easily move to GKE. Because both services leverage standard OCI containers and are supported by CNCF, you have full interoperability and freedom of deployment choice for your containerized apps, now and in the future.
Running a containerized Oracle Database
Running your Oracle workload on Exadata within Google Cloud is the gold standard; however if that is not possible then you may want to explore running Oracle on GKE:
-
Running Oracle Database on GKE is suitable for non-RAC and non-Exadata workloads, or when Exadata is not supported in a given region.
-
This is a good solution for businesses that use a DBaaS strategy and have many Oracle Databases that can be lifecycled (deployed, updated, removed) using OraOperator.
-
Designed for integration within modern DevOps workflows and continuous deployment strategies, this approach is useful if you need to spin up or tear down databases quickly.
In this context, the afore-mentioned OraOperator provides multi-tenancy support. This is a valuable feature for running Oracle databases on GKE, allowing multiple isolated databases to run on the same GKE cluster, helping to improve resource utilization and reduce costs.
Turbocharging your Java applications
Many Oracle applications are written in Java. Oracle GraalVM creates native Java applications. This tool uses Ahead-of-Time (AOT) compilation, converting Java bytecode directly into native executables. By removing the reliance on a Java Virtual Machine (JVM) during execution, these applications start much faster and consume less resources (CPU and memory). GraalVM essentially allows Java to behave like languages such as C or C++, producing standalone executables that are perfect for resource-constrained environments like microservices and serverless functions in cloud-native deployments.
If you want to run your Oracle app on GKE, we highly recommend using a Java native image, which allows for highly optimized resource utilization compared with running a Java application from within a VM. That’s because native images have a smaller footprint, allowing you to run more pods per worker node, maximizing your GKE cluster resources and potentially reducing costs. Reduced pod startup latency also contributes to faster rollout and recovery times for deployments, improving the agility of your application.
And finally, using a Java native image enhances the security posture of your containers within the GKE cluster through the use of features such as:
-
image signing and verification with binary authorization
-
advanced vulnerability insights, which provides scanning and vulnerability detection in Java, Go, Javascript, and Python language packages of your running containers
-
vulnerability scanning built into Artifact Registry, using a sandboxed environment to provide a secure and isolated environment for your Java native images
-
minimal base images that only include necessary dependencies in your Java native image, reducing the potential attack surface and minimizing the risk of vulnerabilities
Meanwhile, running your Java native application on Cloud Run provides near-instantaneous startup times, minimizing latency for initial requests and improving overall responsiveness. The Cloud Run startup CPU boost feature provides additional CPU during instance startup time and for 10 seconds after the instance has started.
In addition, Cloud Run is well-suited for event-driven applications, where functions are triggered by events. This is a common use case for native Java images, which, with their lack of a Java Runtime Environment, can respond to events quickly.
Finally, many organizations want to transition to Java 21. This adoption is largely motivated by the advantages of its LTS (long term support) designation which guarantees ongoing updates, security patches, increased runtime performance, new features and technical support for an extended period. Migrating older Oracle applications to GKE or Cloud Run is a good opportunity to modernize them to Java 21 at the same time.
Support from our partners
Moving your Oracle databases and applications to Google Cloud is a big task but you don't have to go it alone. Google Cloud has partnered with experienced Oracle experts to help make your migration smooth and successful. These partners bring deep knowledge of Oracle technologies and proven methodologies to guide you through the process. Reach out to our ecosystem of partners who are available to help accelerate the success of your Oracle workloads on Google Cloud.