What is cloud-native app? How to deploy app using cloud-native platform like Napptive?
Introduction
Napptive hackathon I, learn a lot of things. Here I will share my learning through the entire hackathon and how to add an app to the catalog and how to deploy an app cloud-native platform napptive.
What is the cloud-native app?
A cloud-Native application is an application that is designed specifically to run in a cloud computing environment, taking full advantage of the benefits of cloud computing, such as scalability, availability, and resilience.
Nappitive is a cloud-native application platform. It provides an integrated solution for users to deploy applications in modern infrastructures easily.
Open Application Model (OAM)
Open Application Model (OAM) is a set of standard yet higher-level abstractions for modeling cloud-native applications on top of today's hybrid and multi-cloud environments. Focused on application rather than container or orchestrator, Open Application Model brings modular, extensible, and portable design for defining application deployment with higher level API.
Napptive offers a managed cloud-native application platform centered on Kubernetes and OAM. So here we are going to build and deploy an app using the Napptive platform.
Napptive Playground
Napptive provides a GUI for building and deploying applications. To get access to the GUI go to playground.napptive.dev and sign in to the playground. Here is the playground after login.
Already uploaded apps you can see under the catalogs.
Let's see how to upload the app to the catalog
First, you need to click on the upload app button. Fill in the app name and tag then you need to upload the 3 files Application files, Application metadata and Application readme.
As an example let's see how to add a simple apache2 application to napptive cluster.
- Application File
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: apache2
spec:
components:
- name: apache2
type: webservice
properties:
# docker image for apache2
image: ubuntu/apache2:latest
cpu: "0.1"
memory: 128Mi
# port for apache2
ports:
- port: 80
expose: true
# To expose your application to Internet,
# use napptive-ingress trait
traits:
- type: napptive-ingress
properties:
name: apache2
port: 80
path: /
- Application metadata
apiVersion: core.napptive.com/v1alpha1
kind: ApplicationMetadata
name: "apache2"
version: 2.4.0
description: "This application is for deploying an apache2 instance"
keywords:
- "apache2"
- "Server"
- "ubuntu"
- "Apache"
- "storage"
# Provide license
license: "Apache License Version 2.0"
url: "https://hub.docker.com/r/ubuntu/apache2"
doc: "https://httpd.apache.org/"
# Logo image to show as thumbnail on catalog
logo:
- src: "https://www.apache.org/images/SupportApache-small.png"
type: "image/png"
size: "120x120"
- Readme
# Apache2
The Apache HTTP Server Project's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet.
## Reference
https://httpd.apache.org/
After uploading those three files your app is listed on the catalog.
Deploy and run application
Select the app you want to deploy and click on the "deploy" button and confirm it. Now you can see the application is running on the napptive cluster.
Here you can see the application is in running mode. It provides some other information like properties and endpoints. You can use the endpoint to view deployed applications. Here is the apache2 on napptive.
Demo
Repository
https://github.com/senali-d/apache2-oam
Why Napptive Platform?
Deploy and manage applications in seconds without worrying about the underlying infrastructure
Simplifies the process of deploying and maintaining applications in Kubernetes
Test common applications using the OAM specification.
Easily understand how the application and its cluster dependencies are deployed.
Offers a multi-tenant, secure SaaS platform that eases the adoption of cloud-native applications.
Learnings
This is the first time I'm working with a cloud-native application. It's a great experience. I think my learnings will help others who would like to work with napptive.
Further Reference
Thank You!