What is cloud-native app? How to deploy app using cloud-native platform like Napptive?

What is cloud-native app? How to deploy app using cloud-native platform like Napptive?

·

3 min read

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.

  1. 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: /
  1. 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"
  1. 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

https://youtu.be/quRkLIEstQ0

Repository

https://github.com/senali-d/apache2-oam

Why Napptive Platform?

  1. Deploy and manage applications in seconds without worrying about the underlying infrastructure

  2. Simplifies the process of deploying and maintaining applications in Kubernetes

  3. Test common applications using the OAM specification.

  4. Easily understand how the application and its cluster dependencies are deployed.

  5. 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!