Skip to main content

Posts

Showing posts from 2019

GraphQL based solution architecture patterns

GraphQL is becoming popular in the tech industry as a replacement for REST. It really carries out significant advantages over existing mechanisms for the client-server type of communications. In simple terms, GraphQL allows the client to choose which information it wants rather than receiving all the data which is available for the API. This is similar to a database query where we request only the required information. That is why it is called as GraphQL. We can do this easily with databases and data services runtime. But if you think about implementing the same capability for a REST API, you have to create so many different resources and the client has to call each and every one of these resources and handle the orchestration logic at the client-side. Otherwise, the API server has to do the heavy-lifting of orchestration. But this is not scalable with the changing demands from customers and the business. The below medium post discusses possible solution architecture patterns that...

Understanding WSO2 API Manager 3rd party key manager integration

WSO2 API Manager comes with a built-in key management server that is used for OAuth2 based security within the product. Sometimes, customers like to use their existing Identity Provider (IdP) as the OAuth2 key management server. The below post explains the architecture and a reference implementation of 3rd party KM with WSO2 API Manager. https://medium.com/@chanakaudaya/understanding-wso2-api-manager-3rd-party-key-manager-integration-77a3677b1e9a

Open sourcing the Solutions Architecture Patterns

Solutions Architects (SAs) are the people who convert deep technical knowledge into a format that can be understood by both technical and non-technical people. They are the bridge between product engineers and salespeople. It is so strange that there is no common knowledge base (KB) that has been shared in the open-source community related to solutions architecture. That was the motivation for me to build such a KB which can be reused by SAs regardless of which technology stack they are working with or promoting. I have started small an initiated a GitHub repository and started contributing solutions architecture patterns which I learn from other people and learn while I’m working as a SA. Today, I have released the  0.3  version of this repository with a set of new solutions architecture patterns. Here is the GitHub repository link for this repository. chanakaudaya/solutions-architecture-patterns This repository contains solutions architecture patterns which c...

WSO2 API Microgateway deployment patterns

WSO2 recently announced the latest version of it’s API Gateway which is API Microgateway 3.0. This release comes with a cloud-native, enterprise-grade, open-source API gateway along with full API lifecycle management capabilities. You can find more details about the WSO2 API Microgateway by referring the link below. https://wso2.com/api-management/api-microgateway/ With this new microgateway, WSO2 allows enterprises to deploy API gateway with a whole new set of deployment patterns. In this article, I will be talking about a few possible deployment patterns with WSO2 API Microgateway. Though this article is focused on WSO2 API Microgateway, some patterns can be used independent of the same. Here is the link to the original medium post. https://medium.com/@chanakaudaya/wso2-api-microgateway-deployment-patterns-8cb8f25a7619

Understanding Pivotal Cloud Foundry - moving your enterprise back to on-premise

People are crazily moving their enterprise platforms to mega clouds. Are they considering the long-term drawbacks of cloud movement? Here's an alternative approach to bring the same agility without moving your enterprise towards the unknown. https://medium.com/@chanakaudaya/understanding-the-pivotal-cloud-foundry-pcf-from-the-outset-bb4925182015

Understanding distributed systems messaging styles

Distributed systems has come a long way from where it started and have a long way to go. With more and more people connected through telecommunication technology over the largest distributed system on the planet which is the internet, the demand for an efficient distributed architecture is ever so important today. This is not a tutorial on distributed systems though. Rather some thoughts on building a futuristic distributed system which addresses the challenges of the modern needs keeping the focus at the messaging styles. In a distributed system, messaging plays a pivotal role. Data flows from one system to another through messages. Different protocols and formats are used to share data within a distributed system as messages or events. Another key aspect of messaging is the nature of communication The below post explains different messaging styles and how those can be used to build a future proof distributed system for the enterprise. https://medium.com/@chanakaudaya/a-futuris...

Understanding Apache Kafka architecture

Apache Kafka has evolved as the defacto standard for building reliable event based systems with ultra high volumes. The unique, yet simple architecture has made Kafka an easy to use component which integrate well with existing enterprise architectures. At a very high level, it is a messaging platform which decouples the message producers from the message consumers while providing the reliability of message delivery to consumers at scale. Kafka has message producers which send messages (events) to kafka which kafka stores in a entity called a topic which will deliver the messages to one or more consumers in a reliable manner. There can be different types of producers and consumers depending on the use case. In the below post, I'm explaining how kafka architecture works and integrate with other systems. https://medium.com/@chanakaudaya/understanding-apache-kafka-the-messaging-technology-for-modern-applications-4fbc18f220d3

Architecting a modern digital platform with Open Source Software

The digital business landscape is helping businesses to grow beyond geographical boundaries. Transforming your business into a digital business is no longer an optional thing, rather it has become a necessity. Early adopters, late boomers, methodical players, every enterprise is trying to modernize its enterprise IT ecosystem to improve the efficiency and become a leader in their respective enterprise domain. If you are an enterprise architect who is responsible for building a digital platform from scratch, modernize an existing IT platform or lift and shift an existing deployment into the cloud, there are 100s of different software and technology vendors available to support your effort. The days of proprietary software is long gone and people are more and more migrating towards open source software(OSS). One of the major challenges of adopting OSS is the maintenance overhead. But that challenge is absorbed by the mega-cloud vendors as well as other cloud services offered by the vendo...

Understanding Multi Cloud Enterprise Deployment architecture

If your enterprise is thinking about moving into cloud, you should be thinking about moving into multi-cloud. The reason is that, you can achieve the below mentioned advantages. Provides much better service availability — Given that your applications are running across multiple cloud environments, your services can run without much interruption even if an entire cloud system goes down. Get enterprises free from vendor lock-in — Cloud vendors always try to get as much applications into their own cloud and that will lock you into a single vendor so that you cannot get away from them even you need to do it. With the multi-cloud approach, you don’t need to lock into any vendor and move away from them at any time. Can negotiate for better deals — Once you are in multi cloud, you have more power to demand for discounts since every vendor wants to increase their share of your account. Can use best technology for the applications — Different cloud vendors are strong in different ar...

Building an effective microservices strategy with Service Mesh and API Management

Microservices architecture is not a silver bullet for all your enterprise IT system requirements. Some requirements come just after implementing a microservices architecture. Service Mesh and API Management are such mechanisms which works along with microservices to build a comprehensive microservices architecture. The below post explains how these 3 pillars can help you to build an effective microservices platform. https://medium.com/microservices-learning/microservices-service-mesh-and-api-management-7408c001fb31

Istio Service Mesh Pattern

Microservices architectures are becoming more and complex and challenging to maintain. Given the advantages it brings to the enterprise IT ecosystem, the complexity is out-numberes by the advantages. Service Mesh allows the enterprises to control communication amongst microservices as well as communications from external clients to the microservices. Istio is becoming more and more popular as a service mesh because it provides both data plane and control plane capabilities of a service mesh. The following medium post explains the Istio Service Mesh along with its usage. https://medium.com/microservices-learning/istio-service-mesh-pattern-61a2848704bf

Kubernetes Deployment Pattern

Kubernetes has become the de-facto standard for managing container based deployments. It is a container orchestration platform which provides capabilities like Automatic scaling Self-healing Load balancing  Monitoring Service discovery Storage sharing In a real enterprise deployment, it is essential to understand how kubernetes can be used. The following medium post explains how to use kubernetes in an enterprise context. https://medium.com/solutions-architecture-patterns/kubernetes-deployment-pattern-6fb231c41d87