MariaDB Performance Tuning and OptimizationMariaDB plc
This document discusses MariaDB performance tuning and optimization. It covers common principles like tuning from the start of application development. Specific topics discussed include server hardware, OS settings, MariaDB configuration settings like innodb_buffer_pool_size, database design best practices, and query monitoring and tuning tools. The overall goal is to efficiently use hardware resources, ensure best performance for users, and avoid outages.
Top 10 Mistakes When Migrating From Oracle to PostgreSQLJim Mlodgenski
As more and more people are moving to PostgreSQL from Oracle, a pattern of mistakes is emerging. They can be caused by the tools being used or just not understanding how PostgreSQL is different than Oracle. In this talk we will discuss the top mistakes people generally make when moving to PostgreSQL from Oracle and what the correct course of action.
[Meetup] a successful migration from elastic search to clickhouseVianney FOUCAULT
Paris Clickhouse meetup 2019: How Contentsquare successfully migrated to Clickhouse !
Discover the subtleties of a migration to Clickhouse. What to check before hand, then how to operate clickhouse in Production
Automating a PostgreSQL High Availability Architecture with AnsibleEDB
Highly available databases are essential to organizations depending on mission-critical, 24/7 access to data. Postgres is widely recognized as an excellent open-source database, with critical maturity and features that allow organizations to scale and achieve high availability.
EDB reference architectures are designed to help new and existing users alike to quickly design a deployment architecture that suits their needs. Users can use these reference architectures as a blueprint or as the basis for a design that enhances and extends the functionality and features offered.
This webinar will explore:
- Concepts of High Availability
- Quick review of EDB reference architectures
- EDB tools to create a highly available PostgreSQL architecture
- Options for automating the deployment of reference architectures
- EDB Ansible® roles helping in automating the deployment of reference architectures
- Features and capabilities of Ansible roles
- Automating the provisioning of the resources in the cloud using Terraform™
Deep dive into highly available open stack architecture openstack summit va...Arthur Berezin
This document summarizes a presentation on highly available OpenStack architecture. It discusses using Pacemaker and HAProxy for high availability enabling services. Shared databases like MariaDB Galera and message queues like RabbitMQ are made highly available. Individual OpenStack services like Keystone, Glance, Cinder, Nova, Neutron, and Horizon are made highly available through active-active clustering, load balancing, and fencing. The presentation covers topologies for controller, compute, network, and storage nodes. It provides examples of making individual services highly available and discusses ongoing work and future plans to improve high availability in OpenStack.
This document discusses Zero touch on-premise storage infrastructure with OpenStack Cinder. It describes Viettel's IT infrastructure with mixed storage resources and the challenges of managing it. The solution presented uses OpenStack Cinder and additional tools to automate the management and provisioning of block storage for bare metal servers and OpenStack instances. This removes manual configuration steps and improves performance by pre-zoning storage connections. The goal is to make volume management simpler and allow adding new storage resources without additional configuration through the unified management solution.
This document discusses how to implement an Active Session History feature in PostgreSQL similar to what is available in Oracle. It describes how the default PostgreSQL monitoring views only show current activity and lack historical blocking diagnostics. The document then explains how to write a PostgreSQL extension to sample the pg_stat_activity view periodically and store the results, similar to the pgsentinel extension. The pgsentinel extension is discussed in detail, including how it uses background workers and hooks to collect activity samples. Finally, potential future enhancements are mentioned like integrating with pg_stat_statements.
This document discusses time series data storage and querying in Prometheus. It describes how Prometheus stores time series data as chunks on disk in a key-value store format, with compression to reduce storage needs. It also explains how Prometheus handles ingesting new time series data through appending to in-memory chunks before writing to disk, and how it handles querying time series data through iterators over chunk files on disk.
MariaDB Performance Tuning and OptimizationMariaDB plc
This document discusses MariaDB performance tuning and optimization. It covers common principles like tuning from the start of application development. Specific topics discussed include server hardware, OS settings, MariaDB configuration settings like innodb_buffer_pool_size, database design best practices, and query monitoring and tuning tools. The overall goal is to efficiently use hardware resources, ensure best performance for users, and avoid outages.
Top 10 Mistakes When Migrating From Oracle to PostgreSQLJim Mlodgenski
As more and more people are moving to PostgreSQL from Oracle, a pattern of mistakes is emerging. They can be caused by the tools being used or just not understanding how PostgreSQL is different than Oracle. In this talk we will discuss the top mistakes people generally make when moving to PostgreSQL from Oracle and what the correct course of action.
[Meetup] a successful migration from elastic search to clickhouseVianney FOUCAULT
Paris Clickhouse meetup 2019: How Contentsquare successfully migrated to Clickhouse !
Discover the subtleties of a migration to Clickhouse. What to check before hand, then how to operate clickhouse in Production
Automating a PostgreSQL High Availability Architecture with AnsibleEDB
Highly available databases are essential to organizations depending on mission-critical, 24/7 access to data. Postgres is widely recognized as an excellent open-source database, with critical maturity and features that allow organizations to scale and achieve high availability.
EDB reference architectures are designed to help new and existing users alike to quickly design a deployment architecture that suits their needs. Users can use these reference architectures as a blueprint or as the basis for a design that enhances and extends the functionality and features offered.
This webinar will explore:
- Concepts of High Availability
- Quick review of EDB reference architectures
- EDB tools to create a highly available PostgreSQL architecture
- Options for automating the deployment of reference architectures
- EDB Ansible® roles helping in automating the deployment of reference architectures
- Features and capabilities of Ansible roles
- Automating the provisioning of the resources in the cloud using Terraform™
Deep dive into highly available open stack architecture openstack summit va...Arthur Berezin
This document summarizes a presentation on highly available OpenStack architecture. It discusses using Pacemaker and HAProxy for high availability enabling services. Shared databases like MariaDB Galera and message queues like RabbitMQ are made highly available. Individual OpenStack services like Keystone, Glance, Cinder, Nova, Neutron, and Horizon are made highly available through active-active clustering, load balancing, and fencing. The presentation covers topologies for controller, compute, network, and storage nodes. It provides examples of making individual services highly available and discusses ongoing work and future plans to improve high availability in OpenStack.
This document discusses Zero touch on-premise storage infrastructure with OpenStack Cinder. It describes Viettel's IT infrastructure with mixed storage resources and the challenges of managing it. The solution presented uses OpenStack Cinder and additional tools to automate the management and provisioning of block storage for bare metal servers and OpenStack instances. This removes manual configuration steps and improves performance by pre-zoning storage connections. The goal is to make volume management simpler and allow adding new storage resources without additional configuration through the unified management solution.
This document discusses how to implement an Active Session History feature in PostgreSQL similar to what is available in Oracle. It describes how the default PostgreSQL monitoring views only show current activity and lack historical blocking diagnostics. The document then explains how to write a PostgreSQL extension to sample the pg_stat_activity view periodically and store the results, similar to the pgsentinel extension. The pgsentinel extension is discussed in detail, including how it uses background workers and hooks to collect activity samples. Finally, potential future enhancements are mentioned like integrating with pg_stat_statements.
This document discusses time series data storage and querying in Prometheus. It describes how Prometheus stores time series data as chunks on disk in a key-value store format, with compression to reduce storage needs. It also explains how Prometheus handles ingesting new time series data through appending to in-memory chunks before writing to disk, and how it handles querying time series data through iterators over chunk files on disk.
Prometheus is an open-source monitoring system that collects metrics from instrumented systems and applications and allows for querying and alerting on metrics over time. It is designed to be simple to operate, scalable, and provides a powerful query language and multidimensional data model. Key features include no external dependencies, metrics collection by scraping endpoints, time-series storage, and alerting handled by the AlertManager with support for various integrations.
This document provides an overview of Docker Swarm and how to set up and use a Docker Swarm cluster. It discusses key Swarm concepts, initializing a cluster, adding nodes, deploying services, rolling updates, draining nodes, failure scenarios, and the Raft consensus algorithm used for leader election in Swarm mode. The document walks through examples of creating a Swarm, adding nodes, deploying a service, inspecting and scaling services, rolling updates, and draining nodes. It also covers failure scenarios for nodes and managers and how the Swarm handles them.
Infrastructure & System Monitoring using PrometheusMarco Pas
The document introduces infrastructure and system monitoring using Prometheus. It discusses the importance of monitoring, common things to monitor like services, applications, and OS metrics. It provides an overview of Prometheus including its main components and data format. The document demonstrates setting up Prometheus, adding host metrics using Node Exporter, configuring Grafana, monitoring Docker containers using cAdvisor, configuring alerting in Prometheus and Alertmanager, instrumenting application code, and integrating Consul for service discovery. Live code demos are provided for key concepts.
Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...Spark Summit
Come explore a feature we’ve created that is not supported out-of-the-box: the ability to add or remove nodes to always-on real time Spark Streaming jobs. Elastic Spark Streaming jobs can automatically adjust to the demands of traffic or volume. Using a set of configurable utility classes, these jobs scale down when lulls are detected and scale up when load is too high. We process multiple TB’s per day with billions of events. Our traffic pattern experiences natural peaks and valleys with the occasional sustained unexpected spike. Elastic jobs has freed us from manual intervention, given back developer time, and has made a large financial impact through maximized resource utilization.
HAProxy is a free, open-source load balancer and reverse proxy that is fast, reliable and offers high availability. It can be used to load balance HTTP and TCP-based applications. Some key features include out-of-band health checks, hot reconfiguration, and multiple load balancing algorithms. Many large companies use HAProxy to load balance their websites and applications. It runs on Linux, BSD, and Solaris and can be used to load balance applications across servers on-premises or in the cloud.
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...WSO2
The document discusses a WSO2 API Manager community call about CSV and JSON transformation in MI 4.0.0. It covers an overview of existing transformation methods like Data Mapper, PayloadFactory, and XSLT mediator. It then discusses the CSV module for transformations between CSV, JSON, and XML. It demonstrates the CSV module and use of FreeMarker templates in the PayloadFactory mediator for transformations. Examples include JSON to XML, XML to JSON, and a more complex transformation between JSON and XML.
Tuning Apache Kafka Connectors for Flink.pptxFlink Forward
Flink Forward San Francisco 2022.
In normal situations, the default Kafka consumer and producer configuration options work well. But we all know life is not all roses and rainbows and in this session we’ll explore a few knobs that can save the day in atypical scenarios. First, we'll take a detailed look at the parameters available when reading from Kafka. We’ll inspect the params helping us to spot quickly an application lock or crash, the ones that can significantly improve the performance and the ones to touch with gloves since they could cause more harm than benefit. Moreover we’ll explore the partitioning options and discuss when diverging from the default strategy is needed. Next, we’ll discuss the Kafka Sink. After browsing the available options we'll then dive deep into understanding how to approach use cases like sinking enormous records, managing spikes, and handling small but frequent updates.. If you want to understand how to make your application survive when the sky is dark, this session is for you!
by
Olena Babenko
Systems Monitoring with Prometheus (Devops Ireland April 2015)Brian Brazil
Monitoring means many things to many people. This talk looks at Systems Monitoring, that is how to keep an eye on a given system and use this as part of overall management of a system. This talk will cover Why one monitors, What to monitor, How to monitor, the general design of a monitoring system and how Prometheus is a good fit for this in terms of instrumentation, consoles, alerts, general system health and sanity.
Prometheus is a next-generation monitoring system publicly announced earlier this year, developed by companies including SoundCloud, locals Boxever and Docker. Since launch there has been wide-spread interest, and many community contributions.
For more information see http://prometheus.io or http://www.boxever.com/tag/monitoring
This document discusses using ClickHouse for experimentation and metrics at Spotify. It describes how Spotify built an experimentation platform using ClickHouse to provide teams interactive queries on granular metrics data with low latency. Key aspects include ingesting data from Google Cloud Storage to ClickHouse daily, defining metrics through a centralized catalog, and visualizing metrics and running queries using Superset connected to ClickHouse. The platform aims to reduce load on notebooks and BigQuery by serving common queries directly from ClickHouse.
CEPH DAY BERLIN - MASTERING CEPH OPERATIONS: UPMAP AND THE MGR BALANCERCeph Community
This talk will introduce the ceph-mgr balancer and the placement group ""upmap"" features added in Luminous.||Experienced Ceph operators will learn practical methods to:| - achieve perfectly uniform OSD distributions| - painlessly migrate data between servers| - easily add capacity to clusters big or small| - transparently modify CRUSH rules or tunables without fear!|
Pulsar is a distributed pub/sub messaging platform developed by Yahoo. It provides scalable messaging with persistence, ordering and delivery guarantees. Pulsar is used extensively at Yahoo, handling 100 billion messages per day across 80+ applications. It provides common use cases like messaging queues, notifications and feedback systems. Pulsar's architecture uses brokers for client interactions, Apache BookKeeper for durable storage, and Zookeeper for coordination. Future work includes adding encryption, globally consistent topics, and C++ client support.
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsJignesh Shah
This document discusses best practices for high availability (HA) and replication of PostgreSQL databases in virtualized environments. It covers enterprise needs for HA, technologies like VMware HA and replication that can provide HA, and deployment blueprints for HA, read scaling, and disaster recovery within and across datacenters. The document also discusses PostgreSQL's different replication modes and how they can be used for HA, read scaling, and disaster recovery.
How to size up an Apache Cassandra cluster (Training)DataStax Academy
This document discusses how to size a Cassandra cluster based on replication factor, data size, and performance needs. It describes that replication factor, data size, data velocity, and hardware considerations like CPU, memory, and disk type should all be examined to determine the appropriate number of nodes. The goal is to have enough nodes to store data, achieve target throughput levels, and maintain performance and availability even if nodes fail.
This talks elaborates on the Client-Server tenet of REST which focuses on separation of concerns between the client and the server. In the first third of the talk, I will talk about what the ideal client and servers are and examples of how their responsibilities. I will touch on how the word Server has lost its meaning of "serving" and the client has been overshadowed by the focus to the API. I will also compare the API to a restaurant and how its menu is the API's REST resources.
In the rest of the talk, I look at some important anti-patterns commonly seen in the industry (each with at least one example):
1) Chauvinist Server: designing the API from server's perspective failing to hide its complexity behind its API (API designed from the server's perspective)
2) Demanding client: client enforcing its special need onto the signature of the API (certain client's limitation becomes server's default behaviour)
3) Transparent Server: server exposing its internal implementation to its clients (server's underlying or private domain bleeds into the public API)
4) Presumptuous Client: The client assuming the role of a server and engage in taking responsibilities that cannot guarantee
5) Assuming Server: Server that assumes the responsibility of tailoring the response based on what it assumes client is (e.g. browser sniffing)
This document discusses high concurrency architectures at TIKI. It describes Pegasus, the highest throughput API, which uses caching, compression, and a non-blocking architecture to handle over 200k requests per minute with sub-2ms latency. It also describes Arcturus, the high concurrency inventory API, which uses an in-memory ring buffer, Kafka for ordering, and asynchronous database flushing to handle millions of inventory transactions per second with eventual consistency. Key techniques discussed include non-blocking designs, caching, compression, ordering queues, and asynchronous data replication.
Este documento presenta una introducción a Kubernetes. Explica que Kubernetes es un sistema de orquestación de contenedores que permite implementar y administrar aplicaciones en contenedores a gran escala. Describe los componentes clave de Kubernetes como el API server, scheduler, controlador y etcd. También cubre conceptos como pods, servicios y la arquitectura de un cluster de Kubernetes.
Prometheus is an open-source monitoring system that collects metrics from instrumented systems and applications and allows for querying and alerting on metrics over time. It is designed to be simple to operate, scalable, and provides a powerful query language and multidimensional data model. Key features include no external dependencies, metrics collection by scraping endpoints, time-series storage, and alerting handled by the AlertManager with support for various integrations.
This document provides an overview of Docker Swarm and how to set up and use a Docker Swarm cluster. It discusses key Swarm concepts, initializing a cluster, adding nodes, deploying services, rolling updates, draining nodes, failure scenarios, and the Raft consensus algorithm used for leader election in Swarm mode. The document walks through examples of creating a Swarm, adding nodes, deploying a service, inspecting and scaling services, rolling updates, and draining nodes. It also covers failure scenarios for nodes and managers and how the Swarm handles them.
Infrastructure & System Monitoring using PrometheusMarco Pas
The document introduces infrastructure and system monitoring using Prometheus. It discusses the importance of monitoring, common things to monitor like services, applications, and OS metrics. It provides an overview of Prometheus including its main components and data format. The document demonstrates setting up Prometheus, adding host metrics using Node Exporter, configuring Grafana, monitoring Docker containers using cAdvisor, configuring alerting in Prometheus and Alertmanager, instrumenting application code, and integrating Consul for service discovery. Live code demos are provided for key concepts.
Auto Scaling Systems With Elastic Spark Streaming: Spark Summit East talk by ...Spark Summit
Come explore a feature we’ve created that is not supported out-of-the-box: the ability to add or remove nodes to always-on real time Spark Streaming jobs. Elastic Spark Streaming jobs can automatically adjust to the demands of traffic or volume. Using a set of configurable utility classes, these jobs scale down when lulls are detected and scale up when load is too high. We process multiple TB’s per day with billions of events. Our traffic pattern experiences natural peaks and valleys with the occasional sustained unexpected spike. Elastic jobs has freed us from manual intervention, given back developer time, and has made a large financial impact through maximized resource utilization.
HAProxy is a free, open-source load balancer and reverse proxy that is fast, reliable and offers high availability. It can be used to load balance HTTP and TCP-based applications. Some key features include out-of-band health checks, hot reconfiguration, and multiple load balancing algorithms. Many large companies use HAProxy to load balance their websites and applications. It runs on Linux, BSD, and Solaris and can be used to load balance applications across servers on-premises or in the cloud.
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...WSO2
The document discusses a WSO2 API Manager community call about CSV and JSON transformation in MI 4.0.0. It covers an overview of existing transformation methods like Data Mapper, PayloadFactory, and XSLT mediator. It then discusses the CSV module for transformations between CSV, JSON, and XML. It demonstrates the CSV module and use of FreeMarker templates in the PayloadFactory mediator for transformations. Examples include JSON to XML, XML to JSON, and a more complex transformation between JSON and XML.
Tuning Apache Kafka Connectors for Flink.pptxFlink Forward
Flink Forward San Francisco 2022.
In normal situations, the default Kafka consumer and producer configuration options work well. But we all know life is not all roses and rainbows and in this session we’ll explore a few knobs that can save the day in atypical scenarios. First, we'll take a detailed look at the parameters available when reading from Kafka. We’ll inspect the params helping us to spot quickly an application lock or crash, the ones that can significantly improve the performance and the ones to touch with gloves since they could cause more harm than benefit. Moreover we’ll explore the partitioning options and discuss when diverging from the default strategy is needed. Next, we’ll discuss the Kafka Sink. After browsing the available options we'll then dive deep into understanding how to approach use cases like sinking enormous records, managing spikes, and handling small but frequent updates.. If you want to understand how to make your application survive when the sky is dark, this session is for you!
by
Olena Babenko
Systems Monitoring with Prometheus (Devops Ireland April 2015)Brian Brazil
Monitoring means many things to many people. This talk looks at Systems Monitoring, that is how to keep an eye on a given system and use this as part of overall management of a system. This talk will cover Why one monitors, What to monitor, How to monitor, the general design of a monitoring system and how Prometheus is a good fit for this in terms of instrumentation, consoles, alerts, general system health and sanity.
Prometheus is a next-generation monitoring system publicly announced earlier this year, developed by companies including SoundCloud, locals Boxever and Docker. Since launch there has been wide-spread interest, and many community contributions.
For more information see http://prometheus.io or http://www.boxever.com/tag/monitoring
This document discusses using ClickHouse for experimentation and metrics at Spotify. It describes how Spotify built an experimentation platform using ClickHouse to provide teams interactive queries on granular metrics data with low latency. Key aspects include ingesting data from Google Cloud Storage to ClickHouse daily, defining metrics through a centralized catalog, and visualizing metrics and running queries using Superset connected to ClickHouse. The platform aims to reduce load on notebooks and BigQuery by serving common queries directly from ClickHouse.
CEPH DAY BERLIN - MASTERING CEPH OPERATIONS: UPMAP AND THE MGR BALANCERCeph Community
This talk will introduce the ceph-mgr balancer and the placement group ""upmap"" features added in Luminous.||Experienced Ceph operators will learn practical methods to:| - achieve perfectly uniform OSD distributions| - painlessly migrate data between servers| - easily add capacity to clusters big or small| - transparently modify CRUSH rules or tunables without fear!|
Pulsar is a distributed pub/sub messaging platform developed by Yahoo. It provides scalable messaging with persistence, ordering and delivery guarantees. Pulsar is used extensively at Yahoo, handling 100 billion messages per day across 80+ applications. It provides common use cases like messaging queues, notifications and feedback systems. Pulsar's architecture uses brokers for client interactions, Apache BookKeeper for durable storage, and Zookeeper for coordination. Future work includes adding encryption, globally consistent topics, and C++ client support.
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsJignesh Shah
This document discusses best practices for high availability (HA) and replication of PostgreSQL databases in virtualized environments. It covers enterprise needs for HA, technologies like VMware HA and replication that can provide HA, and deployment blueprints for HA, read scaling, and disaster recovery within and across datacenters. The document also discusses PostgreSQL's different replication modes and how they can be used for HA, read scaling, and disaster recovery.
How to size up an Apache Cassandra cluster (Training)DataStax Academy
This document discusses how to size a Cassandra cluster based on replication factor, data size, and performance needs. It describes that replication factor, data size, data velocity, and hardware considerations like CPU, memory, and disk type should all be examined to determine the appropriate number of nodes. The goal is to have enough nodes to store data, achieve target throughput levels, and maintain performance and availability even if nodes fail.
This talks elaborates on the Client-Server tenet of REST which focuses on separation of concerns between the client and the server. In the first third of the talk, I will talk about what the ideal client and servers are and examples of how their responsibilities. I will touch on how the word Server has lost its meaning of "serving" and the client has been overshadowed by the focus to the API. I will also compare the API to a restaurant and how its menu is the API's REST resources.
In the rest of the talk, I look at some important anti-patterns commonly seen in the industry (each with at least one example):
1) Chauvinist Server: designing the API from server's perspective failing to hide its complexity behind its API (API designed from the server's perspective)
2) Demanding client: client enforcing its special need onto the signature of the API (certain client's limitation becomes server's default behaviour)
3) Transparent Server: server exposing its internal implementation to its clients (server's underlying or private domain bleeds into the public API)
4) Presumptuous Client: The client assuming the role of a server and engage in taking responsibilities that cannot guarantee
5) Assuming Server: Server that assumes the responsibility of tailoring the response based on what it assumes client is (e.g. browser sniffing)
This document discusses high concurrency architectures at TIKI. It describes Pegasus, the highest throughput API, which uses caching, compression, and a non-blocking architecture to handle over 200k requests per minute with sub-2ms latency. It also describes Arcturus, the high concurrency inventory API, which uses an in-memory ring buffer, Kafka for ordering, and asynchronous database flushing to handle millions of inventory transactions per second with eventual consistency. Key techniques discussed include non-blocking designs, caching, compression, ordering queues, and asynchronous data replication.
Este documento presenta una introducción a Kubernetes. Explica que Kubernetes es un sistema de orquestación de contenedores que permite implementar y administrar aplicaciones en contenedores a gran escala. Describe los componentes clave de Kubernetes como el API server, scheduler, controlador y etcd. También cubre conceptos como pods, servicios y la arquitectura de un cluster de Kubernetes.
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
A technical overview of kubernetes (in spanish). We, at Restorando, are running it in production for 6+ months.
This was presented at the AWS meet up, with some other guys talking about other options to run Docker in production on AWS. We talked about kubernetes (what we are using :))
Some animations are not correctly shown here, sorry about that.
Este documento presenta la implementación de un clúster utilizando Cluster-Knoppix. Explica cómo instalar Cluster-Knoppix en el disco duro, configurar las tarjetas de red, montar el sistema de archivos MFS, crear llaves SSH y configurar los archivos SSH. También describe herramientas de monitoreo como OpenMosixView y OpenMosixprocs, e incluye conceptos básicos sobre clústeres como alta disponibilidad, alto rendimiento y balanceo de carga. El objetivo general es permitir la reutilización de equipos
Docker: la revolución en virtualizaciónMarcelo Ochoa
Durante el último año la evolución de proyectos como LXC concluyo en el mundialmente reconocido proyecto Docker, un sistema de virtualización open source ultra delgado que permite optimizar por medio de la automatización vía scripts la provisión de ambientes para desarrollo, test y producción.
Entre las principales ventajas de este ambiente de virtualización podemos encontrar:
– Nativo en Linux, sin requerimientos de virtualización hardware, cero impacto en la performance
– Definición/Creación del entorno vía scripts
– Ultra liviano, se pueden correr hasta 2048 maquinas virtuales con un servidor Web en un simple micro-computador Raspberry PI
– Disponible en otras plataformas como Windows/Solaris
Este documento proporciona una introducción a Kubernetes. Explica que Kubernetes es un sistema de orquestación de contenedores open source que automatiza el despliegue, escalado y administración de aplicaciones en contenedores. Describe los componentes clave de Kubernetes como el master node, worker nodes, API server, scheduler y controlador. También compara Kubernetes con otras alternativas como Docker Swarm, Mesos y Nomad.
"Kubernetes" es un palabro de moda, si te has intentado meter con devops seguramente habrás jugado con Docker y ahora estarás pensando y esto de "Kubernetes"... ¿Para qué sirve?
En este webinar te resumimos en 2 horas conceptos, cuando usarlo todo aderezado con unas demos en vivo :).
Si tienes más ganas de aprender devops, en Octubre arrancamos con un Bootcamp Devops: https://lemoncode.net/bootcamp-devops#bootcamp-devops/inicio
Sobre el ponente:
Eduard Tomás
Friki standard de nivel 10. Le gusta la música heviata, los libros de fantasía (buenos, nada de R. A. Salvatore, no hagamos coñas), la ciencia ficción, los juegos de rol con papel y dados de colores y como no, el desarrollo… Tras varios años de ir dando lata y de charlar en eventos internacionales (vale, un par de veces en Andorra) fue reconocido MVP en IIS/ASP.NET por parte de Microsoft, por lo que tiene en casa una esatuilla de algo parecido al cristal con 8 anillitos muy monos. También ganó una vez unos juegos florales en su escuela, hito que no se valora lo suficiente. En su tiempo libre lo puedes encontrar programando algún que otro engendro en Plain Concepts.
Es también un famoso (al menos en su círculo de amistades) fabricante de cerveza artesana. Pero artesana de verdad, de la que se fabrica con botes de plástico y se deja olvidada en un sótano húmedo y oscuro para que fermente. De momento no consta nadie intoxicado por dicha cerveza, pero siempre tiene a punto un par de billetes para cualquier país sin tratado de extradición, por si se da el caso.
Este documento proporciona información sobre clústers de alta disponibilidad (HA). Explica que un clúster HA ofrece servicios con alta disponibilidad mediante nodos redundantes que asumen el servicio cuando falla un componente. También describe conceptos clave como failover, heartbeat, split-brain y STONITH, y soluciones de software libre como Linux-HA y sus componentes pacemaker y corosync. Finalmente, presenta cuatro prácticas para configurar un clúster HA simple, replicación MySQL, balanceadores y un clúster con Apache, PHP y Memcached
Este documento proporciona una introducción a los contenedores en diferentes sistemas operativos como Solaris, FreeBSD y Linux. Explica las características clave de los contenedores en Linux como namespaces, cgroups, capabilities y LSM. También resume diferentes runtimes de contenedores como LXC, Docker y LXD, y aborda temas de seguridad como AppArmor, SELinux y Seccomp. Por último, introduce snaps como una alternativa de empaquetado y distribución de software que ofrece confinamiento y aislamiento.
Pues volvemos de nuevo a la carga con un nuevo meetup donde os vamos a contar cómo podeis optimizar al máximo los recursos que CloudHub nos ofrece como por ejemplo:
1.- Saber dimensionar el número de operaciones por API
2.- Aplicar buenas prácticas para no saturar los recursos
3.- Aprovechar al máximo el 0.1 vCore
4.- Cuando escalar vertical y horizontalmente un API
5.- Utilizar herramientas de análisis de código como Sonar
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...Francisco Javier Barrena
Kubernetes se utiliza a lo alto y largo del ciberespacio como solución para escalar y desplegar aplicaciones basadas en la nube. Es de hecho el estándar de facto, y está implementado tanto en la nube pública (Azure, AWS, Google Cloud Platform, etc.) como en la nube privada (Rancher, OpenShift, Portainer, etc.). Los equipos de desarrollo y operaciones se han dado cuenta de las ventajas que ofrece, ¿pero se han parado a pensar en las medidas de seguridad que se deben aplicar? En un contexto en el cual las empresas se ven cada día más atacadas, la seguridad del motor que ejecuta TODAS tus aplicaciones se ha vuelto un objetivo evidente para los malos, dado que si comprometes a Kubernetes, comprometes a todo lo que corre sobre él. En esta charla veremos los riesgos específicos a los que se enfrenta Kubernetes, y qué contramedidas podemos aplicar para que nuestros Pods sean más duros que una lluvia de hachas.
Este documento presenta una introducción a Kata Containers. Explica que Kata Containers son máquinas virtuales ligeras que se comportan como contenedores. Detalla los componentes clave de Kata Containers como el runtime, proxy, agente y shim. También discute los desafíos de la comunicación entre el host y la máquina virtual invitada, y las opciones para compartir archivos como 9p y virtiofs. Finalmente, presenta hipervisores en la nube como Firecracker y formas de contribuir a la comunidad Kata Containers.
Terraspace, the definitive terraform frameworkMario IC
El documento describe Terraspace, un framework para Terraform que proporciona una estructura organizada de directorios y convenciones para configuraciones. Terraspace sigue principios como DRY y genera automáticamente proyectos, módulos y stacks de Terraform. El framework también admite características como backends múltiples, variables de entorno, secrets, pruebas y despliegue de múltiples stacks.
Introduction to Docker. A brief description about Docker: architecture, what is Docker for, how do I start using Docker, what I need, docker ecosystem...
It was exposed in first meetup Cloud Computer Meetup Spain (http://www.meetup.com/Cloud-Computing-Spain/)
Este documento describe cómo crear un cluster de 4 nodos para proporcionar alta disponibilidad. A nivel físico, enumera los componentes hardware necesarios para cada nodo, incluyendo torres, fuentes de alimentación, procesadores, placas base, discos duros y tarjetas de red, con un presupuesto total de 2,876€. A nivel software, explica que se necesita middleware como Linux para proporcionar una interfaz única y herramientas de balanceo de carga y tolerancia a fallos, así como gestionar la migración de proces
Este documento proporciona una introducción a Kubernetes para desarrolladores. Explica conceptos clave como contenedores, imágenes, pods, deployments y servicios. También cubre comandos básicos de Kubernetes como crear y eliminar deployments y servicios. Además, describe cómo configurar deployments mediante el uso de variables de entorno, configmaps y secrets.
El despliegue de aplicaciones dentro de contenedores en producción cada vez está más extendido y, de todas las opciones de orquestación, Kubernetes (K8s) es la que, indiscutiblemente, está ganando la batalla.
Pero, si soy developer, ¿esto me importa? No debemos ver los contenedores y la orquestación de estos como algo “de sistemas”. Hay distintas razones por las que (nos) conviene saber de qué va esto.
La primera razón, y posiblemente la más importante, es que el uso de contenedores nos facilita la vida durante el desarrollo y nos ayuda a mantener nuestro entorno de trabajo limpio sin tener que lidiar con la instalación de diferentes versiones del mismo software, por ejemplo. Si nuestra “aplicación” consta de diferentes servicios, tener una manera de describirlos todos y sus dependencias simplifica enormemente el arranque y parada de estos servicios, pudiendolo hacer en bloque.
También hay que tener en cuenta que para que las aplicaciones puedan aprovechar todas las ventajas que Docker y Kubernetes ofrecen deben cumplir ciertas condiciones. Como developers, debemos tenerlo en cuenta a la hora de pensar la arquitectura y diseño de estas: cómo se les provee la configuración, cómo se deben comportar ante el escalado y la convivencia de versiones,...
Sabemos que los distintos entornos, (local, test, staging, preproducción, producción, …) deben tener la misma configuración o podemos encontrarnos con sorpresas desagradables a la hora de desplegar. Esto, que históricamente ha sido una utopía, con los contenedores es posible. En esta charla veremos cómo podemos arrancar en local un entorno lo más similar a producción, arrancando Kubernetes en local.
En nuestro sistema de CI, además de por homogeneización de entornos, también podemos sacar partido de tener nuestra aplicaciones “contenerizadas”. Veremos cómo integrar cualquier sistema de CI con Kubernetes para conseguir un Continuous Deployment real. A partir de aquí, dar el salto a Continuous Delivery es prácticamente trivial con K8s!
Por si estas razones no fueran suficientes, conocer los conceptos y el entorno en los que nuestras aplicaciones se despliegan nos ayudará a comunicarnos con DevOps y atajar juntos los problemas que puedan surgir. Durante la charla veremos los conceptos básicos de K8s y cómo podemos desplegarlo en AWS con Elastic Container Service for Kubernetes (EKS) para hacer pruebas o, quién sabe, poder estar más cerca de ser un Full Cycle Developer.
Este documento describe los conceptos fundamentales de Docker, incluyendo imágenes, contenedores, volúmenes, redes y Dockerfiles. Explica cómo Docker agrega capas de sólo lectura y sistemas de archivos de copia de escritura para permitir la creación eficaz de imágenes y su compartición. También cubre estrategias como el uso de contenedores para datos, desarrollo continuo, escalamiento y adopción gradual de Docker.
Este documento describe las ventajas de la virtualización para desarrolladores, incluyendo tener entornos de desarrollo equivalentes a producción, dar soporte a múltiples plataformas, y automatizar la configuración y despliegue de aplicaciones. También introduce LXC como una opción de virtualización liviana para desarrolladores que permite ejecutar múltiples sistemas Linux aislados en un solo host con un consumo reducido de recursos.
Similar a Docker y Kubernetes, en busca de la alta disponibilidad (20)
SOPRA STERIA presenta una aplicació destinada a persones amb discapacitat intel·lectual que busca millorar la seva integració laboral i digital. Permet crear currículums de manera senzilla i intuitiva, facilitant així la seva participació en el mercat laboral i la seva independència econòmica. Aquesta iniciativa no només aborda la bretxa digital, sinó que també contribueix a reduir la desigualtat proporcionant eines accessibles i inclusives. A més, "inCV" està alineat amb els Objectius de Desenvolupament Sostenible de l'Agenda 2030, especialment els relacionats amb el treball decent i la reducció de desigualtats.
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)codesiret
Los protocolos son conjuntos de
normas para formatos de mensaje y
procedimientos que permiten a las
máquinas y los programas de aplicación
intercambiar información.
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)AbrahamCastillo42
Power point, diseñado por estudiantes de ciclo 1 arquitectura de plataformas, esta con la finalidad de dar a conocer el componente hardware llamado tarjeta de video..
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaAMADO SALVADOR
Descubre el catálogo general de la gama de productos de refrigeración del fabricante de electrodomésticos Miele, presentado por Amado Salvador distribuidor oficial Miele en Valencia. Como distribuidor oficial de electrodomésticos Miele, Amado Salvador ofrece una amplia selección de refrigeradores, congeladores y soluciones de refrigeración de alta calidad, resistencia y diseño superior de esta marca.
La gama de productos de Miele se caracteriza por su innovación tecnológica y eficiencia energética, garantizando que cada electrodoméstico no solo cumpla con las expectativas, sino que las supere. Los refrigeradores Miele están diseñados para ofrecer un rendimiento óptimo y una conservación perfecta de los alimentos, con características avanzadas como la tecnología de enfriamiento Dynamic Cooling, sistemas de almacenamiento flexible y acabados premium.
En este catálogo, encontrarás detalles sobre los distintos modelos de refrigeradores y congeladores Miele, incluyendo sus especificaciones técnicas, características destacadas y beneficios para el usuario. Amado Salvador, como distribuidor oficial de electrodomésticos Miele, garantiza que todos los productos cumplen con los más altos estándares de calidad y durabilidad.
Explora el catálogo completo y encuentra el refrigerador Miele perfecto para tu hogar con Amado Salvador, el distribuidor oficial de electrodomésticos Miele.
2. $ whoami
¡Hola! Mi nombre es Óscar de Arriba
● Desarrollo principalmente en Elixir y Ruby.
● Experiencia gestionando sistemas de alta concurrencia.
● Actualmente trabajando en Bizneo HR
● Tengo dos gatas que son monísimas
4. Introducción a los contenedores
Los contenedores son la forma de empaquetar y distribuir software que está de
moda desde hace varios años.
● Permite empaquetar un programa compilado con todo lo necesario para
funcionar.
● Tiene un toolset que facilita su uso en prácticamente cualquier plataforma.
● Añade una capa extra de seguridad.
● Chroot
5. Los contenedores no son sólo Docker
La tecnología de contenedores se basa en una serie de funcionalidades incluidas
en el kernel de Linux, que permiten crear entornos virtuales aislados.
Los contenedores son:
● Ejecución controlada del programa con recursos limitados
● Sistema de archivos virtual (layered)
● Interfaces virtuales de red
6. Los contenedores no son sólo Docker
Múltiples gestores de contenedores:
● Docker
● LXD
● rkt
El más popular es Docker: gran aceptación, toolset conocido y disponible en otras
plataformas (OSX y Windows)
8. Los contenedores en producción
Los contenedores por sí mismos no están listos para producción:
● Múltiples servicios - múltiples contenedores coordinados
● Escalabilidad
● Alta disponibilidad
Docker Compose: permite coordinar múltiples contenedores, pero no es
production ready.
10. Kubernetes
Software de orquestación de contenedores
● Liberado por Google en 2014.
● Contenedores distribuidos entre servidores.
● Puede coordinar diferentes tipos de contenedores.
● Gestión de logs y métricas de servicios.
● Todo Kubernetes puede ejecutarse desde contenedores Docker.
Hay alternativas: Docker Swarm, Rancher, Apache Mesos...
11. Kubernetes: Estructura
Un cluster de Kubernetes está compuesto
por varios servidores:
● Nodo(s) Master: controla la ejecución
de procesos y la configuración.
● Nodos Worker: ejecuta los
contenedores y se encargan de
recibir toda la carga y el tráfico.
12. Entre todos los nodos forman una red privada virtual para comunicar todos los
contenedores entre sí.
Los contenedores se despliegan definiendo deployments:
● Múltiples contenedores formando un pod.
● Todos los servicios expuestos por los contenedores de un pod se exponen en
una misma IP interna dentro del cluster.
● Puede haber varias copias (replicas) de un pod en diferentes nodos físicos.
Kubernetes: Organización
13.
14. Para exponer puertos se definen Servicios:
● Se define un nombre del servicio, los pods que tienen el servicio y en qué
puertos.
● Permite mapear esos puertos a Internet
● Cada servicio genera un nombre de dominio interno para acceder a él:
○ my-svc.default.svc.cluster.local A 10.0.2.48, 10.0.3.25, 10.0.4.67
Hay otros elementos dentro de un cluster de Kubernetes (como los Configmap, los
Secrets).
Kubernetes: Organización
15. Kubernetes: Servicios internos
● kubelet: servicio en cada worker que controla los contenedores que corren en
ese nodo.
● kube-proxy: en cada nodo worker, hace redirección de puertos entre la red y
los contenedores en base a los servicios definidos.
● kube-dns: servicio DNS interno para descubrir las IPs internas de los
contenedores.
● API Server: servicio que corre en los nodos master y se encarga de la gestión
de:
○ salud, disponibilidad y reparto de carga de los nodos
○ gestión por parte de los administradores del cluster
● etcd: base de datos clave valor de alta disponibilidad para almacenar toda la
configuración y el estado del cluster.
18. Alta disponibilidad: definición
Alta disponibilidad (HA): característica de un sistema que intenta asegurar el nivel
de rendimiento operacional acordado (generalmente el uptime) por un periodo
superior al normal.
https://en.wikipedia.org/wiki/High_availability
20. Alta disponibilidad del 100%, ¿por qué no?
Siempre habrá comunicaciones o procesos que estén en progreso durante el fallo:
● Una petición web que esté ejecutándose cuando se caiga el servidor.
● Una conexión streaming cuando se cae el enlace de fibra.
● Un proceso en background mientras se produce un kernel panic.
Todos estos casos acabarían con una falta de disponibilidad, aunque sólo afecte al
usuario/proceso en cuestión y se recupere con la siguiente petición/ejecución.
21. Alta disponibilidad: objetivos y soluciones
● Objetivos:
○ Poder cumplir los objetivos marcados (n nueves).
○ Que el sistema responda en el tiempo esperado sea cual sea su carga.
● Soluciones:
○ Monitorización
○ Escalado
25. HA con Kubernetes
Algunos comportamientos vienen por defecto:
● Si un proceso se muere, el contenedor muere y K8s lo reinicia.
● Si un nodo worker desaparece o se vuelve unhealthy, K8s arranca los
contenedores que tenía en otro nodo para continuar aguantando el tráfico.
● El tráfico se reparte entre todos los nodos aunque sólo entre por uno de ellos.
● Monitorización de uso de recursos (CPU y RAM) de contenedores.
26. HA con Kubernetes: despliegues
Los despliegues en Kubernetes se puede realizar usando rolling deployments:
● Conviven contenedores con la versión nueva y la vieja al mismo tiempo.
● Se van renovando poco a poco, apagándose de forma controlada y sin tráfico.
● Puede tener inconvenientes:
○ Migraciones
○ Software clusterizado
27. HA con Kubernetes: Mejoras
Podemos comprobar cuándo un contenedor está en funcionamiento
● Hay dos tipos de pruebas:
○ Readiness probe: prueba a realizar para saber cuándo el contenedor está listo tras arrancar.
○ Liveness probe: prueba a realizar periódicamente para ver si el contenedor sigue en activo.
● Pueden ser de múltiples tipos:
○ Que un puerto TCP esté abierto
○ Que una petición HTTP responda con un status code concreto.
● Si un contenedor tarda mucho en estar listo, o deja de responder a los
liveness probes, se reinicia.
28. HA con Kubernetes: Mejoras
Podemos limitar el uso de recursos por contenedor
● Se mide en Megabytes de RAM y en miliCPUs (100% de un core == 1000m)
● Se asignan “tramos” de recursos (el contenedor empieza con un tramo) y un
límite máximo:
○ Incrementos de 64 Mb de RAM y 100m
○ Límite de 512 Mb de RAM y 2000m
● Si el contenedor llega al límite y sigue pidiendo recursos de forma sostenida,
se reinicia.
29. HA con Kubernetes: Mejoras
También podemos autoescalar los contenedores:
● Podemos definir escalados en base a métricas del sistema (número de
requests, uso de CPU, uso de RAM, etc…).
● El escalado tiene un número mínimo y máximo de réplicas.
○ el número de réplicas es en global al cluster, no por nodo
● Hay un tiempo entre escalados y desescalados para evitar el desajuste de
re-arrancar contenedores demasiado rápido.
30. HA con Kubernetes: Mejoras
Hasta ahora hemos hablado de escalar contenedores, pero el número de recursos
disponibles es acotado: sólo tenemos x nodos worker.
Algunos proveedores (como Google Cloud) permiten el autoescalado de nodos
worker para soportar situaciones como un aumento de RAM y de número de
réplicas por encima de las capacidades del cluster.
32. HA con Kubernetes: Resumen
● Podemos ejecutar nuestros software en un entorno controlado.
● Podemos hacer que nuestro software tenga más capacidad escalándolo
horizontalmente (más réplicas).
● Podemos limitar su uso de recursos (evitar memory leaks).
● Si nuestro software falla, el contenedor se reinicia sólo.
34. Cosas que sí hay que hacer
● Conocer nuestro software: recursos que necesita, servicios de los que
depende, rangos de funcionamiento aceptables.
● Buscar puntos de fallo y situaciones límite.
● Limitar el tiempo de caída estableciendo protecciones como el límite de
recursos o las liveness probes.
● Prepararse para picos de tráfico con autoescalado de contenedores y/o
nodos.
35. Cosas que sí hay que hacer
Y lo más importante, asumir que nuestro sistema en algún momento se va
a caer o va a fallar porque los sistemas no son perfectos.
Y lo mejor que podemos hacer es intentar ser proactivos para que esto ocurra
durante el menor tiempo posible.
37. Todo lo que quisiste saber de
Kubernetes y nunca te han contado
38. Desastres en Kubernetes
● ¿Qué pasa exáctamente si se cae un nodo worker?
○ Hay un tiempo de espera hasta dar el nodo por perdido.
○ Cuando se pierde un nodo, se deja de dirigir tráfico a él y se arrancan sus contenedores en
otros nodos.
● ¿Qué pasa exáctamente si se cae el nodo master?
○ Los workers siguen funcionando con sus contenedores, aunque la capacidad del clúster se
degrada: se pierde la capacidad de descubrir en qué nodos tenemos qué contenedores.
○ Cada nodo sigue pudiendo atender las peticiones de los contenedores que tiene o de otros
que conoce de antes de la caída.
○ Los comando de administración no funcionan.
○ El autoescalado deja de funcionar.
○ Alguna alarma debería sonar.
39. Evitar desastres en Kubernetes
● ¿Puedo tener tener alta disponibilidad del nodo master?
○ Sí, levantando varios nodos master. Pero requiere ciertas cosas:
■ Kubernetes usa una cadena de certificados autogenerados, que deben ser iguales en
todos los nodos master.
■ Los workers deben conocer todos los nodos master para poder comunicarse con uno
que esté sano (un Load Balancer serviría).
○ Todos los nodos master deben apuntar al mismo etcd.
40.
41. WTF: ¿qué era etcd?
Etcd es una base de datos clave-valor en la que kubernetes guarda todo:
● Estado de los nodos
● Contenedores en cada nodo
● Configuración de deployments
● Estado de autoescalados
● Eventos que han ocurrido en el clúster
● Tokens, claves y secretos
42. Evitar desastres en Kubernetes
● ¿Es importante etcd? ¿Puedo tener alta disponibilidad?
○ Es tan importante, que si se pierde todo el cluster dejará de funcionar y toda la configuración
tendrá que ser regenerada.
○ etcd está preparado para tener alta disponibilidad, incluso para soportar particiones de red.
○ Podemos y debemos tener alta disponibilidad y backups periódicos de etcd.
○ https://coreos.com/etcd/docs/latest/v2/clustering.html
43. ¿Puede alguien hacerme esto?
La mayoría de entornos gestionados de Kubernetes (Google Cloud, AWS,
DigitalOcean, etc…) se encargan de la gestión y administración de los nodos (tanto
workers como masters), por lo que todo esto está cubierto.