Several years ago, when you had a monolithic application, it was fairly easy to debug and diagnose since there was probably only one service with a couple of users. Nowadays systems are broken up into smaller microservices deployed in containers on top of Kubernetes in multiple clusters across different cloud environments. In these kinds of distributed environments, there is a need to observe it all, both the overall picture, and, if need be, at a more granular level. Observability can be roughly divided into three sub-categories: logging, metrics, and tracing. In this blog post we’ll show you how simple it is to get set up with tracing in your new or existing MinIO application. We’ll build a small MinIO app that does a few basic requests; this will be our base application to which we’ll add tracing to gain a better picture of how system components and functions interact.
Guray Yildirim "Tooling and Managing Docker Containers With Python: Why and How"Fwdays
Managing Docker containers with a command-line interface is useful. However, writing custom tools or implementing ideas most of the time requires more than defining aliases or shell scripts. Docker has a detailed API and a Python module named **docker-py ** is available for connecting and consuming Docker Engine API.
Utilizing Python for creating and managing Docker containers opens a variety of opportunities. Reasons for why, when, and where to employ docker-py, with examples will be shown, as well as different examples in the demo part.
It could be utilized in:
writing custom CLI tools;
designing special-purpose pipelines;
monitoring Docker itself and containers;
application lifecycle management;
cluster management;
implementing tooling.
This document discusses an automatic code generation tool called UJECTOR that can generate executable Java code from UML diagrams, including class diagrams, sequence diagrams, and activity diagrams. It notes the benefits of automatic code generation in reducing errors compared to manual coding. The paper also discusses some related work, including Enterprise Architect, Eclipse UML Generators, Rhapsody, and dCode - other tools that can generate code from UML models. Overall, the document examines challenges in ensuring consistency, accuracy, maintainability and efficiency when automatically generating code from UML models.
This is a talk on how you can monitor your microservices architecture using Prometheus and Grafana. This has easy to execute steps to get a local monitoring stack running on your local machine using docker.
Explore seamless Jaeger integration with Spring Cloud for streamlined application monitoring and enhanced performance. Learn how to leverage distributed tracing capabilities for efficient microservices management.
The document describes implementing multi-user file sharing using OpenStack object storage (Swift) on virtual machines. Swift provides scalable, redundant storage of objects and files across multiple servers. The authors deployed Swift on Ubuntu virtual machines using OpenStack to store and share files between users. Authentication of users is done using Swift's temporary authentication service (tempauth). Curl commands are used to create accounts and containers, upload and download objects, and share containers with other users.
Understanding and Extending Prometheus AlertManagerLee Calcote
The document discusses Prometheus AlertManager, including its purpose of ingesting, grouping, deduplicating, silencing, throttling, and notifying alerts from Prometheus. It describes AlertManager's routes, receivers, silencers, inhibitors, and grouping functionality. It also covers high availability, the AlertManager UI, and enhancing AlertManager to support viewing alert history.
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Brian Brazil
Prometheus is a next-generation monitoring system. Since being publicly announced last year it has seen wide-spread interest and adoption. This talk will look at the concepts behind monitoring with Prometheus, and how to use it with Kubernetes which has direct support for Prometheus.
Prometheus has become the defacto monitoring system for cloud native applications, with systems like Kubernetes and Etcd natively exposing Prometheus metrics. In this talk Tom will explore all the moving part for a working Prometheus-on-Kubernetes monitoring system, including kube-state-metrics, node-exporter, cAdvisor and Grafana. You will learn about the various methods for getting to a working setup: the manual approach, using CoreOSs Prometheus Operator, or using Prometheus Ksonnet Mixin. Tom will also share some little tips and tricks for getting the most out of your Prometheus monitoring, including the common pitfalls and what you should be alerting on.
The document discusses Struts framework and internationalization (I18N) applications. Some key points:
1. Struts is a MVC framework that simplifies development of web applications. It provides components like ActionServlet and tag libraries.
2. I18N applications display output based on the user's locale/language. This is achieved using properties files with language-specific translations and the ResourceBundle class.
3. In Struts, properties files are configured in struts-config.xml and accessed in JSPs using the <message> tag. Keys not found will result in errors unless null=false is specified.
Designing a production grade realtime ml inference endpointChandim Sett
This presentation discusses about designing a ML inference endpoint application in python flask and Docker containers using appropriate software engineering design principles. The application being developed is an enterprise production grade.
This document provides summaries of key Android concepts:
- Fragments allow modular activity design by including discrete portions of UI within activities. Toasts, dialogs, and notifications provide feedback to users outside the main UI.
- Services run in the background without a UI. Broadcast receivers respond to messages from other apps and the system. Content providers manage access to structured data.
- The document also discusses networking, JSON parsing, AsyncTask, location services, data storage options, and setting app permissions for features like location access. Code examples are provided for many concepts.
Kubernetes Architecture with ComponentsAjeet Singh
This document provides an overview of Kubernetes architecture and components. It describes how to run a simple Kubernetes setup using a Docker container. The container launches all key Kubernetes components including the API server, scheduler, etcd and controller manager. Using kubectl, the document demonstrates deploying an nginx pod and exposing it as a service. This allows curling the nginx default page via the service IP to confirm the basic setup is functioning.
OpenStack Identity - Keystone (kilo) by Lorenzo Carnevale and Silvio TavillaLorenzo Carnevale
OpenStack Identity Service (Keystone) seminar.
Distributed Systems course at Engineering and Computer Science (ECS), University of Messina.
By Lorenzo Carnevale and Silvio Tavilla.
Seminar’s topics
❖ OpenStack Identity - Keystone (kilo)
❖ Installation and first configuration of Keystone
❖ Workshop
❖ Identity service configuration
➢ Identity API protection with RBAC
➢ Use Trusts
➢ Certificates for PKI
❖ Hierarchical Projects
❖ Identity API v3 client example
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery called Pods. ReplicaSets ensure that a specified number of pod replicas are running at any given time. Key components include Pods, Services for enabling network access to applications, and Deployments to update Pods and manage releases.
Leveraging Python Telemetry, Azure Application Logging, and Performance Testi...Stackify
In today's fast-paced digital landscape, ensuring the reliability, performance, and observability of applications is crucial. This involves leveraging tools and techniques such as Python telemetry, Azure application logging, and performance testing in production. These practices help in monitoring application health, diagnosing issues, and optimizing performance, ultimately leading to a better user experience and more robust applications. In this PDF, we'll explore these concepts in detail and understand how they can be effectively implemented.
The document discusses deploying Java microservices applications to Kubernetes. It covers running a sample Spring Boot app in Docker containers, then deploying it and its MongoDB dependency to a local Kubernetes cluster using Minishift. It also discusses using the Fabric8 Maven plugin to simplify building Docker images and generating Kubernetes manifests from a Maven project. Helm is introduced as a way to package full applications and dependencies for Kubernetes.
OpenStack Identity - Keystone (liberty) by Lorenzo Carnevale and Silvio TavillaLorenzo Carnevale
OpenStack Identity Service (Keystone) seminar.
Distributed Systems course at Engineering and Computer Science (ECS), University of Messina.
By Lorenzo Carnevale and Silvio Tavilla.
Seminar’s topics
❖ OpenStack Identity - Keystone (liberty)
❖ Installation and first configuration of Keystone
❖ Identity service configuration
➢ Identity API protection with RBAC
➢ Use Trusts
➢ Certificates for PKI
❖ Hierarchical Projects
❖ Identity API v3 client example
The document provides an overview and cheat sheet for using the OpenShift command line interface. It defines what OpenShift is, lists common commands for login/authentication, managing projects and resources, building and deploying applications, and provides an example of creating a new project, adding users, building an application from source code and image, and checking the status of deployed resources.
Similar to stackconf 2024 | Ignite: Distributed Tracing using OpenTelemetry and Jaeger by AJ Jester.pdf (20)
The Tata Technologies investor deck provides an overview of the company's strategic vision, financial performance, and growth prospects. It introduces the company’s mission, values, and core business segments, highlighting its competitive edge and market position. Financial performance is detailed with key metrics like revenue growth and profitability. The deck outlines strategic initiatives for innovation and market expansion, recent operational achievements, and key client partnerships. Future growth projections and investment opportunities are discussed, emphasizing the company's potential. Additionally, it highlights Tata Technologies' commitment to sustainability and corporate social responsibility, offering potential investors a clear understanding of the company's business model and future prospects.
stackconf 2024 | Make You Ops-Life Easy – ansible usecases you didn´t out of ...NETWAYS
Most of you are familiar with Ansible. We are excited to show you some use cases within the “normal Ansible scope”. Using Ansible-AWX as a platform, we have streamlined tasks for admins and for developers, enabling effortless automation of routine operations. With services designed to simplify the daily work, we can all be a bit more lazy (#faul) 😉
stackconf 2024 | Rethinking Package Management in Kubernetes with Helm and Gl...NETWAYS
Package Management on Kubernetes is one of the most pressing issues in the Cloud Native community. A concept which is widely known from other ecosystems like desktop and mobile computing has not yet been realized for cloud computing. In order to solve this issue, we released our Open Source, Apache 2.0 licensed, package manager Glasskube in the beginning of 2024. Glasskube has already more than 600 stars and is part of the CNCF landscape. In this session, we will learn about the different possibilities for deploying cloud-native applications into a Kubernetes cluster and its configuration options, dependency management, upgrade possibilities, and backups. We will take a look at the inner workings of Helm from both a distributor and user perspective. How can a distributor create a package and distribute it, and how can a user install and use the packages? In addition to Helm, we will provide a brief overview of Timoni, which uses OCI images as package bundles, and compare the advantages and challenges of this approach. We will also introduce https://glasskube.dev – that is designed as a cloud-native application itself and features real dependency management, ArgoCD integration, unified updates, and a GUI. During a live demo we will try out Glasskube and explore the possibilities of using Glasskube in combination with Argo CD and also showcase the possibility to use Apples pkl configuration language to create and maintain type-safe Glasskube packages.
stackconf 2024 | IGNITE: Practical AI with Machine Learning for Observability...NETWAYS
Machine Learning for observability can be challenging, given the uniqueness of each workload. However, we can leverage ML to detect individual component anomalies, even if they are sometimes noisy/imprecise. At Netdata, we use ML models to analyze the behaviour of individual metrics. These models adapt to the specific characteristics of each metric, ensuring anomalies can be detected accurately, even in unique workloads. The power of ML becomes evident when these seemingly noisy anomalies converge across various services, serving as indicators of something exceedingly unusual. ML is an advisor, training numerous independent models for each individually collected metric to achieve anomaly detection based on recent behaviour. When multiple independent metrics exhibit anomalies simultaneously, it is usually a signal that something unusual is occurring. This approach to ML can be instrumental in uncovering malicious attacks and, in many cases, predicting combined failures across seemingly unrelated components.
This Presentations defines communication skills as the ability to exchange information via the use of language, both receptively and expressively. It examines several forms of communication based on organizational linkages and flow. Semantic concerns, emotional/psychological considerations, corporate policies, and personal attitudes can all operate as communication barriers. Effective communication is two-way, with active listening and feedback, and it is clear, concise, complete, concrete, respectful, and accurate. Good communication skills are essential for career success, dispute resolution, connection building, and increased productivity.
stackconf 2024 | Ignite DevOps Driving School – Explaining DevOps in 5 Minute...NETWAYS
DevOps is not a title, not a box to buy, nor a software to install – how can you explain DevOps in 5 minutes, e.g. as an elevator pitch riding up to the top floor with your boss?
DevOps is like a driving license for running code in production.
stackconf 2024 | Talos Linux One (Immutable) OS to Rule Them All by Pip Oomen...NETWAYS
Talos Linux is Linux designed for Kubernetes – secure, immutable, and minimal. It is based on a hardened kernel and a minimal user space, ie. no SSH, shell or console. All system management is done via a gRPC API. In this presentation the audience will be introduced to Talos Linux and be shown how to get a full-blown Kubernetes cluster up and running within minutes on a Cloud Platform, as well as on a developer workstation.
2. 2
2
● Several years ago when you had a monolithic application, it was
fairly easy to debug and diagnose since there was probably only
one service with a couple of users.
● Nowadays systems are broken up into smaller microservices
deployed in containers on top of Kubernetes in multiple clusters
across different cloud environments.
● In these kinds of distributed environments, there is a need to
observe it all, both the overall picture, and, if need be, at a more
granular level.
3. 3
3
● Observability can be roughly divided into three sub-categories:
logging, metrics, and tracing.
● Tracing is the term used to describe the activity of recording and
observing requests made by an application, and how those
requests propagate through a system.
● When systems are set up in a distributed fashion, we call this
distributed tracing as it involves observing the application and its
interactions through multiple systems.
● For example, as a developer your code probably includes multiple
functions, but you are more interested in how long the functions
take to execute and the interdependency of those functions as they
are used in the application.
4. 4
4
Tracing will give the necessary insights by
● Identifying performance and latency bottlenecks
● Finding root cause analysis after major incidents
● Determining dependencies in multi-service
architecture
● Monitoring transactions within your application
5. 5
5
● Let’s start by taking a look where it makes
sense to add tracing.
● Here we’ll get started with a small Python
application that will show a couple of
simple operations.
● We’ll then later add the code for tracing to
measure the time it takes for our code to
execute.
6. 6
6
Initially the code would look something like this
minio_client.fput_object(config["dest_bucket"],
file_path, file_path)
8. 8
8
Install OpenTelemetry…
$ pip install opentelemetry-api
$ pip install opentelemetry-sdk
and import Trace
from opentelemetry import trace
9. 9
9
Initialize the trace…
resource = Resource(attributes={
SERVICE_NAME: "my-minio"
})
provider = TracerProvider(resource=resource)
processor = BatchSpanProcessor(ConsoleSpanExporter())
provider.add_span_processor(processor)
trace.set_tracer_provider(provider)
tracer = trace.get_tracer(__name__)
and create a Span
with tracer.start_as_current_span("check if
bucket exist"):
10. 10
10
You can create additional multiple spans
with tracer.start_as_current_span("create object to add"):
with tracer.start_as_current_span("add created object to bucket"):
with tracer.start_as_current_span("fetch object from bucket"):
with tracer.start_as_current_span("remove object from bucket"):
with tracer.start_as_current_span("check if bucket exists"):
11. 11
11
Once a span is created you can add custom attributes
● Adding a function name
current_span.set_attribute("function.name", "CHECK_BUCKET")
● Adding a Span event
current_span.add_event("Checking if bucket exists.")
if not minio_client.bucket_exists(config["dest_bucket"]):
current_span.add_event("Bucket does not exist, going to create it.")
minio_client.make_bucket(config["dest_bucket"])
12. 12
12
You can create multiple span events
current_span.add_event("Test object has been placed in bucket.")
current_span.add_event("Test object has been fetched from
bucket.")
current_span.add_event("Test object has been removed from
bucket.")
current_span.add_event("Bucket exists, going to remove it.")
19. 19
19
Is tracing the only option?
● Tracing is just one of the pieces in the path
towards observability.
● Generally when incidents happen it's not just
one trace or one log or one metric that we use to
determine and resolve the issue.
● Often it is understanding the combination of
these things that is required to get to the root
cause.