Development

Strengthen Your Developer Experience and Deployment Velocity with OKE and Shipa Cloud

Cross-Post from the Oracle Blog.

For an application developer, there is certainly a long road between an idea/feature and getting deployed into production with Kubernetes. From a development perspective, having a low barrier of entry and the ability to iterate is key. From a platform engineering/DevOps perspective, creating gains in engineering efficiency all while creating and enforcing policies that do not stifle innovation is key. Shipa is an application layer that makes Kubernetes an afterthought when securing, deploying, and managing applications. Platform engineers can manage Kubernetes capacity, scaling, and security while enabling developers to deploy and manage applications without detailed Kubernetes knowledge. Oracle Kubernetes Engine [OKE] and Shipa together can take Kubernetes clusters from vanilla to application ready in minutes. In this example, we will deploy a new application and detect an existing application with Shipa to show developer visualizations. 

Getting Started With Oracle Kubernetes Engine and Shipa Cloud

The first item to get is a free Shipa Cloud account. Shipa acts as a control plane connecting to other Kubernetes clusters such as OKE. Once signed up for Shipa Cloud, can spin up an OKE Cluster. The below image is a logical diagram of the pieces that will be connected to deliver the experience. 

Oracle Cloud and Shipa

Create an OKE Cluster

To wire the two solutions together, spin up an OKE cluster. Can size the OKE cluster to an average size of your workloads.

Create OKE Cluster

A Nodepool with just one node and two OCPUs and eight GBs of memory is more than enough for an example workload. 

OKE Cluster Size

Once the OKE cluster is spun up, wire the cluster to kubectl with the Access Your Cluster command. 

Access OKE Cluster

Validate with kubectl get nodes and you are now ready to bind the cluster to Shipa Cloud. 

Getting Started with Shipa Cloud

Once signed up to Shipa Cloud, login to the dashboard. There are three pieces of Shipa abstractions that will need to be created to deploy an application. 

Shipa Vanilla Install

The first piece is a Shipa Framework which is a logical grouping of policies that your applications will be subject too e.g the foundation for the abstraction. 

Choose “reasonable defaults”.

To create a Framework, go to Frameworks -> + Add Framework. 

First Shipa Framework

Then click Next. Fill out a few details about the Framework.

Name: oke

Plan: shipa-plan

Team: shipa-team

Create OKE Shipa Framework

Then click Create and your Framework is ready. The next step and second piece is to bind an OKE cluster to Shipa. This can be done by going to Clusters -> + Connect Cluster. 

You will need the public OKE Kubernetes API Endpoint. This is accessible on the Oracle Cloud dashboard for the OKE Cluster that was created. 

OKE Public Endpoint

Back in the Shipa Connect Cluster UI, paste the API Endpoint in as the “Kubernetes control plane”.

Connect OKE Cluster to Shipa

Then click Generate Command and copy and paste the generated kubectl command. 

Shipa Magic Link OKE

Then execute. 

Bind OKE Cluster Shipa

In a few moments, your OKE cluster is now bound to Shipa Cloud.

OKE Cluster Running Shipa

Now you are ready for the third piece, the Application. 

Deploying an Application with Shipa Cloud

A great example to see the power of deployment with Shipa is OCI’s MuShop example. With Shipa it is possible to build from source, but since MuShop has a public repository, we can deploy the storefront and then the API in this example. The first step is to create a Shipa Application representing the storefront. 

Applications -> + Add Application

Name: mushopstorefront

Mushop App

Scroll down to add the Image URL.

Image URL:  docker.io/mushop/mushop-storefront

Mushop Docker Image

Then click Deploy. This process will take a few moments. 

Deploy OCI Mushop

Once deployed, create a new Application named “mushopapi”.

Image URL: docker.io/mushop/mushop-api

Mushop API App

Click Deploy and after a few moments, you will have two Applications. Note: MuShop API was designed to have multiple replicas so the healthcheck might be marked as unhealthy at certain times but will still serve traffic in the example. 

Deploy Mushop API

To get access to the MuShop storefront, head back to the “mushopstorefront” Application and click on the URL. Shipa generated a publicly accessible URL for your service. 

Mushop URL

Clicking the URL will bring you to the MuShop.

Running Mushop

Shipa provides additional details such as metrics and visualizations about your application. 

A Developer Portal for Your Applications

Shipa has the ability to provide an Application Map to visualize the Kubernetes dependencies of your application. To check out the storefront’s, head back to Applications in Shipa and click back on “mushopstorefront” then View Map. 

Clicking on the map will generate the Application Dependencies which can help pinpoint where to make changes or if objects are unhealthy. 

Mushop Application Map

Coming back to the “mushopstorefront”, you also have the ability to look at transactions, which get stored by Shipa into a private instance of Prometheus on your behalf. 

Mushop Statistics

Deploying through Shipa Cloud allows you to deploy to Kubernetes without having detailed Kubernetes knowledge. Shipa can also provide details about running applications that have not been deployed through Shipa also with Shipa Application Discovery. 

Discover Your Workloads with Shipa

Shipa has the ability to discover workloads also running in the cluster.  If you don’t have workload in your OKE cluster, you can simulate workload by installing WordPress via Helm. The below commands will deploy WordPress into the “wordpress” Kubernetes namespace. 

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm upgrade --install 
my-release bitnami/wordpress
--namespace wordpress 
--create-namespace

Bitnami Helm WordPress

Once deployed, head back to Shipa to create a new Framework. 

Frameworks -> + Create Framework

Purpose: Discover existing applications. 

Create discover framework Shipa

Click Next. We will point this to the “wordpress” namespace in the OKE cluster we connected earlier. 

Name: okediscovery

Plan: shipa-plan

Namespace: wordpress

Connect to Cluster: Your OKE Cluster

OKE Discover Framework

Click Next and can add what to discover on. 

Label: app.kubernetes.io/name

Shipa App Discovery

Then click Create. In a few moments, if you head back to Applications, you will see a pair of new Applications that have been discovered for you. 

Listing Shipa Discovered Apps

Clicking into an Application, for example, “wordpress”, you can take a look at the Application Dependency Map also. 

Shipa Discovered App Maps

Take a peek at the insights that Shipa provides is simple with Application Discovery. 

Oracle Cloud and Shipa, Better Together

The ability to spin up elastic infrastructure is a breeze with Oracle Cloud. As workloads start to move towards Kubernetes, Oracle Kubernetes Engine [OKE] is a great spot to create and manage Kubernetes clusters. There are many roads for your workloads to get onto Kubernetes. With Shipa, developers don’t have to worry about lengthy templates e.g Helm Charts and have a deep understanding of the internals of Kubernetes to deploy their applications. Shipa can help drive workloads to your OKE clusters, today.