Dynamic Environment

Another challenge when working with microservice-based architectures is that microservices come and go. During the deployment of a new release, an instance can be stopped and started anew with a new software version. When servers fail, instances shut down, and new ones are started. For this reason, monitoring has to occur separately from the microservices. Otherwise the stopping of a microservice would influence the monitoring infrastructure or may even cause it to fail. Besides, microservices are a distributed system. The values of a single instance are not telling in themselves. Only by collecting values of multiple instances does the monitoring information become relevant.

Concrete Technologies

Different technologies can be used for monitoring microservices:

  • • Graphite[1] can store numerical data and is optimized for processing time-series data. Such data occurs frequently during monitoring. The data can be analyzed in a web application. Graphite stores the data in its own database. After some time, the data is automatically deleted. Monitoring values are accepted by Graphite in a very simple format via a socket interface.
  • • Grafana[2] extends Graphite by alternative dashboards and other graphical elements.
  • • Seyren[3] extends Graphite by a functionality for triggering alarms.
  • • Nagios[4] is a comprehensive solution for monitoring and can be an alternative to Graphite.
  • • Icinga[5] has originally been a fork of Nagios and therefore covers a very similar use case.
  • • Riemann[6] focuses on the processing of event streams. It uses a functional programming language to define logic for the reaction to certain events. For this purpose, a fitting dashboard can be configured. Messages can be sent by SMS or email.
  • • Packetbeat[7] uses an agent that records the network traffic on the computer to be monitored. This enables Packetbeat to determine with minimal effort which requests take how long and which nodes communicate with each other. It is especially interesting that Packetbeat uses Elasticsearch for data storage and Kibana for analysis. These tools are also widely used for analyzing log data (see section 11.2). Having only one stack for the storage and analysis of logs and monitoring reduces the complexity of the environment.
  • • In addition, there are different commercial tools. Among those are HP’s Operations Manager,[8] IBM Tivoli,[9] CA Opscenter[10] and BMC Remedy.[11] These tools are very comprehensive, have been on the market for a long time, and offer support for many different software and hardware products. Such platforms are often used enterprise-wide, and introducing them into an organization is usually a very complex project. Some of these solutions can also analyze and monitor log files. Due to their large number and the high dynamics of the environment, it can be sensible for microservices to establish their own monitoring tools, even if an enterprise-wide standard exists already. When the established processes and tools require a high manual expenditure for administration, this expenditure might not be feasible any more in the face of the large number of microservices and the dynamics of the microservice environment.
  • • Monitoring can be moved to the Cloud. In this manner no extra infrastructure has to be installed. This facilitates the introduction of tools and monitoring the applications. An example is NewRelic.[12]

These tools are, first of all, useful for operations and for developers. Business monitoring can be performed with different tools. Such monitoring is not only based on current trends and data, but also on historical values. Therefore, the amount of data is markedly larger than for operations and development. The data can be exported into a separate database or investigated with big data solutions. In fact, the analysis of data from web servers is one of the areas where big data solutions have first been used.

  • [1] http://graphite.wikidot.com/
  • [2] http://grafana.org/
  • [3] https://github.com/scobal/seyren
  • [4] http://www.nagios.org/
  • [5] https://www.icinga.org/
  • [6] http://riemann.io/
  • [7] https://www.elastic.co/products/beats
  • [8] http://www8.hp.com/us/en/software-solutions/operations-manager-infrastructure-monitoring/
  • [9] http://www-01.ibm.com/software/tivoli/
  • [10] http://www3.ca.com/us/opscenter.aspx
  • [11] http://www.bmc.com/it-solutions/remedy-itsm.html
  • [12] http://newrelic.com/
< Prev   CONTENTS   Source   Next >