Case Study: Migration of an enterprise product to AWS Cloud

Part 2 – The challenges In part 1 of this blog series, we talked about the reasons to move the enterprise application to AWS. Moving an enterprise application being actively used by hundreds of users poses significant challenges. In this installment we will explore the challenges we faced. Database The Primary challenge was the database.…

Case Study: Migration of an enterprise product to AWS Cloud – Part 1

Business Scenario A customers’ business relies on a custom-built enterprise product that serves as the nerve-center of their operations across the USA. The product was deployed on one of the largest cloud providers. As the business was growing, there was a need for infrastructure which would scale as needed and be cost-efficient with effective self-service…

Microservices Architecture

Microservices has been a buzzword in software engineering recently. Everyone wants to build their application around Microservices architecture. Before you jump onto the bandwagon, lets do a critical review of Microservices. We will look at the cases where it is appropriate along with  advantages and disadvantages. Before we proceed let us look at how to…

Apache Kafka: What sets it Apart?

Each day, large amounts of data and metrics are collected from real time activity streams, performance metrics, application logs, web activity tracking and much more. Modern scalable applications need a messaging bus that can collect this massive continuous stream of data without sacrificing good performance and scalability. Apache Kafka is built ground up to solve…

Building Scalable Applications Part 1: Handling Transient Failures in Cloud Applications

While there are numerous advantages of deploying on the cloud, there are no guarantees that the cloud platform services will respond successfully every time. In a cloud environment periodic transient failures should be expected. The approach should be to minimize the impact of such failures on the application execution by anticipating and proactively handling failures.The…

Building Scalable Applications Part 2: Design for the cloud

In the previous post, we covered the benefits of moving to the cloud for scale. In this post, we will look at some best practices to build applications for the cloud.1. Use messaging to decouple components One of the important principles of scalable application design is to implement asynchronous communication between components. To start with…