This blog article is the first of a three part series which describes how FlexDeploy enables the transition from running your Java applications on-premise to running them on the Oracle Java Cloud Service. This article will focus on a popular use case for moving applications to the public cloud: migrating test environments to the cloud to enable agility, reduce cost, and get your feet wet with learning about cloud infrastructure. The second article will describe how to make full use of “Dynamic Capacity” in the Java Cloud Service. I will show how to implement a FlexDeploy workflow which starts the JCS instance prior to deployment, and then shut it down when it is not being utilized to reduce development costs. The third article in the series will focus on how to implement Continuous Integration with FlexDeploy and the Java Cloud Service.
According to a 2014 Cloud Report, 49% of business move to the public cloud with the primary objective of driving cost efficiency, and 70% of those businesses are seeing those results. And many businesses are reporting a cost reduction of 20-30%. As shown is the graphic below there are many other factors pushing businesses to the cloud.
One popular use case attracting customers to the cloud is the enablement of dynamic capacity in development/testing environments. The ability to spin up new environments (and tear them down) on-demand, and with varying resource requirements, is very enticing with today’s demand for IT to innovate and deliver software faster. Spending days or weeks building new environments just doesn’t cut it.
The Oracle Java Cloud Service is a Platform as a Service (PaaS) which provides a fully managed WebLogic (11g or 12c) environment running on Oracle Enterprise Linux. This service is attached to an Oracle Database Cloud service running either Standard or Enterprise Edition (11g or 12c). The platform services also include tooling to manage the underlying infrastructure (e.g. storage volumes, network management), automated backups, and patch management. The Oracle My Services Dashboard provides access to the service consoles, which in turn provides tooling to create and manage the cloud instances. Back in May, I published blog articles describing the steps necessary for Creating an Oracle Database Cloud Service Instance and Creating an Oracle Java Cloud Service Instance. Once the cloud service instances are provisioned how do we deploy applications to them? Since the Java Cloud Service instance uses the same WebLogic Application Server software that is used on-premise, the simple answer is “no differently than you do today”. The remainder of this article will focus on how to update FlexDeploy, which is managing on-premise deployments today, to manage deployments into a newly provisioned Java Cloud Service instance.
There are either 3 or 6 steps involved, depending on whether you are creating a new cloud environment or simply transitioning an existing on-premise environment to the cloud.
- Create a new environment (skip this step if you are re-targeting an existing environment to the cloud)
- Map the new environment to the applicable FlexDeploy instances (again, skip if you are re-targeting an existing environment to the cloud)
- Assoicate WebLogic plugin to the applicable FlexDeploy instances (again, skip if you are re-targeting an existing environment to the cloud)
- Create FlexDeploy endpoint(s) for the VM(s) provisioned within your Java Cloud Service Instance
- Associate the endpoint(s) to the environment instance representing the Java Cloud Service Instance
- Provide values for environment instance properties required by the WebLogic plugin operations associated to the instance
Create a new environment
To create a new environment, simply enter the following information.
Map the new environment to the applicable FlexDeploy instances
Associate required WebLogic plugin operations to the applicable FlexDeploy instances
In our case, the underlying workflow un-deploys and deploys an EAR, and starts and stops the managed server. So we need to associate those operations to the instance.
Create FlexDeploy endpoint(s)
Create a new endpoint for each VM represented in the JCS instance, and set the fields as defined below:
- Endpoint Name – any descriptive name
- OS Type – Unix
- Endpoint Address – IP Address of Java Cloud Service Instance VM
- Port – 22
- User Name – oracle
- Private Key File – Private key matching public key which was uploaded during JCS instance creation. The private key file must reside on the FlexDeploy server.
Once the endpoint has been created, click the Test Connection button to validate the communication between the FlexDeploy server and the endpoint.
Associate the endpoint(s) to the environment instance
Click on the Endpoint link in the cell intersecting the Environment and the Instance associated to the Java Cloud Service Instance.
Locate and shuttle (from left to right) the endpoint(s) associated to the Java Cloud Service Instance. Next, identify which WebLogic server resources are associated to this endpoint. In this example the Admin Server, Managed Server, and Node Manager all reside on the single endpoint.
Provide values for environment instance properties
The WebLogic plugin requires a few properties to be configured on the environment instance. These properties allow the plugin to connect to the WebLogic Server to perform the deployment. Click on the properties link in the cell intersecting the Environment and the Instance associated to the Java Cloud Service Instance.
Enter values for the required WebLogic plugin properties.
The Java Cloud Service Instance is now configured to the DEVCLOUD/ADFHR environment instance, making it an eligible deployment target. Deploying to on-premise and Java Cloud Service targets with FlexDeploy is simplified by the fact that an Agentless Architecture is employed. Any WebLogic server, whether physical, virtualized, or in the cloud, is available as a deployment target. We can now deploy to the DEVCLOUD environment in the same exact manner that we deploy to Production (on-premise).