FlexDeploy 3.1 adds support for the new multi-tenancy features of Weblogic Server 12.2.1. Multi-tenancy is basically virtualizing software, so that it can be deployed with configuration sets for each tenant. In WLS, there are two basic use cases for multi-tenancy. The two are Platform as a Service (PaaS) and Software as a Service (SaaS). There is a great article on the two different ideologies as applies to WLS on the Oracle blog at https://blogs.oracle.com/WebLogicServer/entry/domain_partitions_for_multi_tenancy. Let’s take a look at how FlexDeploy can make it easier for you to manage Weblogic Server 12.2.1.
Whether you are considering PaaS or Saas, FlexDeploy 3.1 can make managing this complex environment easier by delivering the correct versions of the correct applications to the correct partition, resource group, or resource group template. FlexDeploy also keeps an audit trail so that you know who to talk to if there is a problem with a build or deployment.
Here is an explanation of the changes to deployment with the Weblogic Server plugin.
In the 3.0 version of FlexDeploy, the project properties screen had the following options for Weblogic deployment:
These options let you deploy an application to the server or cluster of your choice, and perform either a versioned or non-versioned deployment.
In the 3.1 version, several new options exist. These options allow users to deploy the application to a partition, resource group, or resource group template in addition to the previous options. The properties shown below deploy the helloWorld application to a partition named Partition-0 which has only the default resource group. Note that the FDWLS_SERVER_OR_CLUSTER_NAMES property is listed as required, and it is in 12.1.3 and earlier, but in 12.2.1 if a partition, resource group, or resource group template is specified, the FDWLS_SERVER_OR_CLUSTER_NAMES property must be left blank. See the 3.1 Weblogic plugin project properties below.
You can deploy to a resource group, which might really refer to a client. Or, you can deploy to a resource group template, which would probably be software that would be shared among several clients. Each client would “be” a resource group referring to the template. Or you can deploy to a partition, or directly to a server. There are a lot of options with WLS multitenancy. If the app requires customization between clients, you would want to deploy the app to the template, and then apply overrides on the resource groups. This could be database user and password, or whatever changes are needed. One caveat of multi-tenancy is that at this time, it only supports Java EE applications and standalone application modules.
Another change to the Weblogic plugin is that there is now an environment-instance property, FDWLS_VERSIONS_TO_KEEP, for how many versions to keep if undeploying with versioning. By default the plugin will keep 5 versions if performing a versioned undeploy.
Here is a look at the 12.2.1 Weblogic Console showing the HRADFApp deployed to Partition-0
The multi-tenancy settings I used caused that to be available on the server at a url on the virtual target that I setup. For me that link (which is provided on the testing page) is shown below. The /vt0 is the uri prefix that I chose for VirtualTarget-0, which is what Partition-0 is targeted to. Virtual Target-0 is targeted to my managed server, which is hosting on port 8001.
When a J2EE app is deployed to a resource group template, the Weblogic Deployments screen could have a row like this:
This indicates that the app is installed for all Tier One Clients. They are reaching it from the 2 partitions, on 3 virtual targets. If overrides were being used, each would see different content even though the application was only deployed once. This means that 3 resource groups were attached to the template. One is a global resource group, so its partition isn’t listed.
The three targets each have unique URLs.
Since FlexDeploy will let you deploy to any kind of resource, you can make use of the newest features of WLS 12.2.1! It will make your deploys and server usage even more efficient.