The document discusses strategies for horizontally scaling Node.js applications. It covers monitoring metrics like response times and CPU usage to determine when an application needs to be scaled. Methods for scaling include adding more servers running the application code, using clustering to distribute load across CPU cores, leveraging an in-memory data store like Redis to share state, and load balancing traffic across servers.
Writing flexible filesystems in FUSE-PythonAnurag Patel
Slides from a talk given at PythonPune meetup on 21st Feb, 2015, and later at PyConIndia on 04th Oct, 2015.
FUSE-Python is probably the quickest way to prototype new filesystem ideas and rapidly build a new filesystem from scratch. In these slides I cover the basic FUSE methods and data structures necessary for implementing a working filesystem.
This document discusses FUSE (Filesystem in Userspace), which allows users to create filesystems in userspace without needing kernel modifications. FUSE makes it easy to write new filesystems in any programming language by forwarding filesystem calls to userspace programs. Example uses of FUSE include hardware/network filesystems, non-traditional filesystems like those backed by databases or search results, and synthetic filesystems for compression or encryption. The document outlines the key FUSE operations like readdir, getattr, open, and read/write and provides examples of minimal filesystems written in Python using FUSE.
The document discusses the Python FUSE module, which allows users to create their own file systems in user space rather than kernel space. It provides an overview of what file systems are and some history. It then explains that FUSE allows non-privileged users to create their own file systems without editing kernel code by using a special file descriptor to communicate between user space and kernel space. Examples of simple file systems created with FUSE like a hash table based file system and ones that simulate large files or encrypt file contents are presented to demonstrate how FUSE can be used.
This document provides instructions for installing Hadoop 3.1.1 in a single-node configuration on Ubuntu. It includes steps for setting up the installation environment, configuring Java and Hadoop, and starting the Hadoop daemons. Key steps are installing Java 8, downloading and extracting Hadoop, configuring core-site.xml, hdfs-site.xml and other files, formatting HDFS, and starting HDFS and YARN processes. References for more information are also provided.
FUSE (Filesystem in Userspace) on OpenSolariselliando dias
FUSE (Filesystem in Userspace) allows implementing file systems in userspace programs. It consists of a FUSE userspace library and kernel module. The kernel module redirects VFS calls to the library via a character device. This allows non-privileged users to mount FUSE file systems after adding the proper privileges. Security concerns include privilege escalation, block device access for backed file systems, and access control enforcement.
Virtualization and automation of library software/machines + PuppetOmar Reygaert
The document discusses virtualization, automation, and Puppet. It begins with an introduction to virtualization and hands-on labs. It then covers automation through kickstart files and preseeding to automate operating system installation. Hands-on labs are also provided for automation. Finally, it discusses Puppet for configuration management, including node definitions, modules, and resources to manipulate files, packages, users and more. Hands-on labs are presented for implementing SFX configuration with Puppet.
The document provides instructions for various post-installation configuration exercises on an Ubuntu system, including: getting accustomed to using sudo; creating a new user account called "inst"; learning how to install software; updating the software repository list; installing common development packages; learning how to control services; and configuring the X Window system.
Writing flexible filesystems in FUSE-PythonAnurag Patel
Slides from a talk given at PythonPune meetup on 21st Feb, 2015, and later at PyConIndia on 04th Oct, 2015.
FUSE-Python is probably the quickest way to prototype new filesystem ideas and rapidly build a new filesystem from scratch. In these slides I cover the basic FUSE methods and data structures necessary for implementing a working filesystem.
This document discusses FUSE (Filesystem in Userspace), which allows users to create filesystems in userspace without needing kernel modifications. FUSE makes it easy to write new filesystems in any programming language by forwarding filesystem calls to userspace programs. Example uses of FUSE include hardware/network filesystems, non-traditional filesystems like those backed by databases or search results, and synthetic filesystems for compression or encryption. The document outlines the key FUSE operations like readdir, getattr, open, and read/write and provides examples of minimal filesystems written in Python using FUSE.
The document discusses the Python FUSE module, which allows users to create their own file systems in user space rather than kernel space. It provides an overview of what file systems are and some history. It then explains that FUSE allows non-privileged users to create their own file systems without editing kernel code by using a special file descriptor to communicate between user space and kernel space. Examples of simple file systems created with FUSE like a hash table based file system and ones that simulate large files or encrypt file contents are presented to demonstrate how FUSE can be used.
This document provides instructions for installing Hadoop 3.1.1 in a single-node configuration on Ubuntu. It includes steps for setting up the installation environment, configuring Java and Hadoop, and starting the Hadoop daemons. Key steps are installing Java 8, downloading and extracting Hadoop, configuring core-site.xml, hdfs-site.xml and other files, formatting HDFS, and starting HDFS and YARN processes. References for more information are also provided.
FUSE (Filesystem in Userspace) on OpenSolariselliando dias
FUSE (Filesystem in Userspace) allows implementing file systems in userspace programs. It consists of a FUSE userspace library and kernel module. The kernel module redirects VFS calls to the library via a character device. This allows non-privileged users to mount FUSE file systems after adding the proper privileges. Security concerns include privilege escalation, block device access for backed file systems, and access control enforcement.
Virtualization and automation of library software/machines + PuppetOmar Reygaert
The document discusses virtualization, automation, and Puppet. It begins with an introduction to virtualization and hands-on labs. It then covers automation through kickstart files and preseeding to automate operating system installation. Hands-on labs are also provided for automation. Finally, it discusses Puppet for configuration management, including node definitions, modules, and resources to manipulate files, packages, users and more. Hands-on labs are presented for implementing SFX configuration with Puppet.
The document provides instructions for various post-installation configuration exercises on an Ubuntu system, including: getting accustomed to using sudo; creating a new user account called "inst"; learning how to install software; updating the software repository list; installing common development packages; learning how to control services; and configuring the X Window system.
The document discusses Python FUSE (Filesystem in Userspace) which allows users to create their own filesystems in userspace without modifying the kernel. It provides an overview of filesystem concepts, a brief history of filesystem development, and introduces FUSE as a way to develop filesystems using Python and other languages. Code examples are provided demonstrating how to create a basic hash table based filesystem in Python using the FUSE API.
FUSE Developing Fillesystems in userspaceelliando dias
FUSE allows developing filesystems in userspace by acting as a bridge between the Linux kernel and filesystem implementations running in userspace. It works by passing filesystem operation requests like open, read, write from the kernel to a FUSE library in userspace. The library then calls functions implemented by the filesystem to handle each operation. A simple example filesystem is presented that implements basic functions like getattr in memory without directories. Further examples add functionality like initializing metadata, deleting files, and adding a hierarchical directory structure. Options are discussed for multithreading and concurrency support when processing concurrent operation requests.
This document provides a quick start guide for using Python on the Dell OS10 switch. It discusses accessing the Bash shell, checking hardware information using commands like fdisk and df, backing up logs to the home directory using a Python script, and running commands with sudo to copy files without permissions issues. The goal is to explore the OS10 environment and demonstrate how to run commands and access files typically restricted to the root user.
Installing and Configuring Domino 10 on CentOS 7Devin Olson
Instructions on how to do a base-level installation of IBM / HCL's Domino 10 (10.0.1) server on a Debial-based (Red Hat, CentOS, etc) Linux Server.
Includes partitioning, network configuration, ssh installation & configuration, group and user creation, minimal packages, firewall configuration, sticky bits, and more.
Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu 康志強 大人
This document provides instructions for installing Hadoop 2.2.0 on a 3 node cluster of Ubuntu virtual machines. It describes setting up hostnames and SSH access between nodes, installing Java and Hadoop, and configuring Hadoop for a multi-node setup with one node as the name node and secondary name node, and the other two nodes as data nodes and node managers. Finally it explains starting up the HDFS and YARN services and verifying the cluster setup.
The document provides an overview of tips and best practices for installing and configuring Linux on IBM System z mainframes and virtual machines. It covers topics such as bootstrapping options, DASD layouts, init scripts, networking configuration, filesystem types, replication techniques, and interacting with the hypervisor. The document is intended as a reference for both new and experienced users of Linux on System z.
This document discusses using Docker containers without Docker. It provides a Vagrantfile configuration to set up a virtual machine environment for experiments. The Vagrantfile configures a Ubuntu 18.04 virtual machine with Docker, Go, and other tools installed. The document then covers mounting namespaces and how to isolate the root filesystem of a process to emulate containers without Docker.
DSpace 1.5.2 Manual provides documentation on the DSpace open source digital repository system. It includes sections on installation, configuration, customization, updating, architecture, and various components of DSpace. The manual is copyrighted by The DSpace Foundation under a Creative Commons license.
This document provides instructions for various system administration tasks on Sun Solaris systems, including:
- Installing and configuring NFS, DNS, FTP, and other network services.
- Configuring devices like SCSI disks, modems, and tape drives.
- Performing backups, installing software packages, and viewing system information.
- Troubleshooting tips, monitoring performance, and debugging syslog.
It covers topics ranging from low-level kernel configuration to high-level network administration. The document serves as a reference guide for Solaris system administrators to complete common system management and maintenance activities.
This document provides step-by-step instructions for installing a SunRay Server 4.1 and setting up a SunRay G1 Thin Client with Debian Linux. It details installing and configuring the necessary software on the server machine, including the SunRay server software, Java runtime environment, DHCP server, and more. Instructions are also provided for configuring the thin client and networking to allow it to connect to the SunRay server.
The Ring programming language version 1.10 book - Part 92 of 212Mahmoud Samir Fayed
This document describes several low-level functions in Ring for interacting with the runtime environment and C code. These include callgc() to manually invoke the garbage collector, varptr() to get a pointer to a Ring variable for C, space() to allocate memory, nullpointer() to get a NULL pointer, and others for inspecting the runtime state. Understanding these utilities allows Ring code to interface directly with C at a low level when needed.
Cloud-init is a script that enables virtual machine activation and initialization. It is widely used in OpenStack. The document describes how to prepare a gold image in SUSE Linux Enterprise Server and then rapidly deploy new instances by cloning the gold image using either flash copy of the disk or copying the logical volume. It also covers resetting the RMC configuration and SSH keys on the new instance.
Most frequently used unix commands for database administratorDinesh jaisankar
This document provides a summary of common UNIX commands for database administrators (DBAs). It begins with an introduction and is organized into sections on file and directory navigation, file permissions, OS user management, process monitoring, and performance monitoring. Specific commands covered include ls, cd, cp, find, head, tail, less, more, cat, mkdir, rm, rmdir, touch, whereis, which, umask, chmod, chown, chgrp, useradd, usermod, userdel, passwd, who, groupadd, groupdel, ps, uname, hostname, gzip, gunzip, vmstat, top, mpstat, sar, and df.
Databases are a key part of any application. The storage subsystem contributes most to performance of the database. In recent days, new storage technologies like Solid State Storage (SSD) and high performance drives are becoming cheaper and more accessible, but it takes a lot of planning to use these technologies in a cost effective way for best price-performance.
The document discusses Hadoop and HDFS. It provides an overview of HDFS architecture and how it is designed to be highly fault tolerant and provide high throughput access to large datasets. It also discusses setting up single node and multi-node Hadoop clusters on Ubuntu Linux, including configuration, formatting, starting and stopping the clusters, and running MapReduce jobs.
'State of Puppet', presented at Puppet Camp San Francisco 2013 by Nigel Kersten, CTO of Puppet Labs. Learn more about IT automation and configuration management at www.puppetlabs.com. Bonus: 25% off a Puppet Certification Exam! Use code PU2551959831 at http://bit.ly/Sv3tQa though the end of Sept.
The document provides instructions for updating the FreeBSD 7.2 ports tree on a WebServer. The following steps are outlined:
1. Log in as the user "sermpan" and su to root.
2. Extract a backup of the ports tree files from /backups/distfiles72.tar.
3. Install and clean the cvsup port to update the ports tree files.
This document provides a summary of common commands and configuration files used in Ubuntu systems for privileges, networking, display, package management, applications, services, and system recovery. It includes commands for sudo access, configuring networking and wireless settings, starting and stopping services, installing and removing packages, checking the system version, and rebooting the system through keyboard shortcuts. Configuration files like /etc/network/interfaces and /etc/X11/xorg.conf are also listed.
This document provides step-by-step instructions for installing and configuring IBM Domino 9 Social Edition on CentOS 6. It includes installing CentOS, configuring the OS, enabling required services, configuring the firewall to open ports for Domino, creating a user account, and performing Domino-specific configuration steps. The document contains detailed explanations and commands for completing a full ground-up installation of both CentOS and Domino.
A million connections and beyond - Node.js at scaleTom Croucher
This document discusses benchmarks and performance testing of Node.js. It notes that while Node.js can handle over 1 million connections, benchmarks are not that important as other factors like productivity. It explores how to meaningfully measure Node.js performance, compares Node.js to other frameworks like Erlang and Tornado, and argues that benchmarks should reflect real-world use cases rather than simplistic "hello world" tests. The document questions overreliance on benchmarks and emphasizes picking the right tool based on the task.
Anatomy of a Modern Node.js Application Architecture AppDynamics
This document provides an overview of the typical components and architecture of a modern Node.js application, including web and application servers, a queue, worker servers, databases, caches, and how to monitor transactions as they flow through the distributed system. It also describes how to configure AppDynamics to monitor errors, transactions, hardware resources, calls to external services and databases, and end user experience for Node.js applications.
The document discusses Python FUSE (Filesystem in Userspace) which allows users to create their own filesystems in userspace without modifying the kernel. It provides an overview of filesystem concepts, a brief history of filesystem development, and introduces FUSE as a way to develop filesystems using Python and other languages. Code examples are provided demonstrating how to create a basic hash table based filesystem in Python using the FUSE API.
FUSE Developing Fillesystems in userspaceelliando dias
FUSE allows developing filesystems in userspace by acting as a bridge between the Linux kernel and filesystem implementations running in userspace. It works by passing filesystem operation requests like open, read, write from the kernel to a FUSE library in userspace. The library then calls functions implemented by the filesystem to handle each operation. A simple example filesystem is presented that implements basic functions like getattr in memory without directories. Further examples add functionality like initializing metadata, deleting files, and adding a hierarchical directory structure. Options are discussed for multithreading and concurrency support when processing concurrent operation requests.
This document provides a quick start guide for using Python on the Dell OS10 switch. It discusses accessing the Bash shell, checking hardware information using commands like fdisk and df, backing up logs to the home directory using a Python script, and running commands with sudo to copy files without permissions issues. The goal is to explore the OS10 environment and demonstrate how to run commands and access files typically restricted to the root user.
Installing and Configuring Domino 10 on CentOS 7Devin Olson
Instructions on how to do a base-level installation of IBM / HCL's Domino 10 (10.0.1) server on a Debial-based (Red Hat, CentOS, etc) Linux Server.
Includes partitioning, network configuration, ssh installation & configuration, group and user creation, minimal packages, firewall configuration, sticky bits, and more.
Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu 康志強 大人
This document provides instructions for installing Hadoop 2.2.0 on a 3 node cluster of Ubuntu virtual machines. It describes setting up hostnames and SSH access between nodes, installing Java and Hadoop, and configuring Hadoop for a multi-node setup with one node as the name node and secondary name node, and the other two nodes as data nodes and node managers. Finally it explains starting up the HDFS and YARN services and verifying the cluster setup.
The document provides an overview of tips and best practices for installing and configuring Linux on IBM System z mainframes and virtual machines. It covers topics such as bootstrapping options, DASD layouts, init scripts, networking configuration, filesystem types, replication techniques, and interacting with the hypervisor. The document is intended as a reference for both new and experienced users of Linux on System z.
This document discusses using Docker containers without Docker. It provides a Vagrantfile configuration to set up a virtual machine environment for experiments. The Vagrantfile configures a Ubuntu 18.04 virtual machine with Docker, Go, and other tools installed. The document then covers mounting namespaces and how to isolate the root filesystem of a process to emulate containers without Docker.
DSpace 1.5.2 Manual provides documentation on the DSpace open source digital repository system. It includes sections on installation, configuration, customization, updating, architecture, and various components of DSpace. The manual is copyrighted by The DSpace Foundation under a Creative Commons license.
This document provides instructions for various system administration tasks on Sun Solaris systems, including:
- Installing and configuring NFS, DNS, FTP, and other network services.
- Configuring devices like SCSI disks, modems, and tape drives.
- Performing backups, installing software packages, and viewing system information.
- Troubleshooting tips, monitoring performance, and debugging syslog.
It covers topics ranging from low-level kernel configuration to high-level network administration. The document serves as a reference guide for Solaris system administrators to complete common system management and maintenance activities.
This document provides step-by-step instructions for installing a SunRay Server 4.1 and setting up a SunRay G1 Thin Client with Debian Linux. It details installing and configuring the necessary software on the server machine, including the SunRay server software, Java runtime environment, DHCP server, and more. Instructions are also provided for configuring the thin client and networking to allow it to connect to the SunRay server.
The Ring programming language version 1.10 book - Part 92 of 212Mahmoud Samir Fayed
This document describes several low-level functions in Ring for interacting with the runtime environment and C code. These include callgc() to manually invoke the garbage collector, varptr() to get a pointer to a Ring variable for C, space() to allocate memory, nullpointer() to get a NULL pointer, and others for inspecting the runtime state. Understanding these utilities allows Ring code to interface directly with C at a low level when needed.
Cloud-init is a script that enables virtual machine activation and initialization. It is widely used in OpenStack. The document describes how to prepare a gold image in SUSE Linux Enterprise Server and then rapidly deploy new instances by cloning the gold image using either flash copy of the disk or copying the logical volume. It also covers resetting the RMC configuration and SSH keys on the new instance.
Most frequently used unix commands for database administratorDinesh jaisankar
This document provides a summary of common UNIX commands for database administrators (DBAs). It begins with an introduction and is organized into sections on file and directory navigation, file permissions, OS user management, process monitoring, and performance monitoring. Specific commands covered include ls, cd, cp, find, head, tail, less, more, cat, mkdir, rm, rmdir, touch, whereis, which, umask, chmod, chown, chgrp, useradd, usermod, userdel, passwd, who, groupadd, groupdel, ps, uname, hostname, gzip, gunzip, vmstat, top, mpstat, sar, and df.
Databases are a key part of any application. The storage subsystem contributes most to performance of the database. In recent days, new storage technologies like Solid State Storage (SSD) and high performance drives are becoming cheaper and more accessible, but it takes a lot of planning to use these technologies in a cost effective way for best price-performance.
The document discusses Hadoop and HDFS. It provides an overview of HDFS architecture and how it is designed to be highly fault tolerant and provide high throughput access to large datasets. It also discusses setting up single node and multi-node Hadoop clusters on Ubuntu Linux, including configuration, formatting, starting and stopping the clusters, and running MapReduce jobs.
'State of Puppet', presented at Puppet Camp San Francisco 2013 by Nigel Kersten, CTO of Puppet Labs. Learn more about IT automation and configuration management at www.puppetlabs.com. Bonus: 25% off a Puppet Certification Exam! Use code PU2551959831 at http://bit.ly/Sv3tQa though the end of Sept.
The document provides instructions for updating the FreeBSD 7.2 ports tree on a WebServer. The following steps are outlined:
1. Log in as the user "sermpan" and su to root.
2. Extract a backup of the ports tree files from /backups/distfiles72.tar.
3. Install and clean the cvsup port to update the ports tree files.
This document provides a summary of common commands and configuration files used in Ubuntu systems for privileges, networking, display, package management, applications, services, and system recovery. It includes commands for sudo access, configuring networking and wireless settings, starting and stopping services, installing and removing packages, checking the system version, and rebooting the system through keyboard shortcuts. Configuration files like /etc/network/interfaces and /etc/X11/xorg.conf are also listed.
This document provides step-by-step instructions for installing and configuring IBM Domino 9 Social Edition on CentOS 6. It includes installing CentOS, configuring the OS, enabling required services, configuring the firewall to open ports for Domino, creating a user account, and performing Domino-specific configuration steps. The document contains detailed explanations and commands for completing a full ground-up installation of both CentOS and Domino.
A million connections and beyond - Node.js at scaleTom Croucher
This document discusses benchmarks and performance testing of Node.js. It notes that while Node.js can handle over 1 million connections, benchmarks are not that important as other factors like productivity. It explores how to meaningfully measure Node.js performance, compares Node.js to other frameworks like Erlang and Tornado, and argues that benchmarks should reflect real-world use cases rather than simplistic "hello world" tests. The document questions overreliance on benchmarks and emphasizes picking the right tool based on the task.
Anatomy of a Modern Node.js Application Architecture AppDynamics
This document provides an overview of the typical components and architecture of a modern Node.js application, including web and application servers, a queue, worker servers, databases, caches, and how to monitor transactions as they flow through the distributed system. It also describes how to configure AppDynamics to monitor errors, transactions, hardware resources, calls to external services and databases, and end user experience for Node.js applications.
You can put html5 and css3 to use *today*. Using some clever code and trusted techniques of progressive enhancement, you'll be creating cutting edge sites that handle older browsers appropriately.
The document discusses HTML5 storage options such as localStorage, sessionStorage, Web SQL Database, IndexedDB, and Application Cache. It provides details on how to use each technology, including code examples and explaining use cases. It also covers current browser support and how to detect support for different storage options. The overall purpose is to explain why and how to use HTML5 storage technologies on the web.
Dynamic Application Development by NodeJS ,AngularJS with OrientDBApaichon Punopas
This document provides an overview of NodeJS, AngularJS, and how they can be used together with OrientDB for building dynamic applications. It discusses key concepts like non-blocking I/O in NodeJS, MVC architecture in AngularJS, data binding, directives, routing. It also compares performance of NodeJS vs Apache and explains why Angular and NoSQL are well-suited for dynamic applications that require frequent changes - since only the data model and view layers need changes, without requiring changes to the controller code or database schema.
The document summarizes Travis Swicegood's presentation on building servers with Node.js. It discusses how Node.js is an evented I/O toolkit that allows building scalable servers using an event loop model. It provides examples of simple socket and HTTP servers in Node.js, and how storing state and handling asynchronous operations like database queries differs in an evented model.
This document discusses enhancing scalability using Node.js. It describes scalability challenges and common industry solutions like horizontal and vertical scaling, which have issues like requiring load balancing and additional investments. It also discusses multi-threading and cloud computing issues like deadlocks and lack of skills. The document proposes an asynchronous, event-driven architecture using Node.js, Nginx, load balancing and a proxy server. It provides details on how this architecture allows for non-blocking I/O, high throughput and minimal latency to improve scalability over traditional solutions. A PayPal case study shows benefits of this approach.
The document discusses architecting large Node.js applications. It introduces the Cloud9 IDE and how it was used to build a JavaScript application with 10,000s of lines of code. It describes how the application was difficult to maintain due to lack of modularity. The Architect module is introduced as a way to modularize Node.js applications by treating everything as plugins that can import other plugins. Architect allows defining dependency models, easy testing of modules, and configuration of modules through options. Cloud9 uses Architect to build features like local, FTP, and SSH versions of the IDE that can run independently in a single process. Architect also enables loose coupling between modules through an event bus and centralized configuration.
Best Practices You Must Apply to Secure Your APIs - Scott Morrison, SVP & Dis...CA API Management
The document discusses best practices for securing APIs and identifies three key areas: parameterization, identity, and cryptography. It notes that APIs have a larger attack surface than traditional web apps due to more direct parameterization. It recommends rigorous input and output validation, schema validation, and constraining HTTP methods and URIs. For identity, it advises using real security tokens like OAuth instead of API keys alone. It also stresses the importance of proper cryptography, like using SSL everywhere and following best practices for key management and PKI. The overall message is that APIs require different security practices than traditional web apps.
The document provides an introduction and tutorial on Ruby on Rails. It discusses what Rails is, its philosophy of Don't Repeat Yourself (DRY), Convention over Configuration, MVC architecture, RESTful routes, and ActiveRecord. It then walks through creating a simple blog application in 5 minutes. The tutorial demonstrates how to generate models and migrations, perform CRUD actions using ActiveRecord, add validations and callbacks to models, and set up model associations. It provides tasks to scaffold a book library application with Books and Categories models along with a many-to-one relationship between them.
Node.js is an asynchronous event-driven JavaScript runtime that aims to build scalable network applications. It uses an event loop model that keeps the process running and prevents blocking behavior, allowing non-blocking I/O operations. This makes Node well-suited for real-time applications that require two-way connections like chat, streaming, and web sockets. The document outlines Node's core components and capabilities like modules, child processes, HTTP and TCP servers, and its future potential like web workers and streams.
The document discusses asynchronous programming in Node.js. It explains that Node.js uses an asynchronous and non-blocking model that requires using callbacks and event handlers. It compares synchronous and asynchronous code examples. It also discusses challenges with asynchronous code like the "pyramid of doom" and error handling. Finally, it introduces techniques for dealing with these challenges, like named callbacks, control flow libraries like Async.js, and promises.
"Building Reusable Puppet Modules" by Jon Topper at Puppet Camp London 2013. Find a Puppet Camp near you: https://puppetlabs.com/community/puppet-camp/
The document discusses Intravert, a new transport for Apache Cassandra that uses HTTP and JSON. Some key points made include:
- Intravert aims to improve on existing transports by using HTTP and JSON to make it easier to use, secure, and test from a browser.
- It was built using Vert.x for its event-driven and modular architecture.
- Intravert examples demonstrate how to perform common Cassandra operations like slices, sets, and composites using a simple REST-like syntax with JSON payloads.
- Features discussed include flexible batching, server-side filtering, and "getref" to use results of one operation in another.
This document provides an introduction to Cross-Origin Resource Sharing (CORS), which defines a mechanism that enables client-side cross-origin requests. It discusses alternatives to CORS like JSONP and server-side proxies. It explains the CORS process, including how simple requests work directly and how preflight requests are used for more complex requests involving custom headers. It also provides browser support information and links to specifications and further resources about CORS.
Similar to Planning for the Horizontal: Scaling Node.js Applications (7)
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
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
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
19. ROLLING UPDATES
1. UPDATE SCRIPT
2. WORKER -> STOP LISTENING
3. KILL WORKER
4. CALL FORK() AGAIN
Thursday, April 4, 13
20. CLUSTER MODULE
mydomain.com
> NODE > NODE
> NODE > NODE
SERVER
Thursday, April 4, 13
21. HURTLE: SHARED STATE
> NODE > NODE
NO SHARED STATE
> NODE > NODE
SERVER
Thursday, April 4, 13
22. INSTALL REDIS
> NODE > NODE
> NODE > NODE
REDIS
SERVER
Thursday, April 4, 13
23. EXAMPLE 1: SESSION
MEMORY STORE
var express = require('express'),
app = express();
app.use(express.cookieParser());
app.use(express.session({
secret: 'My Cookie Signing Secret'
}));
app.get('/', function(req, res) {
req.session.somekey = 'some value';
});
Thursday, April 4, 13
24. EXAMPLE 1: SESSION
REDIS STORE
var express = require('express'),
RedisStore = require('connect-redis')(express),
app = express();
app.use(express.cookieParser());
app.use(express.session({
store: new RedisStore({ host: 'localhost', port: 6379 }),
secret: 'My Cookie Signing Secret'
}));
app.get('/', function(req, res) {
req.session.somekey = 'some value';
});
Thursday, April 4, 13
25. EXAMPLE 2: SOCKET.IO
var RedisStore = require('socket.io/lib/stores/redis')
, redis = require('socket.io/node_modules/redis')
, pub = redis.createClient()
, sub = redis.createClient()
, client = redis.createClient();
io.set('store', new RedisStore({
redisPub : pub
, redisSub : sub
, redisClient : client
}));
https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO
Thursday, April 4, 13
26. RUNNING SMOOTH
mydomain.com
> NODE > NODE
> NODE > NODE
REDIS
SERVER
Thursday, April 4, 13
27. LAST HURTLE: HORIZONTAL
> NODE > NODE > NODE > NODE
> NODE > NODE > NODE > NODE
REDIS REDIS
APP SERVER A APP SERVER B
Thursday, April 4, 13
28. SEPARATE REDIS
> NODE > NODE > NODE > NODE
> NODE > NODE > NODE > NODE
APP SERVER A APP SERVER B
REDIS
SERVER
Thursday, April 4, 13
29. LOAD BALANCING
mydomain.com LOAD BALANCER
SERVER
> NODE > NODE > NODE > NODE
> NODE > NODE > NODE > NODE
APP SERVER A APP SERVER B
REDIS
SERVER
Thursday, April 4, 13
30. LOAD BALANCING
1. MANAGED
2. INSTALL ONE
3. WRITE YOUR OWN
Thursday, April 4, 13
31. NGINX
http {
upstream mydomain_com {
server host1.mydomain.com:80;
server host2.mydomain.com:80;
} LOAD BALANCER
server {
SERVER
listen 80;
server_name www.mydomain.com;
location / {
proxy_pass http://mydomain_com;
}
}
}
Thursday, April 4, 13
32. WRITE ONE
https://github.com/substack/bouncy
Thursday, April 4, 13
33. BOUNCY
var bouncy = require('bouncy'); bouncy module
var hosts = [
'host1.mydomain.com',
'host2.mydomain.com'
];
var count = 0;
var server = bouncy(function(req, res, bounce) {
count++;
var host = hosts[count % hosts.length];
bounce(host, 80);
});
server.listen(80);
Thursday, April 4, 13
34. BOUNCY
var bouncy = require('bouncy');
var hosts = [ Server collection
'host1.mydomain.com',
'host2.mydomain.com'
];
var count = 0;
var server = bouncy(function(req, res, bounce) {
count++;
var host = hosts[count % hosts.length];
bounce(host, 80);
});
server.listen(80);
Thursday, April 4, 13
35. BOUNCY
var bouncy = require('bouncy');
var hosts = [
'host1.mydomain.com',
'host2.mydomain.com'
];
var count = 0;
var server = bouncy(function(req, res, bounce) { Create server
count++;
var host = hosts[count % hosts.length];
bounce(host, 80);
});
server.listen(80);
Thursday, April 4, 13
36. BOUNCY
var bouncy = require('bouncy');
var hosts = [
'host1.mydomain.com',
'host2.mydomain.com'
];
var count = 0;
var server = bouncy(function(req, res, bounce) {
count++;
var host = hosts[count % hosts.length];
bounce(host, 80); Bounce request
});
server.listen(80);
Thursday, April 4, 13
37. AFFINITY
SESSION AFFINITY
STICKY SESSIONS
SEND THE SAME PERSON
BACK TO THE SAME SERVER
Thursday, April 4, 13
38. NGINX AFFINITY
http {
upstream mydomain_com {
sticky;
server host1.mydomain.com:80;
server host2.mydomain.com:80;
}
server {
listen 80;
server_name www.mydomain.com;
location / {
proxy_pass http://mydomain_com;
}
}
}
Thursday, April 4, 13
39. CUSTOM AFFINITY
req.headers['x-forwarded-for']
req.connection.remoteAddress
Thursday, April 4, 13
40. RUNNING SMOOTH
mydomain.com LOAD BALANCER
SERVER
> NODE > NODE > NODE > NODE
> NODE > NODE > NODE > NODE
APP SERVER A APP SERVER B
REDIS
SERVER
Thursday, April 4, 13
41. ROLLING UPDATES
1. REMOVE APP SERVER FROM LOAD BALANCER
2. UPGRADE APP SERVER
3. ADD BACK
4. REPEAT
Thursday, April 4, 13
43. SSL
LB SSL SSL TERMINATOR
SERVER
> NODE > NODE > NODE > NODE
> NODE > NODE > NODE > NODE
APP SERVER A APP SERVER B
REDIS
SERVER
Thursday, April 4, 13
44. SSL
mydomain.com
80 443
LB SSL
SERVER
Thursday, April 4, 13
45. STUD
EXAMPLE CONFIG FILE
frontend = [*]:443
backend = [127.0.0.1]:80
ssl = on
pem-file = "myCert.pem"
https://github.com/bumptech/stud
Thursday, April 4, 13
46. RUNNING SMOOTH W/SSL
mydomain.com LB SSL
SERVER
> NODE > NODE > NODE > NODE
> NODE > NODE > NODE > NODE
APP SERVER A APP SERVER B
REDIS
SERVER
Thursday, April 4, 13
47. HUGE
LB SSL LB SSL
SERVER SERVER
REDIS
SERVER
Thursday, April 4, 13
48. DNS
ROUND-ROBIN DNS
MULTIPLE RECORDS,
ONE DOMAIN
Thursday, April 4, 13
49. ROUND-ROBIN DNS
CLIENT 1 1. xxx.xxx.xxx.x
2. xxx.xxx.xxx.y
CLIENT 2 1. xxx.xxx.xxx.y
2. xxx.xxx.xxx.x
Thursday, April 4, 13
50. RUNNING SMOOTH
LB SSL LB SSL
SERVER SERVER
REDIS
SERVER
Thursday, April 4, 13
51. BIG ENOUGH
> NODE
SERVER
Thursday, April 4, 13
52. BIG ENOUGH
> NODE
SERVER
Thursday, April 4, 13