Posts

Showing posts from February, 2018

Spring Cloud, Eureka and Zuul

Image
Spring Cloud, Eureka and Zuul Introduction         I was looking online for a simple end-to-end working example of Spring Cloud, Eureka and Zuul. I did not find a single post that gave a simple end-to-end implementation. I found so many posts that were really confusing and did not give a simple explanation of how these work together or how to set them up. Hence I came up with this post to explain how you can setup microservices using Spring Cloud, Eureka and Zuul. Eureka, Zuul and Ribbon Eureka, Zuul and Ribbon are part of Netflix Open Source Software (OSS). Eureka in simple terms is a Discovery and Service registration server. Multiple microservices can register themselves to Eureka at runtime. Zuul in simple terms is an Edge Server or a Gateway Service. It provides dynamic routing, monitoring, resiliency, security and a single entry point to multiple microservices. Zuul uses Ribbon to lookup available services in Eureka and routes the external request to an appropriate se

Long Short-Term Memory Network for Time Series Forecasting

Image
Long Short-Term Memory Network for Time Series Forecasting Introduction         To understand the terms frequently used in the context of Machine Learning in a simple way, read my post: Machine Learning Basics .         In practice, basic Recurrent Neural Networks (RNNs) do not seem to be able to learn long-term dependencies. Long Short Term Memory(LSTM) networks are a special kind of RNN, capable of learning long-term dependencies. They were introduced by Hochreiter & Schmidhuber in 1997. LSTMs are explicitly designed to avoid the long-term dependency problem. Remembering information for long periods of time is their default behavior. So LSTM networks are ideal for time series forecasting.         There are many tutorials online that give a theoretical overview of LSTM and its usage. However in this post I will focus on the programmatic implementation of LSTM using Python libraries. What is Time Series Forecasting?         When we have historical data about anything f

Machine Learning Basics

Machine Learning Basics Introduction         Machine learning is a field of computer science that gives computers the ability to learn without being explicitly programmed. The term "Machine Learning" was coined by Arthur Samuel, an American pioneer in the field of computer gaming and artificial intelligence in 1959 while at IBM.  Machine learning can be broadly classified into the following: Supervised Machine Learning: Here the program or model is trained on a set of training examples or historical data which will help it to give accurate results when new data is given.  Unsupervised Machine Learning: This is purely data driven. The program is given huge amount of data and it should then evaluate patterns and relationships from it. Reinforcement Machine Learning: Here the program learns from the environment that it is in through past experiences and then continuously improves itself. Supervised Machine Learning is classified broadly into the following:

Elasticsearch, Logstash, Kibana Tutorial: Load MySQL Data into Elasticsearch

Image
Elasticsearch, Logstash, Kibana Tutorial: Load MySQL Data into Elasticsearch Introduction           I was searching for a tutorial online on all the elements of the "Elastic Stack" (formerly the "ELK stack") and all I found was either a tutorial on Elasticsearch only or a tutorial on Logstash only or a tutorial on Kibana only or a data migrate tutorial using Logstash and Elaticsearch. Hence I came up with this tutorial which gives a comprehensive overview of all the elements in the Elastic Stack. The use case that I am using in this post is a data load from MySQL DB into Elasticsearch using Logstash and visualizing this data using Kibana. Elasticsearch         Elasticsearch is a distributed, RESTful search and analytics engine that is based on Apache Lucene . It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. For more details on Elasticsearch, you can check:  Elasticsearch