End to end testing of Angular applications are powered by a framework called Protractor. In essence, Protractor is capable of executing tests against an Angular application running in a real browser, interacting with it as a user would. This piece is aimed at providing an introduction to Protractor and walk you through an example of writing an end to end test for a simple Angular application.
End to end testing is the process of validating an application’s workflow from from the beginning to the end. This testing methodology is aimed at replicating real user scenarios, so that the system can be validated for overall functionality. …
The essence of microservice architecture is decomposing monoliths into fine grained services. Each of these “micro” services can be deployed and scaled independently. While this pattern has many advantages, it also brings numerous challenges. One of the foremost of these challenges is the increased complexity which in turn leads to a lack of maintainability.
Imagine a scenario in which you have to implement a UI for a complex CRM (Customer Relationship Management) application. In order to populate different portions of this UI and perform different user operations, you may have to invoke dozens of microservices. Also, UI has to be aware of the network locations (host and port) of all these microservices. In addition, if the network location of a microservice changes (which tends to happen quite frequently in cloud), UI will also have to be updated. …
Akita is essentially a state management solution for Angular. In my previous posts, I have discussed about other state management libraries for Angular such as NgRx and NGXS.
In this piece, I intend to cover the below topics.
Theoretically, the application state is the entire memory of the application. In simple terms, the application state is composed of data received by API calls, user inputs, presentation UI state, application preferences, etc. …
NGXS is essentially a state management library for Angular. You might have come across other state management solutions for Angular, such as NgRx and Akita. The following are two articles that I have written before about using NgRx for state management:
In this piece, I intend to cover the below topics.
As already stated above, NGXS is a state management solution specifically developed for Angular. …
Docker has been a very popular talking point among software developers for years now. Many developers are eager to learn Docker, as its benefits are so appealing. However, Docker is an entire ecosystem of projects and tools such as Docker Client, Docker Server, Docker Machine, Docker Images, Docker Hub, Docker Compose and etc. It’s magnitude can at times confuse a beginner about where to start the learning process. This piece is aimed at introducing you to Docker step by step in a simple way.
In this section we will try to tackle the two most important questions in learning Docker.
Have you ever come across a situation where you tried to install a software in your machine and then the installation process failed due to few missing dependencies in your system. As a result, you had to first install the dependencies and then re-initiate the original software installation. Similarly, you may come across a ton of other issues during a software installation process. This is the fundamental issue that Docker is trying to resolve. …
In my previous post, I explained the fundamentals of Service Discovery and Netflix’s Eureka. We implemented a stand-alone Eureka server and a client to understand how Eureka enables service discovery. Having a stand-alone Eureka server is not good enough for a production grade deployment. This piece is aimed at exploring how to make Eureka server highly available and resilient.
Throughout this article, I’m planning to cover the below topics.
Eureka achieves high availability at two levels. …
One of the main building blocks of a micro-service architecture is service discovery. Spring cloud provides multiple solutions such as Eureka, Zookeeper, Cloud Foundry and Consul to facilitate the process of service discovery. This piece is aimed at providing you a simple explanation of service discovery with Eureka. I will be covering the following topics in this article.
A distributed system typically comprises a large number of services which communicate with each other to perform certain operations. Service discovery is the process of one service dynamically discovering the network location (IP address and port) of another service to communicate with it. …
In my previous post, I explained the fundamental concepts of NgRx and how they fit in together. Now, it’s time to build a mini-CRUD application with NgRx as the state management system.
If you are brand new to the world of NgRx, I suggest you check out my previous post before attempting this tutorial. I won’t be going into detail about the underlying NgRx concepts in this article.
Throughout this article, we will be building a simple course management system. …
When I first started working with NgRx, I faced a steep learning curve. It took quite a bit of reading and research to understand the basic elements that NgRx comprises. The prime objective of this piece is to pass on the knowledge that I gathered to readers so that their lives with NgRx will be easier.
I intend to cover the following topics:
To begin with, NgRx stands for Angular Reactive Extensions. NgRx is a state management system that is based on the Redux pattern. Before we go further into details, let’s try and understand the concept of state in an Angular application. …
Introduction
The purpose of this article is to give you an idea about how Netflix Eureka works. The key thing to note is that I will be using the original Netflix Eureka implementation instead of Spring Cloud Eureka. Below mentioned items will be covered in this write up.
Service Discovery at a Glance.
Imagine a scenario in which one REST service (Service A) is trying to invoke another REST service (Service B). In order to make a request, Service A needs to know the network location (IP address and port) of Service B. In a conventional SOA (Service Oriented Architecture) ecosystem, services’ network locations would hardly change, as they are deployed in on-premise data centers. Consequently, you can afford to maintain the network locations of services in configuration files, which will be updated occasionally. …
About