Continuous Build of Docker Containers using Docker hub

In the previous article, I mentioned how we can Dockerise a progressive framework based application (Vue).  I have made few improvements to the application where I am now able to perform CRUD operations on the client side using AXIOS, based on API’s available from the server side. I wanted to test these incremental features added to the application and imagine executing those docker commands everytime you make a new component/feature available. This is quite a task. So I was looking at ways to automate the task where every time I commit/push the code to GitHub the build happens automatically so that the latest container is ready for deployment. This is where Docker Hub comes to our rescue.  Here are the steps for the automated build process:

  1. Register for an account on Docker Hub
  2. Link your Github repo with the Docker Hub under Account SettingsCapture12
  3.  Click on “Create Automated Build “and point to the GitHub Repo that has got the Docker File (Refer the previous article on how to create this Docker File). Capture13Capture14Capture15
  4.  Make some changes to your code, do a git commit and Push the change to your GitHub Repo.Capture16
  5.  You can see the automated build in progress as soon as the changes are committed to the repo.  Capture17
  6. And within few minutes you can see the build is served.

Capture18

As mentioned in the previous article you can go to your OCCS (Oracle Container Cloud Service) and pick up the latest build and deploy this latest Docker container available.

In the next article, I will discuss how we can automate the last part as well, where you don’t need to manually build the latest Docker Container available from Docker Hub in OCCS.

Teaching How to use Nginx to frontend your backend services with Trusted CA certificates on HTTPS

Now days with the adoption of Serverless architectures, microservices are becoming a great way to breakdown problem into smaller pieces. One situation that is common to find, is multiple backend services running on technologies like NodeJS, Python, Go, etc. that need to be accessible via HTTPS. It is possible to enable these internal microservices directly with SSL over HTTPS, but a cleaner approach is to use a reverse proxy that front ends these microservices and provides a single HTTPS access channel, allowing a simple internal routing.

In this blog, I am showing how simple it is to create this front end with Nginx and leveraging “Let’s encrypt” to generate trusted certificates attached to it, with strong security policies, so that our website can score an A+ on cryptographic SSL tests conducted by third party organizations.

Continue reading “Teaching How to use Nginx to frontend your backend services with Trusted CA certificates on HTTPS”

Dockerising a Vue.js based SPA, ship and run on Oracle Container Cloud Service

In this post, I am going to show how to build and containerize a Vue.js application and let it run on Container Cloud Service (OCCS) using the following steps:

  • Build a Vue.js Web App
  • Build Docker image based on the above Vue.js SPA
  • Push it on Docker-Hub
  • Create a Service in Oracle Container Cloud Service (OCCS)
  • Deploy Service (the vue.js app)

Continue reading “Dockerising a Vue.js based SPA, ship and run on Oracle Container Cloud Service”

Teaching how to DevOps automate the provisioning of external APIs using Oracle API Platform and Developer Cloud Service

Modern Integrations require touching lots of different APIs coming from multiple “systems”. These “systems” can be big enterprise backend applications, such as: E-Business Suite, SAP, JDE, Siebel, etc. As well as modern SaaS Applications, such as: Service Cloud, ERP Cloud, Salesforce, Netsuite, Workday, etc. These “systems” can also be other smaller or custom applications running either on premise or in the cloud exposing either SOAP or REST services.

Rarely any of these “systems” can provide solid abilities to remotely expose APIs in a way that are tailored for a specific business case. Commonly, to achieve this, we need a separate integration layer that orchestrates APIs from multiple “systems” and easily obtain the desired business outcome, in a way that they are also reusable APIs to be utilise in other business scenarios. Furthermore, in order to properly apply security measures and effectively protect these APIs and safely expose them to external consumers (potentially in the public Internet), normally we need to use an API Gateway (see this blog to learn how).

Also, in previous blogs, John Graves showed us how to automate the creation and deployment of existing “internal Integration APIs” and expose them as secured external APIs using Oracle API Platform. (See ICS to API Platform and Oracle Service Bus to API Platform).

If we take the same automation concept, we can then apply it in a DevOps scenario, where we want to achieve the following:

Continue reading “Teaching how to DevOps automate the provisioning of external APIs using Oracle API Platform and Developer Cloud Service”

Teaching how to use Developer Cloud Service to promote ICS Integrations into new Environments

Why not to have the best of the two worlds? That is, a simple web UI that allows you to easily integrate your SaaS and On-Premise applications, as well as a mature DevOps tooling, that allows you to store your integrations in a corporate version control repository and fully automate your deployments, continuous integration and continuous delivery of your integration projects.

Well, in this blog I am going to show you how simple it is to use Developer Cloud Service to manage your ICS Integrations in a DevOps fashion.

That is:

  1. DevOps person pushes a change in an ICS Integration into the corporate Git repository,
  2. A build task is triggered based on a Git code change being detected. Hudson will automatically trigger a build task,
  3. Hudson will build and package the ICS Integration and archive the result as a release for future deployment,
  4. A deployment task is triggered to deploy the ICS Integration into a configurable target ICS environment.
  5. Optionally, we could run tests and report status, to ensure the new code release is functional as expected.

Continue reading “Teaching how to use Developer Cloud Service to promote ICS Integrations into new Environments”

First experience Using the Oracle Container Cloud Service

In a previous blog on OCCS, I covered the steps required to provision the service. As an input to the OCCS Service provisioning I was prompted to specify the number of worker nodes I required, which for my example I set to be two. Having provisioned the service, I can now start to build and run my Docker images on these worker nodes. As part of the provisioned service, I have a node dedicated to the Container Console which provides a nice web User Interface that allows me to Build, Deploy, Run and Manage Docker Containers on the worker node hosts that I provisioned as part of my service. The two worker nodes are the hosts that I will ultimately deploy and running the image of interest such as WordPress, MySQL, Oracle Database, Tomcat, Nginx, WebLogic Server or whatever you want pretty much. The Container Console makes it very easy to build, run and deploy images via a web administration console.

Continue reading “First experience Using the Oracle Container Cloud Service”

First experience – Provisioning the Oracle Container Cloud Service

In December 2015, Oracle acquired the StackEngine, which provided (Docker) container management software and automation (DevOps) capabilities. According to Wikipedia, https://en.wikipedia.org/wiki/StackEngine – “The StackEngine model-based Docker management software provided an integrated DevOps solution for end-to-end container application delivery and operation, all with an integrated GUI dashboard, service discovery, scheduling, and orchestration functions. StackEngine could be deployed into any on-premise, hybrid, public, or private cloud environments and scaled across thousands of hosts enabling users to start in the lab and scale out to full production.”

In November 2016, Oracle announced the general availability of the Oracle Container Cloud Service (OCCS) which had taken the StackEngine capabilities and transformed them into a Cloud Service.

Continue reading “First experience – Provisioning the Oracle Container Cloud Service”