Micro Learning (ENT CLI): Quickstart Environment Deep Dive

This micro learning is a continuation of installing the quickstart environment with ENT CLI. In this lesson, we’ll take a deeper look at what gets installed.

Ed Shin - martedì 29 giugno 2021
Tags: Engineering

This micro learning series will help you get familiar with Entando CLI (ENT) which simplifies building and deploying applications for Kubernetes.

Micro Learning Series: ENT CLI

  1. Enhancing Developer Productivity
  2. Quickstart Environment
    • Deep Dive → This lesson
  3. Packaging and Deployment
  4. Working with Multiple Environments
  5. Micro Frontend & Microservice Generation
  6. Component Repository
  7. Utilities & Diagnostics

What You’ll Learn

This is a continuation of installing the quickstart environment with ENT CLI. In this lesson, we’ll take a deeper look at what gets installed. It covers:

  • ent quickstart args & options
  • Entando Helm Deployment
  • Entando Docker Images
  • Entando Custom Resource Definitions
  • Entando Persistent Volumes

Quickstart Command

Previously, we passed in a number of arguments and options in the quickstart command. Let’s take a brief look at each one.


ent quickstart "entando" "quickstart" --simple --release="v6.3.2" --debug=1 --with-vm --yes

These are the important items to note. The Kubernetes namespace, the name of your application, --simple, --release, and --with-vm.

