This document summarizes Ben Klang's presentation on "Ops for Developers". The presentation covers topics like operating systems, hardware components, the bootup process, observing a running system, and optimizing applications. It includes an agenda that discusses operating systems and hardware in the morning, then observing an HTTP request, dealing with failures, and scaling applications in the afternoon. The goal is to help developers better understand operations and infrastructure concepts.
This document discusses using Puppet and Splunk to audit change management policies and ensure compliance. It outlines how Puppet manages system configurations but the logs provide no link between configuration changes and commits. The document proposes enhancing Puppet reports to tag events with the Git commit, allowing Splunk to search for the commit that caused a specific event. This would help determine if systems were compliant by tying configuration changes to commits and answering questions about what happened and why.
This document outlines topics that will be covered in a talk about intermediate Android development. The topics include: using RoboGuice for dependency injection, basic Java unit testing with JUnit, Android unit testing, the Droid-Fu development framework, and using Hudson for continuous integration of Android builds. Code demos will be provided for RoboGuice, JUnit testing, and Droid-Fu. Questions from attendees are welcomed at the end.
This document discusses Mars, a framework for building native applications for OSX, iPhone, and iPad using Pharo. It describes Mars' architecture which uses the Objective-C bridge to connect Pharo and Cocoa/CocoaTouch. Views map to Objective-C controls while controllers handle callbacks. The model uses an adaptor to work with different models. Problems with deadlocks are being addressed. The future includes more testing, documentation, and potentially ports to other platforms.
Esteban Lorenzano presents Reef, a Javascript/Ajax component framework for Seaside. Reef allows developers to build Ajax interactions into Seaside applications using a transparent component model. It uses a dispatcher architecture with jQuery and supports callbacks, context, decorations, and plugins to extend components. Developers are encouraged to try Reef and provide feedback.
Ready to Play: JavaScript / HTML5 Game DevelopmentZachary Johnson
Plug-in free (read: without Flash) web browser video game development with HTML5 and JavaScript has matured, and is here to stay. In this quick overview of the current landscape, I will cover the technology available today and what is on the horizon. I will also demo some games, discuss engines and libraries, and serve a big dose of reality about desktop browser vs mobile browser performance.
The document discusses iBizLog, a platform for small businesses and independent professionals to create e-commerce websites. It provides features like customizable templates, shopping carts, and social networking integration. The platform is built using Pharo and Seaside, and runs on Gemstone using a custom storage mechanism called "Voyage". Over 1500 businesses have used iBizLog in the past year to set up their online stores.
The document discusses setting up an OpenStack environment using Vagrant and Puppet. It describes downloading dependencies like VirtualBox and Ubuntu boxes. It then explains configuring Vagrant to define and boot two VMs and using Puppet and modules to install and configure OpenStack on the VMs to deploy an OpenStack controller and compute node.
This document provides an overview of Adhearsion, an open source framework for building voice applications using Ruby. It discusses why voice is an important medium, provides code samples, and summarizes key features of Adhearsion like its easy-to-use DSL and support for Asterisk. Use cases like call centers, conferencing, and polling are presented. The architecture, future plans for version 2.0, and potential far-future directions are also outlined. The presentation aims to illustrate how Adhearsion brings modern development practices to telephony.
This document discusses using Puppet and Splunk to audit change management policies and ensure compliance. It outlines how Puppet manages system configurations but the logs provide no link between configuration changes and commits. The document proposes enhancing Puppet reports to tag events with the Git commit, allowing Splunk to search for the commit that caused a specific event. This would help determine if systems were compliant by tying configuration changes to commits and answering questions about what happened and why.
This document outlines topics that will be covered in a talk about intermediate Android development. The topics include: using RoboGuice for dependency injection, basic Java unit testing with JUnit, Android unit testing, the Droid-Fu development framework, and using Hudson for continuous integration of Android builds. Code demos will be provided for RoboGuice, JUnit testing, and Droid-Fu. Questions from attendees are welcomed at the end.
This document discusses Mars, a framework for building native applications for OSX, iPhone, and iPad using Pharo. It describes Mars' architecture which uses the Objective-C bridge to connect Pharo and Cocoa/CocoaTouch. Views map to Objective-C controls while controllers handle callbacks. The model uses an adaptor to work with different models. Problems with deadlocks are being addressed. The future includes more testing, documentation, and potentially ports to other platforms.
Esteban Lorenzano presents Reef, a Javascript/Ajax component framework for Seaside. Reef allows developers to build Ajax interactions into Seaside applications using a transparent component model. It uses a dispatcher architecture with jQuery and supports callbacks, context, decorations, and plugins to extend components. Developers are encouraged to try Reef and provide feedback.
Ready to Play: JavaScript / HTML5 Game DevelopmentZachary Johnson
Plug-in free (read: without Flash) web browser video game development with HTML5 and JavaScript has matured, and is here to stay. In this quick overview of the current landscape, I will cover the technology available today and what is on the horizon. I will also demo some games, discuss engines and libraries, and serve a big dose of reality about desktop browser vs mobile browser performance.
The document discusses iBizLog, a platform for small businesses and independent professionals to create e-commerce websites. It provides features like customizable templates, shopping carts, and social networking integration. The platform is built using Pharo and Seaside, and runs on Gemstone using a custom storage mechanism called "Voyage". Over 1500 businesses have used iBizLog in the past year to set up their online stores.
The document discusses setting up an OpenStack environment using Vagrant and Puppet. It describes downloading dependencies like VirtualBox and Ubuntu boxes. It then explains configuring Vagrant to define and boot two VMs and using Puppet and modules to install and configure OpenStack on the VMs to deploy an OpenStack controller and compute node.
This document provides an overview of Adhearsion, an open source framework for building voice applications using Ruby. It discusses why voice is an important medium, provides code samples, and summarizes key features of Adhearsion like its easy-to-use DSL and support for Asterisk. Use cases like call centers, conferencing, and polling are presented. The architecture, future plans for version 2.0, and potential far-future directions are also outlined. The presentation aims to illustrate how Adhearsion brings modern development practices to telephony.
Inside the Atlassian OnDemand Private CloudAtlassian
The document summarizes the development of Atlassian's private cloud platform. It describes how an initial team built a secret test environment (Block-1) and then a larger test environment (Block-2) to validate the architecture. Over time, the platform grew to 13,500 VMs which led to issues like poor performance and slow deployments. The team then focused on optimizing the platform infrastructure using technologies like OpenVZ containers to reduce overhead and read-only OS images to improve consistency and simplify management. The summaries emphasize how the team took an iterative approach, testing concepts on small scales before full deployment to address issues and focus on the tasks.
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...Ernie Souhrada
Have you ever thought that your SSD storage just doesn't seem anywhere near as fast as advertised? What if I told you that a couple of small changes to your Linux servers had the potential to more than double the amount of throughput your MySQL servers could handle while simultaneously reducing query response time by around 50 percent? It's not a dream, Neo.
If you're still in a traditional data center and/or your MySQL footprint lives on spinning rust, then you might want to take the blue pill, attend a different session, and believe whatever you want to believe.
However, if your server footprint runs inside Amazon Web Services or if you use SSDs in any fashion, I invite you to take the red pill and come with me on a journey down the rabbit hole, where we'll discuss such things as the Linux block IO driver, CPU starvation, and interrupt handling, using real-world query performance data from the primary MySQL data stores at Pinterest to illustrate the effect.
This document summarizes the architecture of a social networking platform handling high loads of 2.8 million users. It discusses how the load is balanced across 3 data centers with 2400 servers. It describes the multi-layer architecture including web servers, application servers, business services, caches, and SQL and NoSQL databases. It also discusses strategies for ensuring high performance and reliability under heavy loads, including handling garbage collection pauses, database partitioning, and using gatekeepers to control new features.
Mobile crossplatformchallenges siggraphchangehee lee
The document discusses various challenges and solutions related to developing cross-platform games for iOS and Android. It covers differences in GPU architectures between platforms, techniques for handling different screen resolutions and texture formats, approaches for optimizing shaders, and strategies for minimizing overhead from the OpenGL ES 2.0 API. The document provides recommendations for areas like sorting geometry, using shader permutations, offloading work to the CPU, and leveraging new capabilities in OpenGL ES 3.0.
The document discusses various challenges and solutions related to developing cross-platform games for iOS and Android. It covers differences in GPU architectures between platforms, techniques for handling different screen resolutions and texture formats, approaches for optimizing shaders, and strategies for minimizing overhead from the OpenGL ES 2.0 API. The document provides recommendations for areas like sorting geometry, using shader permutations, offloading work to the CPU, and leveraging new capabilities in OpenGL ES 3.0.
The document summarizes Guillaume Laforge's presentation on the Gaelyk toolkit for building applications on Google App Engine using Groovy. Some key points covered include an introduction of Gaelyk and how it builds on Groovy to simplify development for GAE, demonstrations of using Groovlets and templates, and examples of interacting with GAE services like the datastore, task queues, and XMPP.
This document provides an overview and instructions for installing and configuring Reconnoiter, a system for large-scale trending and fault detection. It describes the goals of the system, its architectural design including main components, and steps for installing the code, database, and web console. It also provides information on setting up SSL, configuring the noitd and stratcond components, and contact information for support and hiring.
Cloud-Friendly Hadoop and Hive - StampedeCon 2013StampedeCon
`At the StampedeCon 2013 Big Data conference in St. Louis, Shrikanth Shankar, Head of Engineering at Qubole, presented Cloud-Friendly Hadoop and Hive. The cloud reduces the barrier to entry for many small and medium size enterprises into analytics. Hadoop and related frameworks like Hive, Oozie, Sqoop are becoming tools of choice for deriving insights from data. However, these frameworks were designed for in-house datacenters, which have different tradeoffs from a cloud environment, and making them run well in the cloud presents some challenges. In this talk, Shrikanth Shankar, Head of Engineering at Qubole, describes how these experiences taught us to extend Hadoop and Hive to exploit these new tradeoffs. Use cases will be presented that show how the challenges at large scale at Facebook are now making it extremely easy for a significantly smaller end user to leverage these technologies in the cloud.
This document summarizes a talk about using ZFS and FreeBSD jails. It discusses how ZFS provides features like snapshots, clones, and a copy-on-write data model that make creating and managing jails quick and efficient. It also gives examples of workflows like per-developer environments, dev/staging/production, and using ZFS snapshots to easily recover from mistakes or promote changes between environments.
DevOps: Getting Started with Puppet on WindowsRob Reynolds
You keep hearing about DevOps and how awesome it is, if you have Linux. Well Windows can be awesome with DevOps, too. And it’s just going to keep getting better. If you are on Windows and you are even remotely interested in making things better, then you should come out and see what Puppet is all about and what it can do for your organization.
The document is a presentation about Node.js that discusses what problem it helps solve, its use of event-driven and non-blocking I/O, common use cases, industry support and examples of usage, how to code in Node.js including modules and frameworks, and how to scale Node.js applications. The presentation was given by Ovidiu Dimulescu at the Jax CodeCamp in October 2012.
Dark Silicon, Mobile Devices, and Possible Open-Source SolutionsKoan-Sin Tan
This document summarizes a presentation about dark silicon in mobile devices and possible open source solutions. It discusses how power and thermal constraints are more severe for mobile devices due to limited battery progress and no fans. It also covers big.LITTLE scheduling, thread-level parallelism challenges, and user-level threading libraries like AsyncTask. Finally, it notes that while some open source parallel programming frameworks exist, fully utilizing parallelism on mobile and addressing dark silicon remain challenges with no widely adopted solutions.
This document summarizes Toomas Römer's talk about his experiences using Jenkins. Some key points:
1) Römer has been using Jenkins since 2008 for various purposes like building, testing, and releasing software.
2) In 2013, Römer's team was using Jenkins to manage 300-600 jobs across 8-20 machines, processing around 7000 hours on Amazon per month.
3) Stories are shared about managing a large Jenkins cluster with many projects, running functional JDK tests as Jenkins jobs, and interacting with Jenkins via its API.
The document provides an overview of the Linux operating system, including:
- Linux was created by Linus Torvalds as an open source alternative to Unix.
- It gained popularity when freely distributed and is now used widely by computer hobbyists and programmers.
- The Linux kernel manages hardware and software resources. Popular Linux distributions include Debian, Red Hat, and Ubuntu, which are built on top of the Linux kernel.
- The document then details the step-by-step process of how a Linux system boots up, from the BIOS loading the bootloader to the kernel loading programs at different runlevels.
Node.js: Patterns and Opinions discusses Node.js principles and best practices. It emphasizes that Node.js is built on JavaScript and uses non-blocking I/O with callbacks to handle requests asynchronously. It recommends avoiding slowness, ignoring errors, and focusing on portability, small modular parts, and an open community approach. The future of Node.js involves continued improvements to core modules like HTTP and new versions of underlying technologies.
A 30 minute talk I did at Cassandra Dublin and Cassandra London. Just some things I've learned along the way as I've helped some of the largest users of Cassandra be successful. Learn form other peoples mistakes!
ConnectJS 2015: Video Killed the Telephone StarMojo Lingo
When you want to talk to someone, where do you turn? Skype? Slack or HipChat? Maybe even an old-fashioned telephone? As great (or not) as these are, they all fail in one important way: Context. As developers, why don’t we enable our users to communicate where they are doing everything else, right inside the browser or mobile app The technology to create contextual communications is evolving quickly with exciting technologies like WebRTC. This talk is about how to use WebRTC with Rails to enhance almost any application with voice, video & text. We will cover some of the ways communications can be best employed, including design considerations, as well as available Open Source projects. We will feature a recently released Rails Engine called Talking Stick that makes adding WebRTC to any Rails app a snap.
AstriCon 2015: WebRTC: How it Works, and How it BreaksMojo Lingo
WebRTC is an exciting new technology, perhaps the most exciting thing to happen to voice communication since the invention of Voice over IP. With WebRTC, we are no longer limited to a disjointed communication experience with poor quality audio on antiquated networks. Now we have the ability to put high-definition audio and video where it will have the most impact: right in line with the business processes that benefit the most from it.
This session will present an overview of how WebRTC works, reviewing both the network services that support it and the user-facing software that delivers it. We will look at how Asterisk can be used to give WebRTC additional capabilities that aren’t possible with browsers alone, and how to deploy Asterisk to get the most out of this powerful combination.
As with all new technology, however, there are rough edges. In the final part of this presentation, we will look at the common ways that WebRTC can break down, from technical deployment problems to user interface and design issues. These lessons are drawn from real-world experience deploying WebRTC over the last 3 years and multiple applications that are in production today.
Inside the Atlassian OnDemand Private CloudAtlassian
The document summarizes the development of Atlassian's private cloud platform. It describes how an initial team built a secret test environment (Block-1) and then a larger test environment (Block-2) to validate the architecture. Over time, the platform grew to 13,500 VMs which led to issues like poor performance and slow deployments. The team then focused on optimizing the platform infrastructure using technologies like OpenVZ containers to reduce overhead and read-only OS images to improve consistency and simplify management. The summaries emphasize how the team took an iterative approach, testing concepts on small scales before full deployment to address issues and focus on the tasks.
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...Ernie Souhrada
Have you ever thought that your SSD storage just doesn't seem anywhere near as fast as advertised? What if I told you that a couple of small changes to your Linux servers had the potential to more than double the amount of throughput your MySQL servers could handle while simultaneously reducing query response time by around 50 percent? It's not a dream, Neo.
If you're still in a traditional data center and/or your MySQL footprint lives on spinning rust, then you might want to take the blue pill, attend a different session, and believe whatever you want to believe.
However, if your server footprint runs inside Amazon Web Services or if you use SSDs in any fashion, I invite you to take the red pill and come with me on a journey down the rabbit hole, where we'll discuss such things as the Linux block IO driver, CPU starvation, and interrupt handling, using real-world query performance data from the primary MySQL data stores at Pinterest to illustrate the effect.
This document summarizes the architecture of a social networking platform handling high loads of 2.8 million users. It discusses how the load is balanced across 3 data centers with 2400 servers. It describes the multi-layer architecture including web servers, application servers, business services, caches, and SQL and NoSQL databases. It also discusses strategies for ensuring high performance and reliability under heavy loads, including handling garbage collection pauses, database partitioning, and using gatekeepers to control new features.
Mobile crossplatformchallenges siggraphchangehee lee
The document discusses various challenges and solutions related to developing cross-platform games for iOS and Android. It covers differences in GPU architectures between platforms, techniques for handling different screen resolutions and texture formats, approaches for optimizing shaders, and strategies for minimizing overhead from the OpenGL ES 2.0 API. The document provides recommendations for areas like sorting geometry, using shader permutations, offloading work to the CPU, and leveraging new capabilities in OpenGL ES 3.0.
The document discusses various challenges and solutions related to developing cross-platform games for iOS and Android. It covers differences in GPU architectures between platforms, techniques for handling different screen resolutions and texture formats, approaches for optimizing shaders, and strategies for minimizing overhead from the OpenGL ES 2.0 API. The document provides recommendations for areas like sorting geometry, using shader permutations, offloading work to the CPU, and leveraging new capabilities in OpenGL ES 3.0.
The document summarizes Guillaume Laforge's presentation on the Gaelyk toolkit for building applications on Google App Engine using Groovy. Some key points covered include an introduction of Gaelyk and how it builds on Groovy to simplify development for GAE, demonstrations of using Groovlets and templates, and examples of interacting with GAE services like the datastore, task queues, and XMPP.
This document provides an overview and instructions for installing and configuring Reconnoiter, a system for large-scale trending and fault detection. It describes the goals of the system, its architectural design including main components, and steps for installing the code, database, and web console. It also provides information on setting up SSL, configuring the noitd and stratcond components, and contact information for support and hiring.
Cloud-Friendly Hadoop and Hive - StampedeCon 2013StampedeCon
`At the StampedeCon 2013 Big Data conference in St. Louis, Shrikanth Shankar, Head of Engineering at Qubole, presented Cloud-Friendly Hadoop and Hive. The cloud reduces the barrier to entry for many small and medium size enterprises into analytics. Hadoop and related frameworks like Hive, Oozie, Sqoop are becoming tools of choice for deriving insights from data. However, these frameworks were designed for in-house datacenters, which have different tradeoffs from a cloud environment, and making them run well in the cloud presents some challenges. In this talk, Shrikanth Shankar, Head of Engineering at Qubole, describes how these experiences taught us to extend Hadoop and Hive to exploit these new tradeoffs. Use cases will be presented that show how the challenges at large scale at Facebook are now making it extremely easy for a significantly smaller end user to leverage these technologies in the cloud.
This document summarizes a talk about using ZFS and FreeBSD jails. It discusses how ZFS provides features like snapshots, clones, and a copy-on-write data model that make creating and managing jails quick and efficient. It also gives examples of workflows like per-developer environments, dev/staging/production, and using ZFS snapshots to easily recover from mistakes or promote changes between environments.
DevOps: Getting Started with Puppet on WindowsRob Reynolds
You keep hearing about DevOps and how awesome it is, if you have Linux. Well Windows can be awesome with DevOps, too. And it’s just going to keep getting better. If you are on Windows and you are even remotely interested in making things better, then you should come out and see what Puppet is all about and what it can do for your organization.
The document is a presentation about Node.js that discusses what problem it helps solve, its use of event-driven and non-blocking I/O, common use cases, industry support and examples of usage, how to code in Node.js including modules and frameworks, and how to scale Node.js applications. The presentation was given by Ovidiu Dimulescu at the Jax CodeCamp in October 2012.
Dark Silicon, Mobile Devices, and Possible Open-Source SolutionsKoan-Sin Tan
This document summarizes a presentation about dark silicon in mobile devices and possible open source solutions. It discusses how power and thermal constraints are more severe for mobile devices due to limited battery progress and no fans. It also covers big.LITTLE scheduling, thread-level parallelism challenges, and user-level threading libraries like AsyncTask. Finally, it notes that while some open source parallel programming frameworks exist, fully utilizing parallelism on mobile and addressing dark silicon remain challenges with no widely adopted solutions.
This document summarizes Toomas Römer's talk about his experiences using Jenkins. Some key points:
1) Römer has been using Jenkins since 2008 for various purposes like building, testing, and releasing software.
2) In 2013, Römer's team was using Jenkins to manage 300-600 jobs across 8-20 machines, processing around 7000 hours on Amazon per month.
3) Stories are shared about managing a large Jenkins cluster with many projects, running functional JDK tests as Jenkins jobs, and interacting with Jenkins via its API.
The document provides an overview of the Linux operating system, including:
- Linux was created by Linus Torvalds as an open source alternative to Unix.
- It gained popularity when freely distributed and is now used widely by computer hobbyists and programmers.
- The Linux kernel manages hardware and software resources. Popular Linux distributions include Debian, Red Hat, and Ubuntu, which are built on top of the Linux kernel.
- The document then details the step-by-step process of how a Linux system boots up, from the BIOS loading the bootloader to the kernel loading programs at different runlevels.
Node.js: Patterns and Opinions discusses Node.js principles and best practices. It emphasizes that Node.js is built on JavaScript and uses non-blocking I/O with callbacks to handle requests asynchronously. It recommends avoiding slowness, ignoring errors, and focusing on portability, small modular parts, and an open community approach. The future of Node.js involves continued improvements to core modules like HTTP and new versions of underlying technologies.
A 30 minute talk I did at Cassandra Dublin and Cassandra London. Just some things I've learned along the way as I've helped some of the largest users of Cassandra be successful. Learn form other peoples mistakes!
ConnectJS 2015: Video Killed the Telephone StarMojo Lingo
When you want to talk to someone, where do you turn? Skype? Slack or HipChat? Maybe even an old-fashioned telephone? As great (or not) as these are, they all fail in one important way: Context. As developers, why don’t we enable our users to communicate where they are doing everything else, right inside the browser or mobile app The technology to create contextual communications is evolving quickly with exciting technologies like WebRTC. This talk is about how to use WebRTC with Rails to enhance almost any application with voice, video & text. We will cover some of the ways communications can be best employed, including design considerations, as well as available Open Source projects. We will feature a recently released Rails Engine called Talking Stick that makes adding WebRTC to any Rails app a snap.
AstriCon 2015: WebRTC: How it Works, and How it BreaksMojo Lingo
WebRTC is an exciting new technology, perhaps the most exciting thing to happen to voice communication since the invention of Voice over IP. With WebRTC, we are no longer limited to a disjointed communication experience with poor quality audio on antiquated networks. Now we have the ability to put high-definition audio and video where it will have the most impact: right in line with the business processes that benefit the most from it.
This session will present an overview of how WebRTC works, reviewing both the network services that support it and the user-facing software that delivers it. We will look at how Asterisk can be used to give WebRTC additional capabilities that aren’t possible with browsers alone, and how to deploy Asterisk to get the most out of this powerful combination.
As with all new technology, however, there are rough edges. In the final part of this presentation, we will look at the common ways that WebRTC can break down, from technical deployment problems to user interface and design issues. These lessons are drawn from real-world experience deploying WebRTC over the last 3 years and multiple applications that are in production today.
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In SightMojo Lingo
That smartphone in your pocket has already replaced your watch, your camera, several volumes of books, whatever music device you may carry, and even in many ways your desktop computer. As technology continues to gobble up and replace legacy devices with ever smaller hardware and ever more capable software, why are we still stuck with a DTMF keypad? As the task of communicating continues to move on to the web and into apps, what will happen to the PSTN.
Today big carriers like AT&T are making plans to finally shut down the copper networks entirely. Let’s talk about the role of FreeSWITCH in this future world, and how can it enable the next generation of communications applications.
Now Hear This! Putting Voice, Video, and Text into Ruby on RailsMojo Lingo
When you want to talk to someone, where do you turn? Skype? Slack or HipChat? Maybe even an old-fashioned telephone? As great (or not) as these are, they all fail in one important way: Context. As developers, why don’t we enable our users to communicate where they are doing everything else, right inside the browser or mobile app? The technology to make contextual communications is evolving quickly with exciting technologies like WebRTC, speech recognition and natural language processing. This talk is about how to apply those building blocks and bring contextual communication to your apps.
Presented at RailsConf 2015 in Atlanta, GA
In the film “Her” the protagonist falls in love with his computer, an artificial intelligence operating system. While most of us already love Asterisk, things really get interesting when we give Asterisk a voice, and the ability to listen to our instructions.
Fortunately for us, Asterisk has impressive capabilities for adding speech recognition and text-to-speech to our calls. This talk will cover many facets of speech applications with Asterisk. We will look at the various commercial and open source speech engines available, as well as how to integrate them into Asterisk. We will look at ways prompts and grammars can be designed to give the caller the best possible experience. We will hear samples of the right and hilariously wrong ways speech can be used. We will cover the various types of speech recognition that exist today (grammar-driven, transcription, hotword and voice biometrics) and how each should be applied.
Finally, we’ll show how these pieces come together to make it possible to build something that (for a brief moment) passes as intelligent. Maybe.
Tipping the Scales: Measuring and Scaling AsteriskMojo Lingo
In this presentation delivered at AstriCon 2014, we look at answering the question: "Does Asterisk scale?!" The answer is nuanced. The presentation includes terminology and tools, as well as some notes on methodology. In the final few slides, we look at several ways Asterisk is employed (B2BUA, transcoding, conferencing, recording) and the impact each feature has on scaling Asterisk. Using the tools and methodologies presented here, I encourage everyone to test their own voice applications and answer the question for themselves: Does It Scale?!
Hear how to develop and implement WebRTC using the new IETF and W3C standards. This session will overview the concepts and structure of WebRTC and how it is defined in the emerging standards. The session will bring everyone up to a clear understanding of WebRTC for the technical discussions in the next session.
This workshop will include specific examples of how to code and create real-time interactions. The session will be interactive, allowing for open and clear discussion.
Opening presentation given at AdhearsionConf 2013. This talks about a vision for the future of the Adhearsion project as well as the future of real-time communications applications.
An overview of the technology options for adding speech to web applications. It covers the HTML5 Speech Input API for speech recognition, using the Audio tag with 3rd party APIs for text-to-speech, and an overview of WebRTC application possibilities.
Presented at the Atlanta Ruby Users Group meeting on November 13, 2013.
This document discusses WebRTC, which enables real-time communication like voice and video calls directly in web browsers. It explains that WebRTC uses JavaScript APIs and standards for negotiating connections between peers and for interoperability. While signaling can use SIP, WebRTC does not mandate a signaling protocol. Challenges include the specification still being developed, large SDP messages, opaque handling of SDP, mandatory encryption, debates over video codecs, and inconsistent browser support.
O documento discute a tecnologia de voz e aplicações de voz. Ele descreve como a tecnologia evoluiu de sistemas proprietários e ilhadas para sistemas abertos e baseados na nuvem. O documento também apresenta o framework Ruby Adhearsion como uma maneira fácil de desenvolver aplicações de voz flexíveis que podem ser implantadas em qualquer lugar.
This document discusses enhancing FreePBX with Adhearsion, a Ruby framework for building telephony applications. It describes installing Adhearsion, creating a basic dialplan application, and configuring FreePBX and Asterisk to interface with the Adhearsion application. It also provides an example of using Adhearsion to implement time-based outbound call restrictions and monitoring Asterisk events through AMI.
The document discusses Connect Adhearsion, a platform for connecting phone calls and other multimedia interactions to backend services through a distributed architecture. It provides examples of using Adhearsion to connect phone calls to databases, queues, messaging systems and external APIs. The author advocates for distributed, asynchronous architectures and shares a wishlist for improving Adhearsion's integration with technologies like Sidekiq, DCell and AMQP.
The document discusses various types of testing for voice application including unit testing, functional testing, and load testing. Unit testing involves testing classes individually using a framework like RSpec. Functional testing uses tools like SIPp, ahn-loadbot, and PJSUA to test call flows. Load testing involves running high volumes of concurrent calls to test the system under heavy load. The document provides examples and best practices for each type of testing.
Testing Telephony: It's Not All TerribleMojo Lingo
This document discusses testing telephony applications. It recommends unit testing components and domain logic in models. For integration testing, it suggests using Cucumber-VoIP, an open source and extensible framework, to automate testing of the entire stack including voice interactions and media. This helps address the challenges of complex scenarios, branching flows, and regressions when quality assuring telephony applications.
This document introduces Rayo, an open protocol for building telephony applications over XMPP. Rayo allows for call control without handling media directly, using existing protocols like SIP and Jingle. It provides primitives like making and handling calls as well as advanced features like audio playback, speech synthesis, DTMF detection, and recording. Rayo was designed as a simple, cross-platform, asynchronous protocol to build flexible telephony applications.
This document discusses real-time communication technologies compared to web technologies. It describes how prior to 2000, telephony involved proprietary systems with islands of functionality and no APIs. Since 2000, VoIP emerged along with smarter endpoints and convergence of messaging and presence. The next decade may see further decentralization, open architectures, federation, and multi-modal integration. Voice applications can now go beyond phone calls to include services like translation, reminders, and CRM integration. The Ruby framework Adhearsion provides an easy way to build voice applications that can integrate with telephony networks and deploy on cloud platforms.
This document summarizes Luca Pradovera's presentation on Adhearsion, an open source Ruby framework for building voice applications. Adhearsion allows developers to build voice applications using Ruby and integrates with telephony platforms like Asterisk, FreeSWITCH, and Voxeo PRISM. It provides features for call control, playback, recording, and event handling. Adhearsion is used by several companies to build hosted IVR systems, call tracking applications, and voice translation services.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Project Management Semester Long Project - Acuityjpupo2018
Acuity is an innovative learning app designed to transform the way you engage with knowledge. Powered by AI technology, Acuity takes complex topics and distills them into concise, interactive summaries that are easy to read & understand. Whether you're exploring the depths of quantum mechanics or seeking insight into historical events, Acuity provides the key information you need without the burden of lengthy texts.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
9. It’s About Risk
• If something breaks, it will be my pager that
goes off at 2am
• New software == New ways to break
• If I can’t see it, I can’t manage it or monitor
it and it will break
Friday, August 10, 12
10. Agenda
• 9:00 - 10:30 • 1:30 - 3:00
• Operating Systems & • Autopsy of an HTTP
Hardware Request
• All About Bootup • Dealing with Murphy
• 10:30 - 11:00: Break • 3:00 - 3:30: Break
• 11:00 - 12:30 • 3:30 - 5:00
• Observing a Running • Scaling Up
System
• Deploying Apps
• Optimization/Tuning
• Audience Requests
• 12:30 - 1:30 Lunch
Friday, August 10, 12
11. Part I
Operating Systems &
Hardware
Friday, August 10, 12
12. OS History Lesson
BSD, System V, Linux and Windows
Friday, August 10, 12
13. UNICS Soon renamed “Unix
(Sep. 1969) Time Sharing System
Version 1”
UNIX Time Sharing System Version 5
(Jun. 1974)
UNIX Sys III 1BSD
(Nov. 1981) (Mar. 1978)
UNIX Sys V 4.3BSD
(Jan. 1983) (Jun. 1986)
Friday, August 10, 12
16. Common Architectures
• Intel x86 (i386, x86_64)
• SPARC
• POWER
• ARM
• But none of this really matters anymore
Friday, August 10, 12
17. CPU Configurations
• Individual CPU
• SMP: Symmetric Multi-Processing
• Multiple Cores
• Hyperthreading/Virtual Cores
Friday, August 10, 12
18. (Virtual) Memory
• RAM + Swap = Available Memory
• Swapping strategies vary across OSes
• What your code sees is a complete
virtualization of this
• x86/32-bit processes can only “see” 3GB of
RAM from a 4GB address space
Friday, August 10, 12
20. Networking
• LAN (100Mb still common; 1Gbit standard;
10Gb and 100Gb on horizon)
• WAN (T-1, Frame Relay, ATM, MetroE)
• Important Characteristics
• Throughput
• Loss
• Delay
Friday, August 10, 12
21. Part II
All About Bootup
Friday, August 10, 12
22. Phases
• BIOS
• Kernel Bootstrap
• Hardware Detection
• Init System
Friday, August 10, 12
23. System Services
• Varies by OS
• Common: SysV Init Scripts; /etc/inittab; rc.local
• Solaris: SMF
• Ubuntu: Upstart
• Debian: SysV default; Upstart optional
• OSX: launchd
• RedHat/CentOS: SysV Init Scripts
Friday, August 10, 12
24. SysV Init Scripts
• Created in /etc/init.d; Symlinked into
runlevel directories
• Symlinks prefixed with special characters to
control startup/shutdown order
• Prefixed with “S” or “K” to start or stop
service in each level
• Numeric prefix determines order
• /etc/rc3.d/S10sshd -> /etc/init.d/sshd
Friday, August 10, 12
25. rc.local
• Single “dumb” startup script
• Run at end of system startup
• Quick/dirty mechanism to start something
at bootup
Friday, August 10, 12
26. /etc/inittab
• The original process supervisor
• Not (easily) scriptable
• Starts a process in a given runlevel
• Restarts the process when it dies
Friday, August 10, 12
27. Supervisor Processes
• Solaris SMF
• Ubuntu Upstart
• OSX launchd
• daemontools
Friday, August 10, 12
28. Ruby Integrations
• Supervisor Processes
• Bluepill
• God
• Startup Script Generator
• Foreman
Friday, August 10, 12
29. Choosing a Boot
Mechanism
• Is automatic recovery desirable?
(Hint: sometimes it’s not)
• Does it integrate with monitoring?
• Is it a one-off that will get forgotten?
• Does it integrate into OS startup/shutdown?
• How much work to integrate with your app?
Friday, August 10, 12
30. Part III
Observing a Running System
Friday, August 10, 12
31. Common Tools
• top
• free
• vmstat
• netstat
• fuser
• ps
• sar (not always installed by default)
Friday, August 10, 12
33. Observing CPU
• Go-to tools: top, ps
• CPU is not just about computation
• Most Important:
%user, %system, %nice, %idle, %wait
• Other: hardware/software interrupts,
“stolen” time (especially on EC2)
Friday, August 10, 12
34. The Mystical Load Avg.
• Broken into 1, 5 and 15 minute averages
• Gives a coarse view of overall system load
• Based on # processes waiting for CPU time
• Rule of thumb: stay below the number of
CPUs in a system (eg. a 4 CPU host should
be below a 4.00 load average)
Friday, August 10, 12
35. When am I CPU
bound?
• 15 minute load average exceeding the
number of non-HT processors
• %user + %system consistently above 90%
Friday, August 10, 12
36. Observing RAM
• Go-to tools: top, vmstat
• Available memory isn’t just “Free”
• Buffers + Cache fill to consume available
RAM (this is a good thing!)
Friday, August 10, 12
37. RAM vs. Swap
• RAM is the amount of physical memory
• Swap is disk used to augment RAM
• Swap is orders of magnitude slower
• Some VM types have no meaningful swap
• Rule of thumb: pretend swap doesn’t exist
Friday, August 10, 12
38. Paging Strategies
• Solaris: Page in advance
• Linux: Page on demand (last resort)
• Windows: Craziness
Friday, August 10, 12
39. When am I memory
bound?
• Free + buffers + cache < 15% of RAM
• Swap utilization above 10% avail. swap
(Linux only)
• Check for high disk utilization to confirm
“thrashing”
Friday, August 10, 12
40. Observing Disk
• Go-to tools: iostat, top
• Disk is usually hardest thing to observe
• Better in recent Linux kernels (> 2.6.20)
Friday, August 10, 12
41. RAID
• Redundant Array of Inexpensive Drives
• Different strategies have different
performance/durability tradeoffs
• RAID-0
• RAID-1
• RAID-10
• RAID-5
Friday, August 10, 12
• RAID-6
42. When am I disk bound?
• %wait is consistently above 10% to 20%
• ... though %wait can be network too
• SCSI and FC command queues are long
• Known failure mode: disk more than 85%
full causes tremendous VFS overhead
Friday, August 10, 12
43. Observing Network
• Go-to tools: netstat, iftop, wireshark
• Be wary of choke-points
• Switch interconnects
• WAN links
• Firewalls
Friday, August 10, 12
44. Link Optimization
• Use Jumbo Frames for Gbit+ links
• Port aggregation for throughput:
• Best: many-to-many
• Good: one-to-many
• Useless: one-to-one
• ... but still useful for HA
Friday, August 10, 12
45. When am I network
bound?
• This one is easy: 99% of the time this is link
saturation
• Gotchas: which link?
• Addendum: loss/delay (especially for TCP)
can wreak havoc on throughput
• ... but usually only a problem across WAN
Friday, August 10, 12
46. Part IV
Optimization &
Performance Tuning
Friday, August 10, 12
47. Hardware Options
• A.K.A. “Throw hardware at it”
• Not the first thing to try
• Are the services tuned? SQL queries,
application behavior, caching options
• Is something broken, causing
performance degradation?
Friday, August 10, 12
48. Hardware Options
• RAM is usually the single biggest
performance win (cost/benefit tradeoff)
• Faster disk is next best
• Then look at CPU and/or Network
• ...but do the work to figure out why your
performance is limited in the first place
Friday, August 10, 12
49. Kernel Tunables
• Not as necessary as in the “old days”
• Almost all settings can be adjusted at
runtime on Linux, Solaris
• Most valuable settings are buffer limits or
counters/timers
• There be dragons! Read carefully before
twisting these knobs
Friday, August 10, 12
50. Environment Settings
• ulimits
• max files
• stack size
• memory limits
• core dumps
• others
• Still subject to system-wide (kernel) limits
Friday, August 10, 12
51. Environment limits
• Hard limits cannot be raised by
unprivileged users
• PAM configuration may also be in effect
Friday, August 10, 12
52. Application Tunables
• There are not many for C-Ruby
• JVM has many
• Mostly related to how RAM is allocated
and garbage collected
• Very dependent on application
• Any time an “xVM” is involved, there is
probably a tunable (JVM, CLR)
• But we are developers! Tune/profile your
app before looking to the environment
Friday, August 10, 12
53. Performance
Management Tools
• sysstat (sar)
• SNMP (and related tools like Cacti)
• Integrated Monitoring + Trending tools
• Zabbix
• OpenNMS
• and a plethora of commercial tools
Friday, August 10, 12
54. Part V
Putting It All Together
Autopsy of a single HTTP request, end-to-end
Friday, August 10, 12
56. Part VI
Pulling It All Apart
Anticipating Murphy and his Law
Friday, August 10, 12
57. Most Common Pitfalls
• Disk Full
• DNS Unavailable/Slow
• Insufficient RAM
• Suboptimal Service Configuration
• Firewall misconfiguration
• Archaic: Network mismatch (Full/Half Duplex)
Friday, August 10, 12
58. DNS and Performance
• Possibly most-overlooked perf. impact
• Everything uses DNS
• If you make nothing else redundant, make
this redundant!
Friday, August 10, 12
60. Horizontal or Vertical?
• Vertical: Making one server/instance go
faster
• Horizontal: Parallelizing requests to get
more things done in the same amount of
time
Friday, August 10, 12
61. Clustering
• Parallelizing requests to increase overall
throughput: horizontal scaling
• Techniques to make information more
available:
• Caching (memcache, file-based caching)
• Distribute data sets
• Replication
Friday, August 10, 12
63. Failover/HA
• Consistency requires concept of Quorum
• Losing partition gets killed: STONITH
• Multi-master systems ignore this at the
cost of potential non-determinisim
Friday, August 10, 12
64. Tuning Services
• Some VM types (especially JVM or CLR)
have tunables for memory consumption
• Databases usually have memory settings
• These can make dramatic differences
• Very workload dependent
• Deep troubleshooting: strace, wireshark
Friday, August 10, 12
65. Part VIII
Deploying Applications
Friday, August 10, 12
66. 12 Factor Application
• Deployability starts with application design
• Clear line between configuration and logic
• Permit easy horizontal scaling
• Are OS-agnostic (yay Ruby!)
• Minimize differences between dev and prod
• http://12factor.net - by Heroku cofounder
Friday, August 10, 12
67. Deployment Tools
• Capistrano
• The de facto standard
• Requires effort to set up, test
• Requires integration with system startup
• Most flexible
Friday, August 10, 12
68. Deployment Tools
• “Move it to the cloud”
• Heroku
• Cloud Foundry
Friday, August 10, 12