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

April 18, 2022 | 11 minute read
Robert Ronan
Principal Product Manager
Text Size 100%:

This is a guest blog written by the Shipa team.

 

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. OKE (Oracle Kubernetes Engine) 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. 

 

 

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.

 

 

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

 

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


 

 

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. 

 

 

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. 

 

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

Choose “resonable defaults”.

 

 

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

Name: oke

Plan: shipa-plan

Team: shipa-team

 

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. 

 

 

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

 

 

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

 

 

Then execute. 

 

 

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

 

 

 

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

 

 

Scroll down to add the Image URL.

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

 

 

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

 

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

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

 

 

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. 

 

 

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. 

 

Clicking the URL will bring you to the 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. 

 

 

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. 

 

 

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

 

 

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

 

Frameworks -> + Create Framework

Purpose: Discover existing applications. 

 

 

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

Click Next and can add what to discover on. 

Label: app.kubernetes.io/name


 

 

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. 

 

 

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

 

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

 

Conclusion

The ability to spin up elastic infrastructure is a breeze with Oracle Cloud. As workloads start to move towards Kubernetes, OKE (Oracle Kubernetes Engine) 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 deep understanding of the internals of Kubernetes to deploy their applications. Shipa can help drive workloads to your OKE clusters, today.

Shipa is a member of Oracle for Startupsthe launchpad to integrate and scale with Oracle technology, expertise, and global reach. The program offers 70% off cloud, technical assistance and mentoring to startups and scaleups.”

Here are some of the handy links you can leverage to explore the Shipa and Oracle partnership activities further:


 

Robert Ronan

Principal Product Manager


Previous Post

Sock Shop - A Microservices Demo - in Verrazzano with OCI

Rafael Benevides | 11 min read

Next Post


Multiclustering between OCI and Azure with Verrazzano

Rafael Benevides | 10 min read