"entando" (Argument #1) The Kubernetes namespace where we’ll install Entando.
"quickstart" (Argument #2) The name of your Entando application.
--simple

Performs a standard install.

Alternative installation options include:

  1. Specify the IP address of your Kubernetes cluster
  2. Specify the fully qualified domain name of your Kubernetes cluster
  3. Generate a fully qualified domain name, and store it in the hosts file
  4. Specify and generate a custom IP address for native Linux installs
--release

The tag of the Entando release we want to use.
https://github.com/entando/entando-releases
(If omitted, use the tag, “quickstart”.)

--debug=1 Displays debug information.
--with-vm Installs Entando inside a VM.
--yes Assumes “yes” for all prompts.

 

What Gets Installed?

Here’s an outline of what gets installed by ENT CLI.

Linux VM Creates an Ubuntu VM (entando) using Multipass.
Entando CLI Installs an instance of ENT CLI inside the VM.
Kubernetes Installs k3s, a lightweight distribution of Kubernetes.
Helm Deployment

Downloads the specified Entando release.

Generates Entando Helm deployment.

In your Linux VM created by ENT CLI, see:

~/.entando/ent/v6.3.2/cli/v6.3.2/w/entando-deployment-specs.yaml

Entando Docker Images Downloaded via Kubernetes

The Helm deployment (entando-deployment-specs.yaml) specifies the images that are downloaded when deploying Entando to Kubernetes.

Entando App Builder

docker.io/entando/app-builder

The administrative interface for building and designing applications.

178.7 MiB
Entando App Engine

docker.io/entando/entando-de-app-wildfly

  • Serves core Entando APIs.
  • Automatically wires micro frontends together with microservices on a given page.
  • Provides backend services used by Entando App Builder to build and configure pages and content.
  • Serves the final application to the end user (i.e., the site you build with Entando App Builder).
1.0 GiB
Entando Component Repository

docker.io/entando/entando-component-manager

Private repository where you can share and install frontend and backend components for one or more Entando applications.

433.9 MiB
Entando Cluster Infrastructure

docker.io/entando/entando-k8s-service

A wrapper used by Entando App Engine to call Kubernetes services.

298.6 MiB
Entando Identity Management

docker.io/entando/entando-keycloak

Centralized authentication for individual micro frontends, microservices, and the entire application for one or more Entando applications.

347.7 MiB
Run to Completion Jobs

docker.io/entando/entando-k8s-app-controller
docker.io/entando/entando-k8s-cluster-infrastructure-controller
docker.io/entando/entando-k8s-composite-app-controller
docker.io/entando/entando-k8s-keycloak-controller

Jobs that are run once to install and configure:

Entando App Engine

Entando Cluster Infrastructure

Entando Identity Management

Entando Application

159.0 MiB

 

Custom Resources

Next, Kubernetes adds the custom resource definitions that will be used to install and configure the Entando application.


~/.entando/ent/v6.3.2/dist/ge-1-1-6/namespace-scoped-deployment/cluster-resources.yaml
EntandoApp

Developers can choose to build one or more Entando applications (EntandoApp).

An EntandoApp consists of 3 images:

  • Entando App Engine
    The server that serves the final application to the end user, the Entando APIs, and takes care of the application infrastructure.
  • Entando App Builder
    The administrative UI to build and design pages, content, and micro frontends for an Entando application.
  • Entando Component Repository
    A private repository where you can share and install frontend and backend components for one or more Entando applications.
EntandoAppPluginLink

Links an EntandoPlugin to an EntandoApp.

See: EntandoPlugin
EntandoClusterInfrastructure Shared cluster services used by one or multiple Entando applications (EntandoApp). Used to access Kubernetes services.
EntandoCompositeApp

Packages the components (or custom resources) that make up an Entando application, and deploys them in sequential order.

  • Ensures the deployment of a component has completed and is up and running prior to deploying the next component.

Not to be confused with EntandoApp which represents an Entando application instance and can be configured to reuse shared resources like EntandoClusterInfrastructure and EntandoKeycloakServer.

  • EntandoCompositeApp represents a deployment process that deploys all of the components required for an Entando application to run in sequential order. It’s intended to be used when deploying Entando in a new environment like the quickstart environment.
EntandoDatabaseService Installs database services. Can be configured to connect to an existing database service.
EntandoKeycloakServer

Deploys and configures a Red Hat Keycloak Server instance on the cluster.

Not required if you’d like to use an existing Keycloak server for identity management.

EntandoPlugin

A Spring Boot microservice that can be made available to an Entando application.

Creates an ingress path for the microservice.

Check out the docs for code examples and properties you can use to tailor each custom resource for your environment.

Ingresses

Ingresses (or routes) from which you can access Entando services from outside the cluster.

Entando App Builder /app-builder/
Entando App Engine

/entando-de-app*

*Can be configured for a given Entando application.

Entando Component Repository /digital-exchange
Entando Cluster Infrastructure /k8s
Entando Identity Management /auth

Persistent Volumes

The Entando Operator listens for events with Entando custom resources and will create persistent volumes if storageClass is specified for that custom resource. The operator will use the default storage class for the cluster by default.

(See: cluster-resources.yaml)

EntandoApp

Stores images, documents, and any static assets uploaded to the CMS.

Stores files uploaded to the server.

EntandoDatabaseService

Persistent storage for the selected database management system (DBMS).

EntandoPlugin

A given microservice deployed via an Entando Plugin can optionally request persistent storage for storing and retrieving files.

What’s Next?

In the next lesson, we’ll learn how ENT CLI makes it easy to package and deploy frontend and backend code changes to your application in Kubernetes.

Additional Resources

https://www.entando.com/
https://dev.entando.org/

Entando is the leading modular application platform for building enterprise web apps on Kubernetes.

Our platform integrates trusted open source technologies and extends their functionality to give you a cohesive and streamlined developer experience with easy-to-use patterns. From deploying on Kubernetes to creating modular backend and frontend architectures using your current technologies, Entando helps you at every layer of the stack. 

Entando is open source with available enterprise support and services. Begin developing on the platform today, and get a quote to see how our team can help your enterprise build better apps, sites, and portals--faster.

White_Paper_cover.png

Learn How To Create Better Apps, Portals, & Websites--Faster.

This white paper outlines how your organization can accelerate UX innovation by developing with micro frontends on Kubernetes, as well as how a micro frontend platform can help you execute this methodology more effectively.