Explore our platform and learn how it can help your application shine.
Learn about modern authentication techniques and best practices.
Learn about access management practices and technologies.
Learn to manage user accounts and access at scale.
Understand multi-tenancy, a foundation of shared computing.
Learn how to design and build successful SaaS applications.
Understand what is required to provide an enterprise-ready product.
Understand the uses and benefits of Attribute-Based Access Control.
Learn how Single Sign On (SSO) can improve security and UX.
Learn about OpenID Connect, an open authentication protocol.
Learn about SAML, a popular SSO protocol.
Learn about our history, our team, and our mission.
The concept of microservices architecture (MSA) exists for at least 15 years. With the growing trend of microservices it seems you need to have a real “out of this world use case” to develop a monolith application (Quick glance at Google Trends tells that story). But the story of microservices tracing is a bit more complex than that…
The advantages of building a distributed microservices environment are clear:
That being said, the MSA approach presents it’s own challenges:
Learn first hand how easy it is to get your SaaS enterprise ready.
So now you have started building a micro-service based application, separated the relevant flows by domain/scale to the relevant micro-services.
Moving from this monolith:
In most real-life scenarios, our microservices will need to communicate with each other via REST/Queues in order to complete business flows.
Most microservices based environments will log to the popular elastic search. But how do you control the flow over GBs of logs sent to our elastic search cluster? How do you apply microservices tracing?
Let’s take a simple authentication flow for example:
In this sample we have 4 different microservices taking part in the flow…All of them are async… all of them are logging… Now let’s think of this on high scale!
We are opening the popular Kibana which shows a mix of logs from different services with different flows… All mixed…
And if the customer calls claiming they cannot login, How do we find the actual problem in the tons of developer logs that we have?
Correlating logs on a multi-tenant, micro-service environment is quite simple when you think about it.
Now we have the context passing between the micro-services and we can correlate the logs.
This is how it looks on our Kibana after we implement this method:
And we can now filter based on our trace id and see the entire flow between the micro-services:
Yay! Now we are seeing the complete flow for this request (in this sample — our Audits flow – going from the API gateway to the metadata service, back to the audits service and to the client via the API gateway). Our microservices tracing is applied in place.
And what happens next time we need to identify what is wrong with a customer login OR any other issue we ran into? Should we go into the Kibana?
Any further questions you have on how we are monitoring tenants and segments on our ELK?, feel free to contact me [email protected]