
Explore Rest API management with theory, best practices, and hands-on implementation using Kong, Docker, Elasticsearch, and Zipkin for monitoring and analytics.
Explore the course structure from theory of software architecture and REST API to hands-on Kong configuration, monitoring, load balancing, plugins, Elasticsearch, Logstash, Kibana analytics, and microservice architecture.
Maximize learning by watching each lesson for five to ten minutes before typing, then replicate concepts; use subtitles, pace yourself, and seek help via q&a or Stack Overflow when stuck.
Explore source code and scripts for Kong 3, note version considerations, and download resources in the lesson's resources and references section for practical, up to date API management insights.
Explore api management with Kong and Docker, and extend functionality with plugins. Use Zipkin for distributed tracing and Elastic Stack (Elasticsearch, Logstash, Kibana) for analytics.
Compare monolith and microservice architectures, highlighting single-unit deployment, distributed services, and the trade-offs of tight coupling versus independent scaling. Emphasize automated testing, automated deployment, and API management.
Define communication as sending or receiving data between systems, and explore patterns like text file exchanges, CSV format, database-to-database transfers, REST API calls, and message brokers.
Explore the rest api concept as a web interface that lets applications talk via http and json, using resource uris, path and query parameters, and standard methods.
Explore three api types by consumer: private internal api, public api accessible at the edge, and partner api governed by access agreements for collaboration.
API management publishes APIs, enforces usage policies, and controls access and traffic, acting as a gateway that centralizes routing, security, API keys, and rate limits with Kong.
Understand what Docker is and why it helps; learn to install Docker, pull images from Docker Hub, and run apps in containers on Windows 11 for easy, dependency-free setup.
Install kong with docker-compose by downloading the docker zip and running docker-compose up -d, then verify containers with docker-compose ps and note ports 8000, 8443, 8001, 8002.
Explore how docker networks connect containers, enabling kong-database and kong to communicate via virtual ip addresses or container names on a shared network like kong-net.
Learn to consume REST APIs with the Postman free version, mastering execution, testing, documentation, and automation tools, and organize requests in collections with customizable variables and a mock API server.
Make your first Postman request to http://localhost:8001, inspect Kong's JSON for plugins and tagline, then save the request in the Kong API Management collection and set a host variable.
Kong secures dockerized services behind the firewall by enforcing access through API management, using IP allowlists, mutual TLS, and credentials or tokens to authenticate requests.
Register services in Kong and create multiple routes to match client requests. Use the information center analogy to manage couriers and consumers, illustrated with a QR code API.
Test the Kong service by browser or Postman against http://api.qrserver.com and http://localhost:8000/qr, learn that port 8001 is admin and 8000 is for API consumers, and verify https on 8443.
Configure a qr code service behind a Kong API gateway by routing /qr to api.qrserver.com, then migrate the service to gamma with the same path and data parameter.
Change the Kong gateway port from 8000 to 80 and the SSL port from 8443 to 443 by editing docker-compose.yml, restarting containers, and testing the QR endpoint at localhost:80/qr.
Add a gamma service and route in Kong, then create a consumer with username Helen and an optional custom_id to map to an existing user database.
Explore Kong Manager, the graphical interface for Kong, to add services and routes using the UI, create consumers, and test endpoints on localhost:8002.
Compare Kong Manager with the open-source Konga for admin tasks, including snapshot backups of services, routes, and consumers for Kong 2–3, with notes on compatibility and setup.
Learn how Kong uses upstreams, targets, and health checks to detect unhealthy servers and distribute requests to healthy nodes with weighted round robin or hash-based algorithms.
Configure Kong upstreams for alpha, beta, gamma, and omega with round-robin and 1000 slots, and enable alpha health checks on /actuator/health with 20% threshold, 4 concurrency, and 5s timeout.
Configure Kong to use upstreams like alpha-upstream instead of direct hosts to enable load balancing across multiple alpha instances.
Use Postman to check upstream health with upstream-status, set upstream-name to alpha-upstream, and observe target health turning unhealthy when the alpha docker container is off, then back on.
Explore how Kong plugins extend API management by applying rate limit, logging, and API key at global, service, route, or consumer levels, and manage them with Kong Manager.
Disclaimer for Udemy Business Users
This course requires you to download the following software: Docker Desktop.
If you are a Udemy Business user, please check with your employer before downloading the software.
NOTE:
This is NOT a coding course. The focus is on API management tools using off-the-shelf (ready-to-use) software
You don't need any credit card or payment to use tools in this course. All software (including the API manager itself) is available as a free edition. Some might even open-source their codes.
Update January 2024
Major Update
Use Kong 3, Elastic 8, and the latest software version (as of 2024)
Improved audio for ALL lectures
Update November 2020
Major Update
Use Kong 2, Elastic 7, and the latest software version (as of 2020)
Added: OAuth2
Added: Proxy Cache
Improved audio for ALL lectures
Before We Begin
If you want to learn, you simply need a web browser. For running tools and hands-on, specific hardware and software are required. Please see the requirements in Lecture One (with the title Readme First: Hardware & Software Required).
Prerequisites
We will use Docker (container technology) to install the tools required for this API management course. In this course, you will learn basic knowledge of Docker. To install docker, you need to be familiar with:
Windows: basic command prompt usage & command, administrator access
Mac / Linux: basic terminal usage & command, root / sudo access
I provide Docker installation instructions for Windows 10 Professional Edition. For any other operating system -including other version of Windows-, I provide reference to official documentation, but not the video. I'm sorry about this, since I don't have a Mac / Linux machine.
Don't worry; the official documentation is complete and easy to follow.
Works with REST API
Your workplace adopts modern architecture and relies on REST API. Having REST API gives benefits, but the benefits come at a cost. For most teams, the processes of setting and enforcing standards or policies across their APIs are entirely manual. Often that process involves multiple teams or team members and becomes even more painful as the number of APIs grows.
Now that you have provisioned your APIs, you also need to have visibility on your APIs. How is your API traffic trending over time? Which API is used most? Which API has a large error rate? Having this data will help you analyze and make the correct decision for further API development.
Policies, securities, or analytics can be implemented by writing additional logic on your APIs. You can even write your own analytics tools for monitoring & analyzing your APIs. But those processes will be redundant and time-consuming. Why don't we find a more efficient way for developers to focus on business needs? That will ultimately maximize the productivity of the developers who build on the API and, in turn, benefit the company.
API Management Software
API management tools can be an answer. API manager tools in the market likely provide common API capabilities, like:
API gateway, a single communication point for accessing API
Basic security for accessing API
Traffic control, like rate limiting or quota
Monitor API health (is API accessible or down?)
Load balancing
API Analytics (hit rate, error rate)
Logging your traffic
The developer portal acts as API documentation. A common API documentation format is swagger / Open API specification
Big players like Google, IBM, or Axway provide good features for API management -if you are willing to pay some amount of money-. But if you prefer an open-source, start-small approach (but still good), there are also several API manager tools in the market, one of which is Kong API Manager (which we use in this course).
In this course, we will learn API Management using several tools. All software is available as a free edition. Some come with the option to upgrade to a premium edition with more features. The tools we will learn here are:
Kong API management
This is the main focus of this course.
Docker and docker-compose
Popular container technology to speed up our installation and configuration. However, this course is NOT a docker course, so we will not go deep into docker.
Zipkin
An open-source REST API tracing tool. Useful for distributed tracing on different services, even if the API services are scattered on several machines.
Elasticsearch, Logstash & Kibana
A Popular search engine and its visualization tools. This course is an introductory course on how to use these stacks to analyze your API traffic. However, this course does not focus on the elastic stack.
Prometheus & Grafana
Open-source monitoring tools to gather performance metrics and display those metrics as time-series charts.
Benefits of API Management (for Engineering and Business)
Let's face it: we have time constraints. Business needs those APIs. And they need it fast.
Writing API that just functionally works but is not secure or is technically flawed will bring trouble sooner or later. Maybe somebody will find a security hole in your API and exploit it. Or do you work in a place where API is used in many places by many people / systems? Without transparency in API analytics (usage, error rate, etc.), it is difficult to know whether your API works fine or needs improvement.
Writing codes for implementing API security, analytics, or some other technical aspects is nice. Either veteran programmers or new kids in the house will love the challenge of writing such codes and solving complex problems.
But the time constraints speak loudly. Writing such codes can be time-consuming. It is a good thing to focus developers' efforts on delivering business logic, which, in turn, keeps the business ahead.
API management can be used to help you solve common API aspects, like security, analytics, or who can access which API. And most of the time, you don't need to write any code. Put your API behind some API management, and configure it to work with your API.
That means productivity increases. Whatever role you have in the company, productivity is always a good thing, and API management (even open-source) can help you boost it.
Kong API Management
Kong provides an API gateway for REST APIs with a plug-in architecture to enable users to add functionalities to the core Kong gateway. Kong's API management platform is attractively lean. It should appeal to users with basic
requirements who want to get an initial platform that they can then add as they go, either
with Kong-or-community-provided plug-ins or with developments of their own (yes, it's possible to develop a Kong plugin based on your own requirements, although we don't cover it in this course). Companies that aim to use the Kong API management platform can start fast, as you can see in the course -less than 1 hour to set up and run-.
Users looking to execute digital strategies will find Kong useful for enabling their platforms.
API Monitoring & Analytics
In this course, we will learn to do analytics and monitoring not only using Kong API Manager but also some other tools and, most importantly, how to integrate them. One tool only is quite powerful, but integration will give us more benefits
API management tools usually come with an API analytics module. We can use the analytics to gain visibility of the entire API ecosystem. The analytics will automatically and continuously collect all API-traffic data, like performance time, hit rate (how many hits in seconds), and error rate. By leveraging API analytics, we can learn which APIs have good value and which ones need to be improved.
On the operation side, we can proactively use API monitoring tools to detect API traffic and performance issues. Imagine if a service is down at 10 AM, and nobody knows until one hour later, which means problems have already arisen and some business opportunity might already lost. By leveraging open-source Kong API management (and several other free tools), we can get a notification in less than 5 minutes after the service is troubled.