Adding sections about observability and scalability (#2263)

* Adding sections about observability and scalability

* Update content/roadmaps/101-backend/content/123-scalability/104-observability.md

* Update content/roadmaps/101-backend/content/123-scalability/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
pull/2259/head^2
Platiplus 2 years ago committed by GitHub
parent f0afc4538c
commit eb21f2067b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      content/roadmaps/101-backend/content/123-scalability/104-observability.md
  2. 20
      content/roadmaps/101-backend/content/123-scalability/readme.md

@ -1 +1,14 @@
# Observability # Observability
In sofware development, observability is the measure of how well we can understand a system from the work it does, and how to make it better.
So what makes a system to be "observable"? It is its ability of producing and collecting metrics, logs and traces in order for us to understand what happens under the hood and identify issues and bottlenecks faster.
You can of course implement all those features by yourself, but there are a lot of softwares out there that can help you with it like Datadog, Sentry and CloudWatch.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Documentation' href='https://docs.datadoghq.com/'>DataDog Docs</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Documentation' href='https://aws.amazon.com/cloudwatch/getting-started/'>AWS CloudWatch Docs</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Documentation' href='https://docs.sentry.io/'>Sentry Docs</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=Wx0SHRb2xcI'>AWS re:Invent 2017: Improving Microservice and Serverless Observability with Monitor</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://newrelic.com/blog/best-practices/observability-instrumentation'>Observability and Instrumentation: What They Are and Why They Matter</BadgeLink>

@ -1 +1,19 @@
# Scalability # Building for Scale
Speaking in general terms, scalability is the ability of a system to handle a growing amount of work by adding resources to it.
A software that was conceived with a scalable architecture in mind, is a system that will support higher workloads without any fundamental changes to it, but don't be fooled, this isn't magic. You'll only get so far with smart thinking without adding more sources to it.
For a system to be scalable, there are certain things you must pay attention to, like:
* Coupling
* Observability
* Evolvability
* Infrastructure
When you think about the infrastructure of a scalable system, you have two main ways of building it: using on-premises resources or leveraging all the tools a cloud provider can give you.
The main difference between on-premises and cloud resources will be FLEXIBILITY, on cloud providers you don't really need to plan ahead, you can upgrade your infrastructure with a couple of clicks, while with on-premises resources you will need a certain level of planning.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.sentinelone.com/blog/scalable-architecture/'>Scalable Architecture: A Definition and How-To Guide</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=gxfERVP18-g'>Scaling Distributed Systems - Software Architecture Introduction</BadgeLink>
Loading…
Cancel
Save