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.
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 node 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.
Choose “reasonable defaults”.
To create a Framework, go to Frameworks -> + Add Framework.
Then click Next. Fill out a few details about the 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.
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.
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
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.
Connect to Cluster: Your OKE Cluster
Click Next and can add what to discover on.
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 Application, for example, “wordpress”, you can take a look at the Application Dependency Map also.
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.