Skip to main content

Posts

Pattern: API Gateway / Backends for Frontends

Context Let’s imagine you are building an online store that uses the Microservice architecture pattern and that you are implementing the product details page. You need to develop multiple versions of the product details user interface: HTML5/JavaScript-based UI for desktop and mobile browsers - HTML is generated by a server-side web application Native Android and iPhone clients - these clients interact with the server via REST APIs In addition, the online store must expose product details via a REST API for use by 3rd party applications. A product details UI can display a lot of information about a product. For example, the Amazon.com details page for POJOs in Action displays: Basic information about the book such as title, author, price, etc. Your purchase history for the book Availability Buying options Other items that are frequently bought with this book Other items bought by customers who bought this book Customer reviews Sellers ranking … Since the online store uses the Microserv
Recent posts

Deploy rancher to mange kubernetes cluster

Access to Rancher: https://165.232.159.139/dashboard/ user: admin pass: 12345678@A12345678@Ab Deployment Monitor rancher server 

Introduction to API Gateway in Microservices Architecture

  What is an API Gateway? An API gateway is a server (or L7 proxy) between a client and microservices that acts as a centralized entry point for all clients into the system. It is a reverse proxy that accepts client API calls and forwards them to the appropriate microservice (refer to Fig. A below). By providing an API for each client, API gateways encapsulate the complexity of the underlying system and let clients talk to it instead of calling specific services. They also perform security checks (authentication and authorization) before the traffic reaches the service, thus leaving services to focus on their core functionalities. The need for API gateways for microservices The challenges posed by the direct client-to-microservices pattern of communication led to the popularity of API gateways. Let us go through some of them. The problem of service discovery and traffic routing For direct client-to-microservice connection, the clients have to know the specific endpoints of service inst

Async API documentation

Asyncapi:  https://www.asyncapi.com/ Async API documentation is used for documenting events in event-driven systems, like Kafka events. All of the event DTOs are stored in one place. It supports YAML and JSON formats. Source code : https://github.com/nguyenvanhuan243/asyncapi_studio Demo:   https://asyncapi-huancapital.onrender.com/ Async Json asyncapi : '2.6.0' info : title : Streetlights Kafka API version : '1.0.0' description : | The Smartylighting Streetlights API allows you to remotely manage the city lights. ### Check out its awesome features: * Turn a specific streetlight on/off 🌃 * Dim a specific streetlight 😎 * Receive real-time information about environmental lighting conditions 📈 license : name : Apache 2.0 url : https://www.apache.org/licenses/LICENSE-2.0 servers : test : url : test.mykafkacluster.org:8092 protocol : kafka-secure description : Test broker security : - saslScram : [] defaultConten

Traditional Deployment VS Virtualization VS Container

1. Traditional Deployment History of running a software Traditional Deployment Early on, organizations ran applications on physical servers. Install or use an existing operating system. Install the tools & dependencies needed by your software. Run your application on it. Problem with Traditional Deployment Resource Isolation issue, there is no way to define resource boundaries for applications in a physical server. Scaling issues for specific applications and long downtime. Overutilization of resources for a specific app can crash the entire physical server. It was expensive for organizations to maintain many physical servers. Now to Overcome this problem, a virtual machine was introduced. 2. Virtual Machine Virtual Machine Virtualization allows you to run multiple VMs on a single physical server. Each VM includes a full copy of an operating system, the application, necessary binaries, and libraries. Virtualization allows more effortless adding and updating of applications that sol