Deploy Oracle WebLogic Server in a Kubernetes Cluster

You can deploy SOA in Kubernetes clusters on-premises and in Oracle Cloud. Running Oracle SOA on Kubernetes offers a balance between automation, portability, and the ability to customize multiple domains. The WebLogic Kubernetes Operator is an open source tool that simplifies the process of creating and managing multiple SOA domains in a Kubernetes cluster.

Architecture

This reference architecture shows an Oracle SOA domain and an optional Oracle Service Bus (OSB) domain deployed in a Kubernetes cluster provisioned in Oracle Cloud by using Oracle Cloud Infrastructure Container Engine for Kubernetes. This service makes it easy to create a Kubernetes cluster and provide the required services, such as a load balancer, block storage, and networking.

The following diagram illustrates this reference architecture.

Description of soa-oke.png follows
Description of the illustration soa-oke.png

The architecture has the following components:

  • Region

    An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, called availability domains. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).

  • Availability domains

    Availability domains are standalone, independent data centers within a region. The physical resources in each availability domain are isolated from the resources in the other availability domains, which provides fault tolerance. Availability domains don’t share infrastructure such as power or cooling, or the internal availability domain network. So, a failure at one availability domain is unlikely to affect the other availability domains in the region.

  • Fault domains

    A fault domain is a grouping of hardware and infrastructure within an availability domain. Each availability domain has three fault domains with independent power and hardware. When you distribute resources across multiple fault domains, your applications can tolerate physical server failure, system maintenance, and power failures inside a fault domain.

  • Virtual cloud network (VCN) and subnets

    A VCN is a customizable, software-defined network that you set up in an Oracle Cloud Infrastructure region. Like traditional data center networks, VCNs give you complete control over your network environment. A VCN can have multiple non-overlapping CIDR blocks that you can change after you create the VCN. You can segment a VCN into subnets, which can be scoped to a region or to an availability domain. Each subnet consists of a contiguous range of addresses that don't overlap with the other subnets in the VCN. You can change the size of a subnet after creation. A subnet can be public or private.

  • Load Balancer

    The Oracle Cloud Infrastructure Load Balancing service provides automated traffic distribution from one entry point to multiple servers reachable from the VCN.

  • File Storage

    The Oracle Cloud Infrastructure File Storage service provides a durable, scalable, secure, enterprise-grade network file system. You can connect to a File Storage service file system from any bare metal, virtual machine, or container instance in a VCN. You can also access a file system from outside the VCN by using Oracle Cloud Infrastructure FastConnect and IPSec VPN. The File Storage Service is used to create a Persistent Volume to store the SOA domain artifacts.

  • Container Engine for Kubernetes

    Oracle Cloud Infrastructure Container Engine for Kubernetes is a fully managed, scalable, and highly available service that you can use to deploy your containerized applications to the cloud. You specify the compute resources that your applications require, and Container Engine for Kubernetes provisions them on Oracle Cloud Infrastructure in an existing tenancy. Container Engine for Kubernetes uses Kubernetes to automate the deployment, scaling, and management of containerized applications across clusters of hosts.

  • SOA domain

    A SOA domain is a group of related applications and resources, and the configuration information necessary to run them. A domain includes one or more SOA instances, which can be clustered, nonclustered, or a combination of clustered and nonclustered. A domain can include multiple clusters.

  • SOA and (optional) Oracle Service Bus clusters

    A cluster is part of a particular SOA domain. A cluster consists of multiple SOA instances running simultaneously and working together to provide increased scalability and reliability.

    A SOA cluster is different from a Kubernetes cluster. A SOA cluster appears to clients to be a single SOA instance. The server instances that constitute a cluster can run on the same machine or be on different machines. Each server instance in a cluster must run the same version of Oracle WebLogic Server.

  • WebLogic Kubernetes operator

    A Kubernetes operator is software that manages complex applications. The WebLogic Kubernetes Operator is designed to perform a similar role as a human operator in a traditional data center deployment. Its tasks include starting and stopping environments, initiating backups, performing scaling operations, performing manual tasks associated with disaster recovery and high availability needs, and coordinating actions with other operators in other data centers.

Recommendations

Your requirements might differ from the architecture described here. Use the following recommendations as a starting point.

  • VCN

    When you create a VCN, determine the number of CIDR blocks required and the size of each block based on the number of resources that you plan to attach to subnets in the VCN. Use CIDR blocks that are within the standard private IP address space.

    Select CIDR blocks that don't overlap with any other network (in Oracle Cloud Infrastructure, your on-premises data center, or another cloud provider) to which you intend to set up private connections.

    After you create a VCN, you can change, add, and remove its CIDR blocks.

    When you design the subnets, consider your traffic flow and security requirements. Attach all the resources within a specific tier or role to the same subnet, which can serve as a security boundary.

    Use regional subnets.

    This architecture uses a public subnet for the load balancers and a private subnet to host Container Engine for Kubernetes nodes.

  • Container Engine for Kubernetes

    Although the operator supports any generic Kubernetes cluster, this architecture uses Container Engine for Kubernetes clusters. These clusters have five worker nodes spread across different physical hosts. The cluster shown has worker nodes spread across different physical hosts. You can create up to 1000 nodes in a cluster. The worker nodes are deployed on VM.Standard2.1 Oracle Linux hosts.

  • Load balancer

    By default, the Oracle WebLogic Server servers (admin and managed servers) created by the operator are not exposed outside the Container Engine for Kubernetes cluster. To expose the application to the outside world, this architecture uses a public load balancer on the Load Balancing service. A public load balancer has a public IP address accessible from the internet. This architecture uses a load balancer with 100 Mbps for handling the traffic. If you need to handle more ingress traffic, you can choose higher bandwidth, up to 8000 Mbps.

  • File Storage

    To comply with best practices for running Oracle WebLogic Server domains, the domain configuration files in this architecture are stored in shared File Storage that’s accessible from all WebLogic servers in the cluster. This setup offers the following advantages:

    • You don't need to rebuild Docker images for changes in the domain configuration.
    • Backups are faster and centralized.
    • Logs are stored by default on persistent storage.

Considerations

  • Scalability

    You can scale out your application by updating the number of worker nodes in the Kubernetes cluster, depending on the load. Similarly, you can scale in by reducing the number of worker nodes in the cluster. On the Kubernetes cluster, when you create a service, you can create a load balancer to distribute service traffic among the nodes assigned to that service. You can create your persistent volume by using Terraform or the Oracle Web Console, and then reference it from the operator scripts. You can scale the SOA domain and clusters by adjusting the number of managed servers assigned to the cluster, independently of the number of OKE cluster nodes.

  • Application availability

    The Kubernetes cluster has three worker nodes for managed servers that are spread across different physical infrastructure, so that the Oracle WebLogic Server clusters themselves have the highest availability.

  • Security

    Use policies to control who can your Oracle Cloud Infrastructure resources and the operations that they can perform.

    Container Engine for Kubernetes is integrated with Oracle Cloud Infrastructure Identity and Access Management (IAM). IAM provides easy authentication with native Oracle Cloud Infrastructure identity functionality.

Explore More

To learn more about deploying SOA on Kubernetes, review these additional resources: