Wednesday, July 24, 2019

Get Started with Machine & Deep Learning Models & Frameworks Quickly with Oracle GPU Instances

In this post, we will learn how quickly we can set up Oracle Cloud Infrastructure GPU Instances, Get access to NVIDIA GPU Cloud - Container registery and spin up TensorFlow and various other Machine & Deep Learning Frameworks.

Oracle Cloud Infrastructure GPU Instances uses NVIDIA Machine Images. These images have preconfigured NVIDIA GPU CLOUD (NGC) set up. What this means is, we can have access to NGC Container Registry and run any of the Framework Containers & Models availble on NGC  -  https://ngc.nvidia.com/catalog/containers



Lets Get Started.

First we would need to Spin Up GPU Instance in Oracle Cloud Account.

Let us jump straight to OCI Console and Create a GPU Instance. We gave it a name AlphaGPUDemo


Next step is to Select a Shape. For GPU Instances, we will select NVIDIA GPU Cloud Machine Image from Oracle Images. This image is Ubuntu based.



Next Step is to select Shape. Can select any GPU Shape from your options. Here we have selected VM.GPU3.1 here.


Tuesday, April 2, 2019

Set Up & Get Started with MongoDB Atlas Cluster

In this post we will go through the set up of MongoDB Atlas. MongoDB Atlas is fully managed, scalable, reliable and secure Database As A Service from MongoDB.

Below is the link to know more about Atlas.

https://www.mongodb.com/cloud/atlas

In this post we will go through, how easy it is to set up your MongoDB Atlas Instance and start working with MongoDB Database and Collections.

MongoDB Atlas supports latest version of MongoDB 4.x (Currently) and also has back support for 3.6

MongoDB Atlas provisions MongoDB Cluster on underlying infrastructure of cloud vendors. Currently it supports three cloud vendors - AWS, AZURE & GCP. You can leverage all the features of these cloud vendors while deploying MongoDB Atlas.

Ok So lets get started.

MongoDB Atlas lets create free MongoDB Cluster for M0 shape. You can register and get started to create your free Atlas Cluster.

Need to open url https://cloud.mongodb.com




Upon Login you will see below Console where you can access cloud resources like Clusters, Stitch, Charts, Backups.




Now we will go ahead and create a free tier 3 node MongoDB Atlas Cluster.

Click on Build Cluster from above screen.

The next screen will show various options which we need to select in order to create our cluster.

First one is selecting Cloud Provider and Region.



I would suggest to use the Free Tier Available for creating cluster free of charge.

Here we selected N.Virginia from AWS. You can select any region marked as Free Tier Available from any of the three cloud provider based on your requirement, skillset and strategy.

In Next section, we need to select the Cluster Tier.

Here we will select M0 Cluster to be in Free tier. You may select any shape for your environments based on your requirements. Price points are mentioned in the section.

Friday, August 3, 2018

Set up Oracle Cloud Infrastructure DNS to use Domain Name

In this post we will configure Oracle Cloud Infrastructure DNS feature to Map a Domain name. This is a required step to Map the Load Balancer IP Address to a domain name so that users can access your Application/Web Servers inside the cluster with a domain name in the browser.

Below are the pre requisites for setting up Domain Name and Load Balancer Mapping in OCI.

  • Existing Domain Name. If you do not have, you can buy it from any vendor e.g. godaddy,bigrock.. etc. In this post I will use my domain : rohanwalia.com
  • Working Oracle Cloud Infrastructure Set Up - Two Web Instances in different Availability Domain with Load Balancer configured in Front.
  • For this Example, we have Two Web Servers (Backend Servers) - Webserver1 & Webserver2 in two Availability domain's as Backend Set. Load Balancer is configured to spread load to Webserver1 & Webserver2 on Port 80. Listener is configured to listen http traffic on Load Balancer IP address on Port 80.
*** All IP Addresses and Name Server  have been masked for security reasons.

Ok so we are good with the Set up. Let us configure OCI DNS Service to use Domain Name.

First, go to OCI DNS Service home page from OCI Account.



Monday, July 16, 2018

Docker Playground : Simplest way to Test - Deploy & Scale of Containers on Docker Swarm

Dockers & Containers have pretty much entered into every Developer or IT Ops daily life. Docker provides an easy way to create Docker Images of applications using DockerFile and then test these application images by running containers.

Testing applications using containers is quick and easy but the real challenge is when Testing - Deploy & Scale of applications on Cluster. This is the real production level scenerio is.

One way to do these kind of Testing is to set up Docker Swarm Cluster manually on IaaS. You can refer to my earlier post Multi Node Swarm Cluster on Oracle Cloud Infrastructure Classic . The posts describes how to configure Swarm Cluster on OCI-C. Same can be used for different Cloud Service Providers. The other option is to Use managed Container Cluster Services provided by Cloud Service Providers.

The problem with above two approaches is that they will charge you not much but some $$. The above methods are good option if you want persistent Cluster to be there for testing your workloads.

But if you just want to test your container services on cluster's as well as test scaling of these services, there is a simple way out.

Thanks to Docker Play Ground : Play With Docker


Thursday, March 29, 2018

Webhooks for Github & Jenkins Integration - CI/CD Pipeline

In this post we will look at how we can use Webhooks feature of GitHub to Integrate Github with Jenkins.

Webhooks is a really a cool feature which helps to Integrate GitHub with Jenkins on the Push Events in Github.

There is a feature in Jenkins to Poll SCM for every configured number of Minutes/hours for change in the code. This way Jenkins is polling on SCM. Better/Preferred way is to use Webhooks for this integration where Whenever there is a Push in Github, a Payload is sent to Jenkins with Push/Commit details and New Pipeline is Initiated.

Pre Requsites
  1. Jenkins Server Installed on any IaaS or Local VM.
  2. Github Login Credentials
  3. Code Repository in GitHub with Sample Code. I have forked a code in my repo and added JenkinsFile which you can use as it is MyGitHubRepo.  Or You can also fork from Original Repo

Architecture Diagram



Lets Get Started

Configuring Jenkins

First Step in Configuring Jenkins is to Install GitHub Integration Plugin. Log into Jenkins Server and Click Manage Jenkins. Click Manage Plugins.

Click on Available Tab and Filter with Github.



Click Download Now & Install after Restart.

Create & Configure New Pipeline

Click Create New Item and Click Pipeline. Give a name to the new pipeline & Click OK.




Thursday, March 15, 2018

Multi Node Swarm Cluster on Oracle Cloud Infrastructure Classic

In this post we will see how we can build Multi Node Docker Swarm Cluster on Oracle Cloud Infrastructure Classic.

To Start, we will create Three Nodes in the Swarm Cluster with One Nodes as Manager and other two nodes as Worker Nodes. Any Number of nodes can be added in the same fashion to scale the cluster.


Architecture Diagram




Pre Requisites 
  • Oracle Infrastructure Cloud Account :  If you do not have account, you can sign up for Free Trial account at : https://cloud.oracle.com/en_US/tryit
  • Basic Knowledge of Dockers & Containers
  • Basics of Swarm Clusters

Thursday, October 13, 2016

Create Windows Instances on Oracle Infrastructure as a Service - Step By Step

In this post we will see how we can create Windows Instances on Oracle IaaS (Infrastructure as a Service) with desired Image (Windows Version) , Compute , Memory , Disk as well as enabling Remote Desktop service. At last we will enable RDP Connections to the instance and will try to connect.

Lets Get started.

Login to the cloud portal using Identity domain, Username & Password Information. Go to Compute service console. Click Instances and click create instance.



Click on MarketPlace to search for Windows Image.



Monday, June 13, 2016

Create Oracle Cloud Database Connection in Jdeveloper 12.2.1

While doing development on J2EE and ADF very often it is needed to create Oracle Database Connection from Jdeveloper. Jdeveloper provides a wonderful easy window to create and manage multiple Database Connections.

Since the environments have started to move to Cloud much often it is required to create Database Connection for the Oracle Database which is hosted on Oracle Database Cloud Service (DBCS).

There was no way to create SSH Tunnel in Jdeveloper and one has to tunnel the traffic using Putty or SSH command and then use the localhost in jdeveloper database connection window to create successful connection to Database on Cloud.

Jdeveloper 12.2.1 solved this problem by providing a very nice SSH Tunnel window in Database Connections Set up. This SSH Tunnel Configuration can be used to do configure the tunnel and use SSH Public key and user to create the connection.

Below is the process for creating a successful Database Cloud Instance connection from Jdeveloper 12.2.1

On clicking + sign for adding new connection, below window pops up.


Sunday, April 10, 2016

OTNYathra - 2016 - AIOUG

OTNYathra event is back this year in 2016 and once again AIOUG (All India Oracle User Group) is privileged to organised this event in various parts of the Country.

OTNYathra is very typical form of series of conferences which starts from North India and covers throughout India in couple of weeks.

This year again we have very experienced speakers and we expect to have loads and loads of information on new oracle offerings and oracle's roadmaps.

The regional chapters of AIOUG will have responsibilities for organizing the event in their respective cities.

North part of OTNYathra will be managed by NIAIOUG(North India chapter of AIOUG). The event will be held on 1st of May in Noida.


Monday, April 4, 2016

Alert in Oracle Public Cloud - Notifications on Quota

There are new updates in Oracle Public Cloud portal. Now there are new Alerts which lets one set notifications for the quota usage. These notifications are both for Metered as well as Subscription based Non Metered PaaS services.

Below are the steps to set Alerts and notifications in Cloud Public Portal for PaaS Services.

Step 1 : On the Dashboard, Click on Estimated Balance of the services for which you want to set new alert.





Step 2 : Check the Amount for Database Public Cloud Service. This is total available credits. Suppose this is X amount. We will set an alert on 80% of X.

Thursday, March 3, 2016

Oracle Public Cloud - Test Throughput from Customer Place to Data Center

Most common question in mind while going to cloud is to get statistics for latency and throughput from customer location to the Data Centers based in different geography’s e.g. (US – Chicago and Ashburn ).


Below is the way to get the numbers of throughput and latency from tooling provided by OPC Interface.


Step 1 : Click on the user name and select Diagnostics.



Monday, November 23, 2015

AIOUG Sangam 15 - My Experience

This time once again I attended Sangam15 - Largest Oracle User Group Conference in India which is organized every year. This time it was in Hitec City in Hyderabad at Hyderabad International Convention Center on 21-22 Nov 2015.

It was very nice to see and meet old friends as well as meet new professionals. The event was very well managed by @AIOUG Team and volunteers from different regional chapters of AIOUG. The venue was perfect with large halls and rooms and logistics/facilities very nicely handled by the convention center staff.

I flew in to Hyderabad from Singapore a night before rather 21st morning 2.30am. So I was unable to had a complete sleep which made me unwell and I went late on the venue. Nevertheless I was all set for my session on Oracle Mobile Application Framework.

Friday, November 13, 2015

Connecting Oracle PDB on Cloud using SQL Developer

In this post we will see how we can connect to Pluggable Database which is hosted on Oracle PaaS Cloud : Database as a Service.

As we know Pluggable databases is a new features in Oracle 12c Database so we will be using Oracle 12c Database on Oracle Database Cloud.

Pre Requisites :


  • Oracle Public Cloud environment Access.
  • Oracle Database as a Service subscription.
  • Oracle 12c Database Instance created on OPC.
  • Combination of Public key(required to create 12 instance in above step) and private key to access 12c DB instance using client - Putty and SQL Developer.
  • Passcode of keys.
  • Putty
  • SQL Developer.

Once we have all the information available we are all set to make a connection to PDB on cloud from local SQL Developer.


To connect to PDB, first we need to have a user created if not created already which has access to PDB.

For this connect to DCS cloud environment using putty. 

Enter the public IP in the putty.


Wednesday, October 14, 2015

Oracle Public Cloud : Create Public/Private keys for secure access

For accessing Oracle Cloud Services securely and for authorized access, combination of Public and Private Keys are required. So before the process of creating a new Database Instance public and private keys should be generated. Below is the process for generating public/private key.

Tools Required: PuttyGen.


Follow below steps to use PuttyGen to generate keys.

Open Putty Key Generator.


Accept the defaults with SSH-2 RSA and 2048. Click on Generate.





Now next step is important one. One needs to move mouse in the empty area freely till time the message “Please generate some randomness by moving the mouse over blank area” is flashing on the bar.

Sunday, August 30, 2015

Create Oracle Database Cloud connection in SQL Developer

One of the most basic things to start working on Database Cloud Service offered by Oracle (PAAS) is to create a connection to Database Cloud service from local SQL Developer and browse through the schema and database objects.

The most important and foremost step for using cloud service is to have all the information of the cloud service instance.

Once you logon to the service dashboard by logging into cloud.oracle.com you can see all the services allocated to your account in the dashboard.


Monday, June 15, 2015

Unable to install Jdev - Couldn't rename temporary file - Copy

Recently I encountered a very strange problem while installing Jdeveloper 12.1.3 on new laptop. While installing using windows installer (64-bit) , at the copy operation it throws below exception.


[2014-06-30T22:32:11.916-04:00] [sysman] [NOTIFICATION] [] [oracle.sysman.oii.oiio.oiiol.OiiolTextLogger] [host: Chandra] [nwaddr: 192.168.1.79] [tid: 46] [userId: Chandra] [ecid: 0000KRjkrdsFc5WFLzYROA1JgXn^000006,0] java.io.IOException: java.io.IOException: com.oracle.cie.common.util.crlf.CRLFException: Failed to transform D:\Oracle\Middleware\Oracle_Home\oui\bin\viewInventory.cmd to D:\Oracle\Middleware\Oracle_Home\oui\bin\viewInventory.cmd. Couldn't rename temporary file: D:\Oracle\Middleware\Oracle_Home\oui\bin\fixcrlf535545165763140000
[2014-06-30T22:32:11.917-04:00] [sysman] [NOTIFICATION] [] [oracle.sysman.oii.oiic.OiicAPIInstaller] [host: Chandra] [nwaddr: 192.168.1.79] [tid: 39] [userId: Chandra] [ecid: 0000KRjkotUFc5WFLzYROA1JgXn^000004,0] oracle.sysman.oii.oiif.oiifb.OiifbEndIterateException: java.io.IOException: java.io.IOException: com.oracle.cie.common.util.crlf.CRLFException: Failed to transform D:\Oracle\Middleware\Oracle_Home\oui\bin\viewInventory.cmd to D:\Oracle\Middleware\Oracle_Home\oui\bin\viewInventory.cmd. Couldn't rename temporary file: D:\Oracle\Middleware\Oracle_Home\oui\bin\fixcrlf535545165763140000


There are some posts on OTN which tells about providing the correct (Full permisions) to the jdev installer exe file.

But the actual problem was due to Anti Virus. On disabling the antivirus, the Installation is smooth. So if anyone encounters the above exception , try disabling the antivirus and perform the installation.

Thanks

Saturday, May 9, 2015

Change Default JSESSION ID Name for ADF Application

By Default, every ADF Application writes a JSESSIONID Cookie which maintains the session across the ADF application.

The name JSESSIONID is default and can be seen in browser cookies.

Use Case : There might be scenario where this default name required to be changed. One example can be that there is a requirement for running two applications , one ADF Application and other might be existing application. The existing application already use JSESSIONID as cookie name for session management. In that case there will be a conflict between the two applications. In order to solve this we need to give different name of SessionId for ADF Application.

Created a simple ADF application



Wednesday, April 29, 2015

Consuming websevice in ADF with change in WSDL URLs between different Environments.

In projects where Web Services are consumed, most of the problems come when webservcies are deployed on different environments and url of Service/WSDL gets changed. In consuming application proxys are generated using on environment Service/WSDL and when application moves to another environments, the poxys need to consume the services deployed on that particular environment.

To achieve this requirement, there needs to be some mechanism or way where we can configure the environment Service URL in the consuming application and deploy the same to use the correct environment service.


Created a Simple Web Service and deployed it on both Local Integrated Server and Stand Alone server.



Tuesday, April 21, 2015

ADF Logging in Different Applications Deployed on Managed Server

There are many detailed useful blogs on ADF Logging which provide full details on understanding the details and how to implement and configure it.

This post is for my future reference as how to enable/configure ADF Logging for multiple applications deployed on Weblogic Managed Server.

Use Case : Enable ADF Logging for multiple applications deployed on Weblogic Managed Server.

Lets Get Started.

Important thing to understand here is that for ADF Logging to be implemented correctly Package Structure for the application plays a very important role. So as a common/best practice , package structures should be defined correctly for all the Managed Beans/Java Classes in the application. Also packages structures should be able to differentiate the ManagedBeans/Java Classes in different applications.

Ideally a unique root package name for the application should be given at project creation time in Jdeveloper.

Sunday, April 12, 2015

ADF BC Web Service - Return List of Complex Types

ADF Business Components can be exposed as SOAP Services. Application Module provides Service Interfaces as a way to define operations for the services to be exposed. Custom methods written in AMImpl class can also be exposed as operation of web services.

But one of the limitation is that there is restriction on return types from the services exposed as service interface from Application Module.

In this post we will see how easily we can develop a web service using ADF BC Service Interface and can tweak/use one of the given returnType List<ViewRowImpl>  to return list of complex type object.

Use case here is to create an operation in ApplicationModuleImpl class to return List of Object consiting of three variables -  DepartmentName,ManagerId,IsManagerFlag and expose the operation as ADF BC Service Interface SOAP Service. (Jdeveloper 11.1.1.7)


So Lets get started

Created a simple ADF Web Application using HR Schema and created DepartmentsEO , VO and AM and there respective Java Classes.

Create a Programmatic VO - WSResultPVO which will be returned from the operation of the WebService.