Go from scratch to a scalable web app on Kubernetes

Share this post:

(Ed.–This post covers 1 of 3 related tutorials you can do around Kubernetes-based application development. The author mentions the other two–on establishing a DevOps pipeline, and on setting up log data visualization–after discussing the process of building the scalable web app. A chatbot isn’t part of the tutorial but adding intelligent self-service to any web experience is good to keep in mind. Here’s how the dev team at UBank made that work.)

As a developer, you just want to focus most of your time writing code. Then, without too much hassle, you want to deploy your application and have it run as consistently on a cloud as it does locally. You would rather not spend hours reading Kubernetes documentation on writing yaml deployment files. You don’t want to create Helm Charts every time you start a new microservice. And you probably don’t want to research the best practices for consuming service credentials, either.

We get it.

That’s why we created the tutorial “Deploy a scalable web application on Kubernetes.”



In this tutorial, you’ll do these tasks step by step :

  • Scaffold a web application (that comes with all needed Kubernetes and Helm deployment files)
  • Run the app locally in a container
  • Deploy the app to a managed Kubernetes cluster on IBM Container Service when its ready for real traffic
  • Bind your own custom domain
  • Monitor the health of the environment
  • Scale the app

Even without the chatbot, the list sounds like a lot–but trust me, the tutorial makes it easy by using this combination of IBM Cloud services:

App Service Starter Kits — Let you choose your favorite language, frameworks, and tools. App Service starter kits are pre-configured and integrated so you can focus on the code.

IBM Cloud Developer Tools CLI — Provide the tools create, build and deploy applications either locally or to IBM Cloud.

IBM Container Registry — Provides a multi-tenant private image registry where you can safely store and share your Docker images.

IBM Container Service — Deploys your app in Docker containers that run in highly available and flexible scalable Kubernetes clusters.

We give you the opportunity to build on this tutorial with two others that follow from it:

Though you can do these other tutorials independently, it would be worth using the scalable web app you’ve deployed as the basis for setting-up visual analysis of the log data generated by your app and adding a DevOps pipeline. In short, to do those tutorials as follow-ups, simply skip the steps on creating an app and Kubernetes cluster and use the scalable web app you deploy in this current tutorial.

In the end, with Kubernetes as your compute foundation, going on to add a chatbot would enable users to have natural conversations with your app by training Watson Assistant on key topic areas. Build a chatbot to field to frequently asked questions, for example.


More How-tos stories

How to deliver great performance for global apps on IBM Cloud

A large telecommunications service provider in Europe wants to serve customers in Brazil from their Frankfurt, Germany location. One challenge with such large geographical distances is achieving consistently low latency in order to provide a good user experience. Another challenge is scaling the infrastructure to handle a large number of user requests during peak traffic conditions.

Continue reading

Securing your Python app with OpenID Connect (OIDC)

Some weeks back I introduced to a tutorial on how to analyse GitHub traffic. The tutorial combines serverless technology and Cloud Foundry to automatically retrieve statistics and store them in Db2. The data can then be accessed and analyzed using a Python Flask app. Today, I am going to show you how the web site is protected using OpenID Connect and IBM Cloud App ID.

Continue reading

Custom login page for App ID integration

When developing an application that integrates with App ID, the standard hosted login page has a few options to change the colours or logo. In some cases, this isn't enough and direct customisation is necessary. There exists a handy guide for a custom App ID login screen in mobile applications, however for web applications a little more effort is required.

Continue reading