Production Readiness Strategies in an Automated WorldSean Chittenden
This document discusses strategies for making a software service production ready. It begins by outlining the typical software life cycle from idea to production. It then discusses some of the organizational prerequisites needed for a production service, including standardized terminology, naming conventions, and rules for incident response. The document also provides examples of what to include in a production readiness checklist, such as an overview of the service, its consumers, release process, health metrics, and quality metrics.
Modern tooling to assist with developing applications on FreeBSDSean Chittenden
Discuss a workflow and the tooling for FreeBSD engineers to develop locally on their laptop (OS-X, Windows, or FreeBSD), and push applications to bare metal or the cloud. The tooling required to provide good automation from a developer laptop to production takes time to evolve, however this lecture will jumpstart a series of best practices for FreeBSD engineers who want to see their business applications run on FreeBSD.
Description of some of the elements that go in to creating a PostgreSQL-as-a-Service for organizations with many teams and a diverse ecosystem of applications and teams.
The document discusses using Vagrant and cloud platforms like GCP to develop and deploy applications from development to production. It introduces Vagrant as a tool for setting up and managing development environments and shows how to use Vagrant with FreeBSD. It then demonstrates provisioning a FreeBSD VM on GCP and discusses identity and access management on the cloud platform. The document aims to provide an overview of using Vagrant for development and cloud platforms like GCP for production deployments.
PostgreSQL High-Availability and Geographic Locality using consulSean Chittenden
Virtual IPs or floating IPs have long been the workhorse mechanism for providing high-availability for database systems, however floating IP addresses have several limitations that make it problematic in modern data centers and cloud environments, notably that it requires all members be in the same Layer-2 domain. consul is a strongly consistent way of providing high-availability services in Layer-3 environments and provides fail-over across different geographic regions. In this talk we will discuss the benefits, setup, and use of consul for fail-over of PostgreSQL, both in a local data center scenario and a geographic redundancy scenario where databases are split across multiple data centers.
In a dynamic infrastructure world, let's stop pretending credentials aren't public knowledge in an organization and just assume that they have already been leaked, now what?
This document discusses codifying PostgreSQL database schemas using Terraform. It begins by explaining how to bootstrap a database by hand and then introduces Terraform as a way to automate and version the database schema. Key concepts covered include using Terraform providers and resources to define database schemas, importing existing databases into Terraform, and iterating on schema designs in a declarative way. The document aims to help users avoid issues with Terraform by following best practices.
Regex Considered Harmful: Use Rosie Pattern Language InsteadAll Things Open
The document discusses using the Rosie Pattern Language (RPL) instead of regular expressions for parsing log and data files. RPL aims to address issues with regex like readability, maintainability, and performance. It describes how RPL is designed like a programming language with common patterns. RPL patterns are loaded into the Rosie Pattern Engine which can parse files and annotate text with semantic tags.
Production Readiness Strategies in an Automated WorldSean Chittenden
This document discusses strategies for making a software service production ready. It begins by outlining the typical software life cycle from idea to production. It then discusses some of the organizational prerequisites needed for a production service, including standardized terminology, naming conventions, and rules for incident response. The document also provides examples of what to include in a production readiness checklist, such as an overview of the service, its consumers, release process, health metrics, and quality metrics.
Modern tooling to assist with developing applications on FreeBSDSean Chittenden
Discuss a workflow and the tooling for FreeBSD engineers to develop locally on their laptop (OS-X, Windows, or FreeBSD), and push applications to bare metal or the cloud. The tooling required to provide good automation from a developer laptop to production takes time to evolve, however this lecture will jumpstart a series of best practices for FreeBSD engineers who want to see their business applications run on FreeBSD.
Description of some of the elements that go in to creating a PostgreSQL-as-a-Service for organizations with many teams and a diverse ecosystem of applications and teams.
The document discusses using Vagrant and cloud platforms like GCP to develop and deploy applications from development to production. It introduces Vagrant as a tool for setting up and managing development environments and shows how to use Vagrant with FreeBSD. It then demonstrates provisioning a FreeBSD VM on GCP and discusses identity and access management on the cloud platform. The document aims to provide an overview of using Vagrant for development and cloud platforms like GCP for production deployments.
PostgreSQL High-Availability and Geographic Locality using consulSean Chittenden
Virtual IPs or floating IPs have long been the workhorse mechanism for providing high-availability for database systems, however floating IP addresses have several limitations that make it problematic in modern data centers and cloud environments, notably that it requires all members be in the same Layer-2 domain. consul is a strongly consistent way of providing high-availability services in Layer-3 environments and provides fail-over across different geographic regions. In this talk we will discuss the benefits, setup, and use of consul for fail-over of PostgreSQL, both in a local data center scenario and a geographic redundancy scenario where databases are split across multiple data centers.
In a dynamic infrastructure world, let's stop pretending credentials aren't public knowledge in an organization and just assume that they have already been leaked, now what?
This document discusses codifying PostgreSQL database schemas using Terraform. It begins by explaining how to bootstrap a database by hand and then introduces Terraform as a way to automate and version the database schema. Key concepts covered include using Terraform providers and resources to define database schemas, importing existing databases into Terraform, and iterating on schema designs in a declarative way. The document aims to help users avoid issues with Terraform by following best practices.
Regex Considered Harmful: Use Rosie Pattern Language InsteadAll Things Open
The document discusses using the Rosie Pattern Language (RPL) instead of regular expressions for parsing log and data files. RPL aims to address issues with regex like readability, maintainability, and performance. It describes how RPL is designed like a programming language with common patterns. RPL patterns are loaded into the Rosie Pattern Engine which can parse files and annotate text with semantic tags.
You have amazing content and you want to get it to your users as fast as possible. In today’s industry, milliseconds matter and slow websites will never keep up. You can use a CDN but they are expensive, make you dependent on a third party to deliver your content, and can be notoriously inflexible. Enter Varnish, a powerful, open-source caching reverse proxy that lives in your network and lets you take control of how your content is managed and delivered. We’ll discuss how to install and configure Varnish in front of a typical web application, how to handle sessions and security, and how you can customize Varnish to your unique needs. This session will teach you how Varnish can help you give your users a better experience while saving your company and clients money at the same time.
Herd your chickens: Ansible for DB2 configuration managementFrederik Engelen
This document provides an overview of using Ansible for configuration management and summarizes a presentation on using it to manage DB2 configurations. It describes how Ansible uses inventory files and variables to define environments and target hosts, playbooks to automate configuration tasks, and modules to implement specific changes. The key benefits of Ansible noted are that it is agentless, uses simple text files for definitions, and has a low learning curve compared to other configuration management tools.
Integrating icinga2 and the HashiCorp suiteBram Vogelaar
This document discusses integrating various HashiCorp tools like Packer, Vagrant, Terraform, Consul, and Vault with Icinga monitoring. Packer is used to build machine images while Vagrant provisions virtual machines. Terraform models infrastructure as code and can integrate with Icinga to provision hosts, checks, and notifications. Consul provides service discovery and can trigger Icinga config deployment. Vault manages secrets and certificates that could be used for authentication in Icinga. The presenter demonstrates using these tools together for infrastructure as code and monitoring workflows.
This document proposes using RPM packages to deploy Java applications to Red Hat Linux systems in a more automated and standardized way. Currently, deployment is a manual multi-step process that is slow, error-prone, and requires detailed application knowledge. The proposal suggests using Maven and Jenkins to build Java applications into RPM packages. These packages can then be installed, upgraded, and rolled back easily using common Linux tools like YUM. This approach simplifies deployment, improves speed, enables easy auditing of versions, and allows for faster rollbacks compared to the current process.
IT Infrastructure Through The Public Network Challenges And SolutionsMartin Jackson
Identifying the challenges that companies face when they wish to adopt Infrastructure as a Service like those from Amazon and Rackspace and possible solutions to those problems. This presentation seeks to provide insight and possible solutions, covering the areas of security, availability, cloud standards, interoperability, vendor lock in and performance management.
This document provides an introduction to using Ansible in a top-down approach. It discusses using Ansible to provision infrastructure including load balancers, application servers, and databases. It covers using ad-hoc commands and playbooks to configure systems. Playbooks can target groups of hosts, apply roles to automate common tasks, and allow variables to customize configurations. Selective execution allows running only certain parts of a playbook. Overall the document demonstrates how Ansible can be used to deploy and manage infrastructure and applications in a centralized, automated way.
LinkRest (http://linkrest.io) is a small HTTP-based protocol and a Java framework that rethinks how REST APIs should be built and consumed. It turns each API endpoint into a graph query engine, giving the client full control over the shape and contents of the requested data sets, while the server controls query strategy and security. The talk will start with the easy parts – how to reuse an existing Apache Cayenne ORM model for the REST service and write simple Java one-liners to get it up and running. Then we will delve into alternative backends, graph access security and parallel data processing.
10 Million hits a day with WordPress using a $15 VPSPaolo Tonin
This document provides tips and best practices for optimizing a WordPress site hosted on a VPS. It recommends switching from the default PHP implementation to PHP-FPM to improve performance. It also recommends replacing the default web server with Nginx, and describes various Nginx configuration options to optimize caching, compression, and resource usage. These include enabling OPcache and using Nginx as a reverse proxy for caching and serving static files. The document also covers using Nginx fastcgi caching to cache dynamic PHP pages from WordPress for better performance.
All Things Open 2014 - Day 2
Thursday, October 23rd, 2014
Doug Turnbull
Search & Big Data Architect for OpenSource Connections
Databases
Stop Worrying & Love the SQL - A Case Study
The document discusses using confd to configure container configuration files at runtime. Confd uses templates and data sources like environment variables to render configuration files locally. It provides an example of using confd to generate an Nginx configuration file from templates and environment variables. The document argues that confd provides a simple way to configure files when bootstrapping containers compared to other methods like data volumes or external systems that add more complexity.
Running High Performance and Fault Tolerant Elasticsearch Clusters on DockerSematext Group, Inc.
Sematext engineer Rafal Kuc (@kucrafal) walks through the details of running high-performance, fault tolerant Elasticsearch clusters on Docker. Topics include: Containers vs. Virtual Machines, running the official Elasticsearch container, container constraints, good network practices, dealing with storage, data-only Docker volumes, scaling, time-based data, multiple tiers and tenants, indexing with and without routing, querying with and without routing, routing vs. no routing, and monitoring. Talk was delivered at DevOps Days Warsaw 2015.
PyCon US 2012 - Web Server Bottlenecks and Performance TuningGraham Dumpleton
The document discusses web server performance bottlenecks and tuning. It notes that the majority of end-user response time is spent on the frontend. It then examines factors that affect web server performance like memory usage, processes vs threads, client impacts, and application requirements. Specific techniques are suggested for improving performance like using processes over threads, isolating slow clients with Nginx, preloading applications, and monitoring servers.
Deploying VMware vCloud Hybrid Service with Puppet - PuppetConf 2013Puppet
The document discusses automating the deployment of a VMware vCloud Hybrid Service (vCHS) using Puppet. It describes using Puppet to deploy and configure the various vCHS components through their respective APIs, including vCenter, vShield, and vCloud Director. It addresses challenges in automating these components and proposes treating everything as a native Puppet resource, with a "transport" resource to handle connecting to the different component APIs over SSH or REST.
This document summarizes a talk given at ApacheCon 2015 about replacing Squid with ATS (Apache Traffic Server) as the proxy server at Yahoo. It discusses the history of using Squid at Yahoo, limitations with Squid that prompted the switch to ATS, key differences in configuration between the two systems, examples of forwarding and reverse proxy use cases, and learnings around managing open source projects and migration testing.
The document describes Yahoo's failsafe mechanism for its homepage using Apache Storm and Apache Traffic Server. The key points are:
1. The failsafe architecture uses AWS components like EC2, ELB, S3 and autoscaling to serve traffic from failsafe servers if the primary servers fail.
2. Apache Traffic Server is used as a caching proxy between the user and origin servers. The "Escalate" plugin in ATS fetches content from failsafe servers if the origin server response is not good.
3. Apache Storm Crawler crawls content for different devices and maps URLs to the failsafe domain for storage in S3 with query parameters in the path. This provides more relevant fail
ZFS provides several advantages over traditional block-based filesystems when used with PostgreSQL, including preventing bitrot, improved compression ratios, and write locality. ZFS uses copy-on-write and transactional semantics to ensure data integrity and allow for snapshots and clones. Proper configuration such as enabling compression and using ZFS features like intent logging can optimize performance when used with PostgreSQL's workloads.
The document discusses Porter's three generic strategies of cost leadership, differentiation, and focus. It describes how cost leadership can be achieved through high asset turnover, low operating costs, and supply chain control. Examples provided are Air Deccan and Tata Nano. Differentiation is achieved through unique product features that customers perceive as worth a premium price. Examples include Hero Honda and Apple. Focus strategy targets a niche market segment through either low costs or differentiation tailored to that segment's needs, like BMW targeting a luxury niche.
You have amazing content and you want to get it to your users as fast as possible. In today’s industry, milliseconds matter and slow websites will never keep up. You can use a CDN but they are expensive, make you dependent on a third party to deliver your content, and can be notoriously inflexible. Enter Varnish, a powerful, open-source caching reverse proxy that lives in your network and lets you take control of how your content is managed and delivered. We’ll discuss how to install and configure Varnish in front of a typical web application, how to handle sessions and security, and how you can customize Varnish to your unique needs. This session will teach you how Varnish can help you give your users a better experience while saving your company and clients money at the same time.
Herd your chickens: Ansible for DB2 configuration managementFrederik Engelen
This document provides an overview of using Ansible for configuration management and summarizes a presentation on using it to manage DB2 configurations. It describes how Ansible uses inventory files and variables to define environments and target hosts, playbooks to automate configuration tasks, and modules to implement specific changes. The key benefits of Ansible noted are that it is agentless, uses simple text files for definitions, and has a low learning curve compared to other configuration management tools.
Integrating icinga2 and the HashiCorp suiteBram Vogelaar
This document discusses integrating various HashiCorp tools like Packer, Vagrant, Terraform, Consul, and Vault with Icinga monitoring. Packer is used to build machine images while Vagrant provisions virtual machines. Terraform models infrastructure as code and can integrate with Icinga to provision hosts, checks, and notifications. Consul provides service discovery and can trigger Icinga config deployment. Vault manages secrets and certificates that could be used for authentication in Icinga. The presenter demonstrates using these tools together for infrastructure as code and monitoring workflows.
This document proposes using RPM packages to deploy Java applications to Red Hat Linux systems in a more automated and standardized way. Currently, deployment is a manual multi-step process that is slow, error-prone, and requires detailed application knowledge. The proposal suggests using Maven and Jenkins to build Java applications into RPM packages. These packages can then be installed, upgraded, and rolled back easily using common Linux tools like YUM. This approach simplifies deployment, improves speed, enables easy auditing of versions, and allows for faster rollbacks compared to the current process.
IT Infrastructure Through The Public Network Challenges And SolutionsMartin Jackson
Identifying the challenges that companies face when they wish to adopt Infrastructure as a Service like those from Amazon and Rackspace and possible solutions to those problems. This presentation seeks to provide insight and possible solutions, covering the areas of security, availability, cloud standards, interoperability, vendor lock in and performance management.
This document provides an introduction to using Ansible in a top-down approach. It discusses using Ansible to provision infrastructure including load balancers, application servers, and databases. It covers using ad-hoc commands and playbooks to configure systems. Playbooks can target groups of hosts, apply roles to automate common tasks, and allow variables to customize configurations. Selective execution allows running only certain parts of a playbook. Overall the document demonstrates how Ansible can be used to deploy and manage infrastructure and applications in a centralized, automated way.
LinkRest (http://linkrest.io) is a small HTTP-based protocol and a Java framework that rethinks how REST APIs should be built and consumed. It turns each API endpoint into a graph query engine, giving the client full control over the shape and contents of the requested data sets, while the server controls query strategy and security. The talk will start with the easy parts – how to reuse an existing Apache Cayenne ORM model for the REST service and write simple Java one-liners to get it up and running. Then we will delve into alternative backends, graph access security and parallel data processing.
10 Million hits a day with WordPress using a $15 VPSPaolo Tonin
This document provides tips and best practices for optimizing a WordPress site hosted on a VPS. It recommends switching from the default PHP implementation to PHP-FPM to improve performance. It also recommends replacing the default web server with Nginx, and describes various Nginx configuration options to optimize caching, compression, and resource usage. These include enabling OPcache and using Nginx as a reverse proxy for caching and serving static files. The document also covers using Nginx fastcgi caching to cache dynamic PHP pages from WordPress for better performance.
All Things Open 2014 - Day 2
Thursday, October 23rd, 2014
Doug Turnbull
Search & Big Data Architect for OpenSource Connections
Databases
Stop Worrying & Love the SQL - A Case Study
The document discusses using confd to configure container configuration files at runtime. Confd uses templates and data sources like environment variables to render configuration files locally. It provides an example of using confd to generate an Nginx configuration file from templates and environment variables. The document argues that confd provides a simple way to configure files when bootstrapping containers compared to other methods like data volumes or external systems that add more complexity.
Running High Performance and Fault Tolerant Elasticsearch Clusters on DockerSematext Group, Inc.
Sematext engineer Rafal Kuc (@kucrafal) walks through the details of running high-performance, fault tolerant Elasticsearch clusters on Docker. Topics include: Containers vs. Virtual Machines, running the official Elasticsearch container, container constraints, good network practices, dealing with storage, data-only Docker volumes, scaling, time-based data, multiple tiers and tenants, indexing with and without routing, querying with and without routing, routing vs. no routing, and monitoring. Talk was delivered at DevOps Days Warsaw 2015.
PyCon US 2012 - Web Server Bottlenecks and Performance TuningGraham Dumpleton
The document discusses web server performance bottlenecks and tuning. It notes that the majority of end-user response time is spent on the frontend. It then examines factors that affect web server performance like memory usage, processes vs threads, client impacts, and application requirements. Specific techniques are suggested for improving performance like using processes over threads, isolating slow clients with Nginx, preloading applications, and monitoring servers.
Deploying VMware vCloud Hybrid Service with Puppet - PuppetConf 2013Puppet
The document discusses automating the deployment of a VMware vCloud Hybrid Service (vCHS) using Puppet. It describes using Puppet to deploy and configure the various vCHS components through their respective APIs, including vCenter, vShield, and vCloud Director. It addresses challenges in automating these components and proposes treating everything as a native Puppet resource, with a "transport" resource to handle connecting to the different component APIs over SSH or REST.
This document summarizes a talk given at ApacheCon 2015 about replacing Squid with ATS (Apache Traffic Server) as the proxy server at Yahoo. It discusses the history of using Squid at Yahoo, limitations with Squid that prompted the switch to ATS, key differences in configuration between the two systems, examples of forwarding and reverse proxy use cases, and learnings around managing open source projects and migration testing.
The document describes Yahoo's failsafe mechanism for its homepage using Apache Storm and Apache Traffic Server. The key points are:
1. The failsafe architecture uses AWS components like EC2, ELB, S3 and autoscaling to serve traffic from failsafe servers if the primary servers fail.
2. Apache Traffic Server is used as a caching proxy between the user and origin servers. The "Escalate" plugin in ATS fetches content from failsafe servers if the origin server response is not good.
3. Apache Storm Crawler crawls content for different devices and maps URLs to the failsafe domain for storage in S3 with query parameters in the path. This provides more relevant fail
ZFS provides several advantages over traditional block-based filesystems when used with PostgreSQL, including preventing bitrot, improved compression ratios, and write locality. ZFS uses copy-on-write and transactional semantics to ensure data integrity and allow for snapshots and clones. Proper configuration such as enabling compression and using ZFS features like intent logging can optimize performance when used with PostgreSQL's workloads.
The document discusses Porter's three generic strategies of cost leadership, differentiation, and focus. It describes how cost leadership can be achieved through high asset turnover, low operating costs, and supply chain control. Examples provided are Air Deccan and Tata Nano. Differentiation is achieved through unique product features that customers perceive as worth a premium price. Examples include Hero Honda and Apple. Focus strategy targets a niche market segment through either low costs or differentiation tailored to that segment's needs, like BMW targeting a luxury niche.
Strategic Incrementalism & Resource Targeting for the Revitalization of Legac...greaterohio
This document discusses strategies for targeting resources to revitalize neighborhoods in legacy cities. It recommends using strategic incrementalism and data-driven approaches to determine the appropriate mix of demolition and preservation of vacant properties. Key factors to consider when identifying target areas and buildings for intervention include neighborhood conditions, assets, and stability. Criteria for prioritizing demolition or rehabilitation include the quality, condition, nuisance impact, contribution to neighborhood character, and reuse potential of specific buildings. Focusing resources in a strategic, incremental manner can catalyze further redevelopment in legacy cities.
This document discusses the concept of strategic drift, where companies base their development more on past practices than adapting to changes in the external environment. This can lead them to fall out of alignment with their industry over time. Strategic drift occurs through incremental changes that fail to keep pace with the accelerating changes around them. Companies can fall into strategic drift for reasons like relying on familiar strategies, rigid capabilities, strong relationships, and lagged performance effects that make major changes difficult to recognize. The options when strategic drift occurs are transformational change to realign the strategy or potential decline.
Gophers Riding Elephants: Writing PostgreSQL tools in GoAJ Bahnken
This talk will start with an overview of Go, then dive into some examples of using it to work with Postgres. We'll show basics like running queries, then demonstrate how Go makes difficult things easy, such as inspecting Postgres's TCP wire protocol and providing retry mechanisms and monitoring for restores (including fun stories, tips and tricks).
Join us and see why Go - with it's powerful concurrency primitives and unbeatable performance - can be one of the most powerful tools in your toolbox.
Strategic drift occurs when organizations fail to adapt to changes in their environment over an extended period of time, leading to their gradual decline. It is caused primarily by an organizational culture that focuses too much on past strategies and traditions instead of evolving with new conditions. Companies can avoid strategic drift by cultivating a culture of proactivity, innovation, and constant environmental monitoring to allow timely adjustments to strategic plans. Failing to do so led to the downfalls of companies like Nokia and MySpace, which lost dominance as new competitors emerged to meet changing customer needs that they did not address.
An overview of how change works, and what can be done to accelerate transformational change in an industry. Created for the Openlab Workshop, December 1-2, 2015 in Washington, DC.
SM Lecture Nine (B) - Strategy Development ProcessStratMgt Advisor
This document discusses strategy development processes in organizations. It explains that strategy can be either intended, deliberately planned, or emergent, developing gradually through decisions over time. Intended strategy may result from strategic planning, leadership vision, or external imposition. Emergent strategy can arise through logical incrementalism, political bargaining, prior decisions, or organizational systems. Managing strategy development involves addressing multiple processes, different contexts, and integrating intended and emergent approaches. The document provides learning objectives and summarizes various strategy formulation models and challenges.
This document outlines several theoretical approaches to public policy:
1. Institutional theory views public policy as an output of government institutions which give policies legitimacy.
2. Rational theory holds that policymakers should select the policy that maximizes social benefits over costs.
3. The garbage can model critiques rational theory, arguing that organizations function by problems and solutions intersecting unpredictably.
4. Incremental theory sees policy as continuing previous approaches with minimal changes. Other theories discussed include mixed scanning, interest groups, elites, game theory, and public choice. Theories help simplify reality and direct research, though most real policies combine elements of multiple theories.
The document discusses the benefits of exercise for both physical and mental health. It notes that regular exercise can reduce the risk of diseases like heart disease and diabetes, improve mood, and reduce feelings of stress and anxiety. The document recommends that adults get at least 150 minutes of moderate exercise or 75 minutes of vigorous exercise per week to gain these benefits.
Watch this succinct guide to the benefits of modern scheduling and how HashiCorp Nomad can help you move your organization toward more modern deployment patterns.
thredUP team shares key learnings from after-migration processes. We tell you about what technologies and solutions worked best for us and where we spent time troubleshooting and improving. In particular we have focused on development and staging experience, user authentication, cloud-native CI pipelines, applications telemetry and service mesh. We also share our experience with Kubernetes security hardening, autoscaling and tell you about a new service creation within our infrastructure.
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
HA websites are where the rubber meets the road - at 200km/h. Traditional separation of dev and ops just doesn't cut it.
Everything is related to everything. Code relies on performant and resilient infrastructure, but highly performant infrastructure will only get a poorly written application so far. Worse still, root cause analysis in HA sites will more often than not identify problems that don't clearly belong to either devs or ops.
The two options are collaborate or die.
This talk will introduce 3 core principles for improving collaboration between operations and development teams: consistency, repeatability, and visibility. These principles will be investigated with real world case studies and associated technologies audience members can start using now. In particular, there will be a focus on:
- fast provisioning of test environments with configuration management
- reliable and repeatable automated deployments
- application and infrastructure visibility with statistics collection, logging, and visualisation
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on KubernetesDataWorks Summit
Apache Druid supports auto-scaling of Middle Manager nodes to handle changes in data ingestion load. On Kubernetes, this can be implemented using Horizontal Pod Autoscaling based on custom metrics exposed from the Druid Overlord process, such as the number of pending/running tasks and expected number of workers. The autoscaler scales the number of Middle Manager pods between minimum and maximum thresholds to maintain a target average load percentage.
This document provides an overview and agenda for a presentation on Nomad, an open source cluster scheduler created by HashiCorp. The presentation covers Nomad fundamentals like architecture, job configuration, and scheduling. It also demonstrates Nomad's capabilities at large scale by describing a "million container challenge" deployment of 1 million containers across 1,000 jobs and 5,000 hosts on Google Cloud Platform. The document promotes an upcoming HashiConf conference for further discussion.
Automatically scaling your Kubernetes workloads - SVC201-S - Chicago AWS SummitAmazon Web Services
As the need for more computing resources has accelerated, so too have the ways in which computing have evolved. The advent of the cloud has allowed us to easily scale to suit our needs, but if we want to keep pace, we need an even more automated way to scale our infrastructure. In this session, we look at automatic scaling using Kubernetes, including how to set it up and, most important, what you should monitor in order to drive your scaling. This session is brought to you by AWS partner, Datadog.
There are many common workloads in R that are "embarrassingly parallel": group-by analyses, simulations, and cross-validation of models are just a few examples. In this talk I'll describe several techniques available in R to speed up workloads like these, by running multiple iterations simultaneously, in parallel.
Many of these techniques require the use of a cluster of machines running R, and I'll provide examples of using cloud-based services to provision clusters for parallel computations. In particular, I will describe how you can use the SparklyR package to distribute data manipulations using the dplyr syntax, on a cluster of servers provisioned in the Azure cloud.
Presented by David Smith at Data Day Texas in Austin, January 27 2018.
This document provides an overview and agenda for a presentation on Nomad, an open source cluster scheduler created by HashiCorp. The presentation will cover Nomad fundamentals including architecture, job configuration, and scheduling. It will also demonstrate Nomad's ability to schedule a million containers across thousands of hosts on Google Cloud Platform.
Scaling up Near Real-time Analytics @Uber &LinkedInC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2nSvlYI.
Chinmay Soman and Yi Pan discuss how Uber and LinkedIn use Apache Samza, Apache Calcite and Pinot. They talk about their analytics platform AthenaX used by data scientists and engineers for specifying data transformations and make it available for querying by real-time dashboards & maps within minutes. Then they focus on what happens under the hood and challenges faced with respect to scale. Filmed at qconsf.com.
Yi Pan is a Distributed Systems Engineer at Linkedin. He joined Linkedin in 2014 and has quickly become the lead of Samza team in LinkedIn and a Committer and PMC member in Apache Samza. Chinmay Soman is a software engineer at Uber, where he builds a self-service platform for doing near real-time analytics. His areas of interest include distributed systems and security.
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...Henning Jacobs
Talk held on 2019-09-26 in Paderborn:
Die Keynote:
Warum Kubernetes? Cloud Native und Developer Experience bei Zalando
Kubernetes hat sich als defacto Standard for Cloud Native Plattformen durchgesetzt. Warum? Welche Vorteile und Fallstricke gibt es in der Praxis?
Henning Jacobs zeigt am Beispiel von Zalando wie Kubernetes als Infrastruktur für 1200+ Entwickler dient, welche Aspekte Kubernetes trotz seiner Komplexität einzigartig machen, und was das für die Developer.
Experience bedeutet.
Henning Jacobs ist der Head of Developer Productivity bei Zalando und damit verantwortlich für die Developer Experience von mehr als 200 Zalando Delivery Teams.
Das Kubernetes eine hervorragende Plattform für den Erfahrungsaustausch darstellt, zeigt Henning mit seiner Liste von Kubernetes Failure Stories.
https://teuto.net/owl-tech-innovation-day/
Altitude SF 2017: Nomad and next-gen application architecturesFastly
Armon Dadgar offers an overview of Nomad, an application scheduler designed for both long-running services and batch jobs. Along the way, Armon explores the benefits of using schedulers for empowering developers and increasing resource utilization and how schedulers enable new next-generation application architectures.
Building a serverless company on AWS lambda and Serverless frameworkLuciano Mammino
Planet9energy.com is a new electricity company building a sophisticated analytics and energy trading platform for the UK market. Since the earliest draft of the platform, we took the unconventional decision to go serverless and build the product on top of AWS Lambda and the Serverless framework using Node.js. In this talk, I want to discuss why we took this radical decision, what are the pros and cons of this approach and what are the main issues we faced as a tech team in our design and development experience. We will discuss how normal things like testing and deployment need to be re-thought to work on a serverless fashion but also the benefits of (almost) infinite self-scalability and the peace of mind of not having to manage hundreds of servers. Finally, we will underline how Node.js seems to fit naturally in this scenario and how it makes developing serverless applications extremely convenient.
Technologies:
Backend
Frontend
Application architecture
Javascript
cloud computing
Deploying Percona XtraDB Cluster in OpenshiftAlexander Rubin
This document discusses deploying and managing a Percona XtraDB Cluster (PXC) on OpenShift using the Percona-Lab/percona-openshift Helm chart. It includes steps to deploy the PXC cluster, Proxysql, services, and monitoring using PMM. Backup and restore options using Jobs are also mentioned.
Autoscaling Your Kubernetes Workloads (Sponsored by Datadog) - AWS Summit SydneyAmazon Web Services
As our need for more computing resources has accelerated, so too have the ways in which computing has evolved. The advent of cloud providers like AWS has allowed us to easily scale to suit our needs. But if we want to keep pace, we need an even more automated way to scale our infrastructure. In this session, we’ll look at autoscaling with Kubernetes, how to set it up, and most importantly, what things to monitor in order to drive your autoscaling.
This presentation was prepared for a Webcast where John Yerhot, Engine Yard US Support Lead, and Chris Kelly, Technical Evangelist at New Relic discussed how you can scale and improve the performance of your Ruby web apps. They shared detailed guidance on issues like:
Caching strategies
Slow database queries
Background processing
Profiling Ruby applications
Picking the right Ruby web server
Sharding data
Attendees will learn how to:
Gain visibility on site performance
Improve scalability and uptime
Find and fix key bottlenecks
See the on-demand replay:
http://pages.engineyard.com/6TipsforImprovingRubyApplicationPerformance.html
This document provides an overview of cloud native applications and the cloud native stack. It discusses key concepts like microservices, containerization, composition using Docker and Docker Compose, and orchestration using Kubernetes. It provides examples of building a simple microservices application with these technologies and deploying it on Kubernetes. Overall it serves as a guide to developing and deploying cloud native applications.
A hitchhiker‘s guide to the cloud native stackQAware GmbH
Container Days 2017, Hamburg: Vortrag von Mario-Leander Reimer (@LeanderReimer, Cheftechnologe bei QAware).
Abstract: Cloud-Größen wie Google, Twitter und Netflix haben die Kernbausteine ihrer Infrastruktur quelloffen verfügbar gemacht. Das Resultat aus vielen Jahren Cloud-Erfahrung ist nun frei zugänglich, und jeder kann seine eigenen Cloud-nativen Anwendungen entwickeln – Anwendungen, die in der Cloud zuverlässig laufen und fast beliebig skalieren. Die einzelnen Bausteine wachsen zu einem großen Ganzen zusammen, dem Cloud Native Stack.
In dieser Session stellen wir die wichtigsten Konzepte und Schlüsseltechnologien vor und bringen dann eine Spring-Cloud-basierte Beispielanwendung schrittweise auf Kubernetes und DC/OS zum Laufen. Dabei diskutieren wir verschiedene praktikable Architekturalternativen.
In the presentation, we will learn on how to set up InnoDB cluster using the official MySQL Docker containers and run them with docker-compose. This presentation covers a demo, including how to connect to the cluster through MySQL Router using a simple application.
Similar to Incrementalism: An Industrial Strategy For Adopting Modern Automation (20)
Understanding User Behavior with Google Analytics.pdfSEO Article Boost
Unlocking the full potential of Google Analytics is crucial for understanding and optimizing your website’s performance. This guide dives deep into the essential aspects of Google Analytics, from analyzing traffic sources to understanding user demographics and tracking user engagement.
Traffic Sources Analysis:
Discover where your website traffic originates. By examining the Acquisition section, you can identify whether visitors come from organic search, paid campaigns, direct visits, social media, or referral links. This knowledge helps in refining marketing strategies and optimizing resource allocation.
User Demographics Insights:
Gain a comprehensive view of your audience by exploring demographic data in the Audience section. Understand age, gender, and interests to tailor your marketing strategies effectively. Leverage this information to create personalized content and improve user engagement and conversion rates.
Tracking User Engagement:
Learn how to measure user interaction with your site through key metrics like bounce rate, average session duration, and pages per session. Enhance user experience by analyzing engagement metrics and implementing strategies to keep visitors engaged.
Conversion Rate Optimization:
Understand the importance of conversion rates and how to track them using Google Analytics. Set up Goals, analyze conversion funnels, segment your audience, and employ A/B testing to optimize your website for higher conversions. Utilize ecommerce tracking and multi-channel funnels for a detailed view of your sales performance and marketing channel contributions.
Custom Reports and Dashboards:
Create custom reports and dashboards to visualize and interpret data relevant to your business goals. Use advanced filters, segments, and visualization options to gain deeper insights. Incorporate custom dimensions and metrics for tailored data analysis. Integrate external data sources to enrich your analytics and make well-informed decisions.
This guide is designed to help you harness the power of Google Analytics for making data-driven decisions that enhance website performance and achieve your digital marketing objectives. Whether you are looking to improve SEO, refine your social media strategy, or boost conversion rates, understanding and utilizing Google Analytics is essential for your success.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
Ready to Unlock the Power of Blockchain!Toptal Tech
Imagine a world where data flows freely, yet remains secure. A world where trust is built into the fabric of every transaction. This is the promise of blockchain, a revolutionary technology poised to reshape our digital landscape.
Toptal Tech is at the forefront of this innovation, connecting you with the brightest minds in blockchain development. Together, we can unlock the potential of this transformative technology, building a future of transparency, security, and endless possibilities.
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
20. • New program!
• Use a piece of user data
• Talks to a database
• Returns something useful
• Highly-Available
• Self-Healing
• Feedback
21. • New program!
• Use a piece of user data
• Talks to a database
• Returns something useful
• Highly-Available
• Self-Healing
• Feedback
BUSINESS VALUE
22. • New program!
• Use a piece of user data
• Talks to a database
• Returns something useful
• Highly-Available
• Self-Healing
• Feedback
INPUT
23. • New program!
• Use a piece of user data
• Talks to a database
• Returns something useful
• Highly-Available
• Self-Healing
• Feedback
DEPENDENCY
24. • New program!
• Use a piece of user data
• Talks to a database
• Returns something useful
• Highly-Available
• Self-Healing
• Feedback
PROPERTIES OF
THE APPLICATION
25. • New program!
• Use a piece of user data
• Talks to a database
• Returns something useful
• Highly-Available
• Self-Healing
• Feedback
VALUE
26. • New program!
• Use a piece of user data
• Talks to a database
• Returns something useful
• Highly-Available
• Self-Healing
• Feedback
DISTRACTING,
REQUIRED,
NECESSARY COMPLEXITY
27. • New program!
• Use a piece of user data
• Talks to a database
• Returns something useful
• Highly-Available
• Self-Healing
• Feedback
WIDGET
28. • New program!
• Use a piece of user data
• Talks to a database
• Returns something useful
• Highly-Available
• Self-Healing
• Feedback
INDUSTRIAL COMPUTING
RAW MATERIAL
REDUNDANT ROBOTS
REPLACEABLE PARTS
QUALITY-MANAGEMENT
WIDGET
STORAGE
40. "I want to deploy this app to prod. Password-less logins are disabled on
the databases! Now what?"
41. "I want to deploy this app to prod. Password-less logins are disabled on
the databases! Now what?"
Private GitHub repo
Commit passwords inline in SCM
Switch creds based on $HOSTNAME?
Establish a protocol for acquiring credentials at runtime
48. Terminal
$ psql -U postgres
psql (9.6.1)
Type "help" for help.
postgres=# du
Role name | Attributes | Member of
-------------------------------------------+--------------------------+------------
postgres | Superuser, Create ... | {}
token-9e57c18f-ac99-8e29-48f2-3fb09066d2b4 | Password valid until ... | {}
51. Terminal
$ vault write postgresql/roles/readonly
sql="CREATE ROLE "{{name}}" WITH LOGIN PASSWORD '{{password}}';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO "{{name}}";"
Success! Data written to: postgresql/roles/readonly
52. Terminal
$ tee my-policy.vault | vault write postgresql/roles/readonly sql=-
CREATE ROLE "{{name}}" WITH LOGIN PASSWORD '{{password}}';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO "{{name}}";
Success! Data written to: postgresql/roles/readonly
81. myapp-blue.job
job "myapp-blue" {
region = "apac"
datacenters = ["asia-east1", "asia-northeast1"]
type = "service"
update {
# Stagger updates every 120 seconds
stagger = "120s"
# Update a single task at a time
max_parallel = 1
}
...
82. myapp-blue.job
$ nomad status myapp-blue
ID = myapp-blue
Name = myapp-blue
Type = service
Priority = 50
Datacenters = asia-east1
Status = running
Periodic = false
Summary
Task Group Queued Starting Running Failed Complete Lost
myapp 0 0 1 0 0 0
Allocations
ID Eval ID Node ID Task Group Desired Status Created At
24cfd201 81efc2fa 8d0331e9 myapp run running 11/11/16 21:03:19 AEDT
83. myapp-blue.job
$ nomad alloc-status --verbose a7365fe4
ID = a7365fe4-cb28-a6e9-f3d4-f99e49c89776
Eval ID = c3c9a1db-dbeb-8afa-0a83-4f1b8b5a03f5
Name = myapp-blue.myapp[0]
Node ID = 1f029d38-8d4b-a552-261f-e457b60f9b4b
Job ID = myapp-blue
Client Status = running
Created At = 11/11/16 22:04:53 AEDT
Evaluated Nodes = 1
Filtered Nodes = 0
Exhausted Nodes = 0
Allocation Time = 1.085001ms
Failures = 0
==> Task Resources
Task: "api"
CPU Memory MB Disk MB IOPS Addresses
500 256 300 0 db: 127.0.0.1:38537
Task: "web"
CPU Memory MB Disk MB IOPS Addresses
90. Key Value Store
HTTP API
Host & Service Level Health
Checks
Datacenter Aware
Service
Discovery
HTTP + DNS
91.
92. CLIENT CLIENT CLIENT CLIENT CLIENT CLIENT
SERVER SERVER SERVER
REPLICATION REPLICATION
RPC
RPC
LAN GOSSIP
93. CLIENT CLIENT CLIENT CLIENT CLIENT CLIENT
SERVER SERVER SERVER
REPLICATION REPLICATION
RPC
RPC
LAN GOSSIP
SERVERSERVER SERVER
REPLICATION REPLICATION
WAN GOSSIP
94. DB 1
DB 2
DB N
HEALTH
CHECKING
SERVICE
"Are you healthy?"
"What about you?"
"Yessir!"
"Nah"
95. DB 1
DB 2
DB N
HEALTH
CHECKING
SERVICE
1,000'S OF
REQUESTS
103. Terminal
$ terraform plan -var-file=yow2016.tfvars -out=yow2016.tfplan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but
will not be persisted to local or remote state storage.
Your plan was also saved to the path below. Call the "apply" subcommand
with this plan file and Terraform will exactly execute this execution
plan.
Path: yow2016.tfplan
+ consul_key_prefix.myservice_config
datacenter: "<computed>"
path_prefix: "myservice/mycomponent/"
subkeys.%: "3"
subkeys.appParam1: "val1"
subkeys.appParam2: "var2"
subkeys.dbHostname: "my-db.service.consul"
Plan: 1 to add, 0 to change, 0 to destroy.
106. Terminal
$ terraform plan -var-file=yow2016.tfvars -out=yow2016.tfplan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but
will not be persisted to local or remote state storage.
consul_key_prefix.myservice_config: Refreshing state... (ID: myservice/mycomponent/)
Your plan was also saved to the path below. Call the "apply" subcommand
with this plan file and Terraform will exactly execute this execution
plan.
Path: yow2016.tfplan
~ consul_key_prefix.myservice_config
subkeys.%: "3" => "5"
subkeys.dbHostnameFollower: "" => "slave.my-db.query.consul"
subkeys.dbHostnameLeader: "" => "master.my-db.query.consul"
Plan: 0 to add, 1 to change, 0 to destroy.
107. Terminal
$ terraform apply yow2016.tfplan
consul_key_prefix.myservice_config: Modifying...
subkeys.%: "3" => "5"
subkeys.dbHostnameFollower: "" => "slave.my-db.query.consul"
subkeys.dbHostnameLeader: "" => "master.my-db.query.consul"
consul_key_prefix.myservice_config: Modifications complete
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
The state of your infrastructure has been saved to the path
below. This state is required to modify and destroy your
infrastructure, so keep it safe. To inspect the complete state
use the `terraform show` command.
State path: terraform.tfstate
111. Terminal
$ terraform plan -var-file=yow2016.tfvars -out=yow2016.tfplan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but
will not be persisted to local or remote state storage.
consul_key_prefix.myservice_config: Refreshing state... (ID: myservice/mycomponent/)
No changes. Infrastructure is up-to-date. This means that Terraform
could not detect any differences between your configuration and
the real physical resources that exist. As a result, Terraform
doesn't need to do anything.
114. Terminal
$ terraform plan -var-file=yow2016.tfvars -out=yow2016.tfplan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but
will not be persisted to local or remote state storage.
consul_key_prefix.myservice_config: Refreshing state... (ID: myservice/mycomponent/)
Your plan was also saved to the path below. Call the "apply" subcommand
with this plan file and Terraform will exactly execute this execution
plan.
Path: yow2016.tfplan
~ consul_key_prefix.myservice_config
subkeys.dbHostnameFollower: "follower.my-db.query.consul" => "ro.my-db.query.consul"
subkeys.dbHostnameLeader: "leader.my-db.query.consul" => "rw.my-db.query.consul"
Plan: 0 to add, 1 to change, 0 to destroy.
$ git reset --hard
HEAD is now at 2ab88f9 Revise terminology from master/slave to leader/follower
115. 1. Codify Everything
2. Pre-Plan outcomes at build-time
3. Create reproducible artifacts
4. Idempotent APIs and Tooling
5. Developer-Centric Operations
6. Make small, well understood changes changes
7. Start where it makes sense for your organization
127. RISK MITIGATED
INCREMENTALISM LIFE CYCLE CODIFY EXAMPLE 1TENETS EXAMPLE 2
BUSINESS OBJECTIVE
MYAPP
NOMAD
SECRETS
VAULT
SECRETS CONSUL CLUSTERAPPLICATION CONSUL CLUSTER