Server::Starter is a superdaemon that allows for hot deployment of server programs without downtime or resource leaks. It works by binding to TCP ports and spawning application server processes to handle connections while signaling old processes to shutdown when new ones are launched. This allows servers to be upgraded without interrupting service and prevents issues like file descriptor leaks that can occur with other hot deployment techniques. The superdaemon approach ensures new processes launch successfully before retiring old ones, providing a fail-safe deployment mechanism.
Next-Generation Best Practices for VMware and StorageScott Lowe
This is the opening keynote presentation, focusing on VMware and storage best practices, from the Midwest Regional VMUG in Kansas City on December 6, 2010.
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...SUSE
how SUSE Manager can help you to make maintenance easier. Meaning not sitting behind your monitor in the weekend of in the middle of the night. What would be easier if you get a mail telling you when something failed. The complete maintenance should be automated. Video on https://youtu.be/_-cGTAlvN3Q
Next-Generation Best Practices for VMware and StorageScott Lowe
This is the opening keynote presentation, focusing on VMware and storage best practices, from the Midwest Regional VMUG in Kansas City on December 6, 2010.
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...SUSE
how SUSE Manager can help you to make maintenance easier. Meaning not sitting behind your monitor in the weekend of in the middle of the night. What would be easier if you get a mail telling you when something failed. The complete maintenance should be automated. Video on https://youtu.be/_-cGTAlvN3Q
Rust is the new kid on the block. It's a system programming language that is blazingly fast and offers powerful high-level abstractions better known from dynamic languages like Ruby or Python. Rust offers memory safety without a Garbage Collector and makes low-level programming easier and more secure. I will give an introductory talk about Rust and show some of its nicest features.
Presentation material for TokyoRubyKaigi11.
Describes techniques used by H2O, including: techniques to optimize TCP for responsiveness, server-push and cache digests.
Este power ha sido realizado para apoyar el seminario de arte de la FPA de Sagunt. Tiene un carácter pedagógico por lo que si alguna persona piensa que sus imágenes han sido utilizadas indevidamente, serán eliminadas.
Real time data processing with kafla spark integrationTCS
Spark streaming application through Kafka, spark integration, How to start Kafka server & configuring to run in clustering mode, Receiver based and direct Kafka extraction techniques
AWS SnapStart at Community Day Istanbul 2023Goran Opacic
AWS Lambda service is very popular among startups as it enables fast development and easy scaling but there are challenges in bringing existing business applications to Serverless world. At re:Invent 2022 AWS released a new service called SnapStart in order to make first service response very fast. It is almost a perfect solution for business heavyweights like Java and soon other platforms like .net. During the session we will dive into technical details of Lambda and how AWS managed to speed up already blazing fast execution time of Lambda functions using technologies like FirecrackerVM, CRaC and similar.
Rust is the new kid on the block. It's a system programming language that is blazingly fast and offers powerful high-level abstractions better known from dynamic languages like Ruby or Python. Rust offers memory safety without a Garbage Collector and makes low-level programming easier and more secure. I will give an introductory talk about Rust and show some of its nicest features.
Presentation material for TokyoRubyKaigi11.
Describes techniques used by H2O, including: techniques to optimize TCP for responsiveness, server-push and cache digests.
Este power ha sido realizado para apoyar el seminario de arte de la FPA de Sagunt. Tiene un carácter pedagógico por lo que si alguna persona piensa que sus imágenes han sido utilizadas indevidamente, serán eliminadas.
Real time data processing with kafla spark integrationTCS
Spark streaming application through Kafka, spark integration, How to start Kafka server & configuring to run in clustering mode, Receiver based and direct Kafka extraction techniques
AWS SnapStart at Community Day Istanbul 2023Goran Opacic
AWS Lambda service is very popular among startups as it enables fast development and easy scaling but there are challenges in bringing existing business applications to Serverless world. At re:Invent 2022 AWS released a new service called SnapStart in order to make first service response very fast. It is almost a perfect solution for business heavyweights like Java and soon other platforms like .net. During the session we will dive into technical details of Lambda and how AWS managed to speed up already blazing fast execution time of Lambda functions using technologies like FirecrackerVM, CRaC and similar.
Java App On Digital Ocean: Deploying With Gitlab CI/CDSeun Matt
This is a complete presentation on how to deploy a SpringBoot app to a digital ocean server. It covers setting up the server, building a sample app and Gitlab CI config file.
NGINX Can Do That? Test Drive Your Config File!Jeff Anderson
I have had countless conversations with developers, projects managers, and even executives that end up being about nginx and what it can do. Usually, the phrase "nginx can do that?" comes up. More often than not, the answer is YES. What happens though, is the nginx config file can get unwieldy. How can we assert that it will behave how it needs to over time? How can we avoid introducing inadvertent regressions?
Tungsten University: Configure and provision Tungsten clustersContinuent
Are you unsure of the steps needed to get your Continuent Tungsten cluster up-and-running? In this virtual course, we teach you how to get from a single database server to a scalable cluster, or from a brittle MySQL replication system to a transparent, manageable Tungsten cluster.
We discuss the benefits of leveraging Continuent Tungsten clustering with MySQL, and walk you through the steps to implement a Tungsten cluster in Amazon EC2. We cover the prerequisites, installing and configuring Tungsten, and best practices that are part of most production installations and proof-of-concepts.
Course Topics
- Configuring MySQL and the OS for proper installation
- Installing a cross-site cluster
- Schema upgrade on the master database server with minimal application downtime (switch operation)
- Automated fail over when a MySQL database server crashes
- Recovery of a failed master to a fully operational slave with a single command (recover operation)
- Switching database operations to a remote site (geo-clustering, cross-site 'switch' operation)
We will also discuss and demonstrate basic operations, such as adding and removing a cluster node, basic monitoring and troubleshooting, and discuss the basic failure scenarios.
Learn how to quickly configure and provision highly optimized Continuent Tungsten deployments in the cloud or on-premises!
Zero downtime deployment of micro-services with KubernetesWojciech Barczyński
Talk on deployment strategies with Kubernetes covering kubernetes configuration files and the actual implementation of your service in Golang and .net core.
You will find demos for recreate, rolling updates, blue-green, and canary deployments.
Source and demos, you will find on github: https://github.com/wojciech12/talk_zero_downtime_deployment_with_kubernetes
A talk I gave at the recent Advanced AWS Meeup - this is a detailed guide to how I installed and set up Spinnaker to work with our infrastructure at Stitch Fix. I go over the various problems I ran into and how I solved them. I hope this can be useful for others setting up, or interested in setting up Spinnaker for their purposes.
**Big thanks to Armory for recording the talks! Video for this talk can be found here: https://youtu.be/ywzPblFpIE0 (I'm the second speaker)**
Cloud services power the apps that are becoming backbone of modern society. The workload of cloud APIs is typically driven by external customers and can fluctuate dramatically minute-by-minute. Rapid spikes in load can result in request failures as load increases beyond backend capacity and the size of web worker pools. This talk explores the use of asynchronous frameworks like python Twisted and gevent to implement services that can dynamically keep socket connections open and increase request latency in order to avoid request failures. We explore how that architectural approach helps Twilio provides high-availability Voice and SMS APIs.
Windows Azure + PHP, Java, MySQL, LOLCODE?
This session explores the interop possiblities Windows Azure has to offer starting from the architecture that leverages The Freedom of Choice and ending up with relevant examples and usage scenarios.
Continuous Delivery at SAPIT
Gain insight into the CD processes and tools used by the web development unit at SAP IT. We will show how we use CD best practices like infrastructure as code, cloud automation, deployment pipelines, test automation and other techniques to power ongoing releases, and greatly simplify our software development and delivery capabilities.
Presented in the Continuous Delivery track at DevOps Con Israel 2013
SpringOne Platform 2017
Stéphane Maldini, Pivotal; Simon Basle, Pivotal
"In 2016, Project Reactor was the foundation before Spring Reactive story, in particular with Reactor Core 3.0 fueling our initial Spring Framework 5 development.
2017 and 2018 are the years Project Reactor empowers the final Spring Framework 5 GA and an entire ecosystem, thus including further refinement, feedbacks and incredible new features. In fact, the new Reactor Core 3.1 and Reactor Netty 0.7 are the very major versions used by the like of Spring Boot 2.0, and they have dramatically consolidated around a simple but yet coherent API.
Discover those changes and the new Reactor capabilities including support for Reactive AOP, Observability, Tracing, Error Strategies for long-running streams, new Netty driver, improved test support, community driven initiatives and much more
Finally, the first java framework & ecosystem gets the reactive library it needs !"
Similar to Server Starter - a superdaemon to hot-deploy server programs (20)
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
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.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
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!
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
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
2. Hot deployment
what is it?
upgrading web application without restarting the
application server
the goals
no downtime
no resource leaks
fail-safe
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 2
3. Current techniques
restart the interpreter (mod_perl)
pros: graceful
cons: XS may cause resource leaks, service-down
on deployment failure, cannot implement in pure-
perl
bind to unix socket (FastCGI)
pros: graceful, fail-safe
cons: only useful for local-machine
communication
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 3
4. Current techniques (cont'd)
exec(myself) (Net::Server)
pros: graceful, pure-perl
cons: file descriptor leaks, service-down on
deployment failure
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 4
5. Server::Starter
a superdaemon for hot-deploying TCP servers
superdaemon binds to TCP ports, then spawns
the application server
listen
accept
fork & exec
SIGTERM
app. logic
accept
spawn
app. servers
fork & exec
app. logic
SIGHUP
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 5
6. Reaching the Goals
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 6
7. No downtime
listening socket shared by old and new
generation app. servers
old app. servers receive SIGTERM after
new servers start
listen
accept
fork & exec
SIGTERM
accept
logic
app.
spawn
app. servers
fork & exec
app. logic
SIGHUP
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 7
8. No resource leaks
no chance of resource leaks
every generation of app. servers spawned from
superdaemon
listen
accept
fork & exec
SIGTERM
accept
logic
app.
spawn
app. servers
fork & exec
app. logic
SIGHUP
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 8
9. Fail-safe
old app. server retired if and only if the
new app. server starts up successfully
service continues even if the updated app. server
fails to start, in cases like missing modules, etc.
a good practice is to do self-testing in the app.
server before starting to serve client connections
is also an efficient way to preload modules
listen
accept
fork & exec
SIGTERM
accept
logic
app.
spawn
app. servers
fork & exec
app. logic
SIGHUP
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 9
10. Demo
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 10
12. The Low-level Code
# from command line
% start_server --port=80 my_httpd
# in my_httpd
use Server::Starter qw(server_ports);
my $listen_sock = IO::Socket::INET->new(
Proto => 'tcp',
);
$listen_sock->fdopen((values %{server_ports()})[0], 'w')
or die "failed to bind to listening socket:$!";
while (1) {
if (my $conn = $listen_sock->accept) {
....
}
}
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 12
13. Net::Server::SS::PreFork
subclass of Net::Server::PreFork
# from command line
% start_server --port=80 my_server.pl
# in my_server.pl
use base qw(Net::Server::SS::PreFork);
sub process_request {
#...code...
}
__PACKAGE__->run();
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 13
14. Using together with HTTP::Server::Simple
HTTP::Server::Simple can use
Net::Server::SS::PreFork as a backend
and many WAFs support HTTP::Server::Simple
package MyServer;
use base qw(HTTP::Server::Simple::CGI);
sub net_server { 'Net::Server::SS::PreFork' };
sub handle_request {
print "HTTP/1.0 200 HOKrnContent-Type: text/plainrnrnHello World";
}
1;
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 14
15. Using together with PSGI / Plack
started writing Plack::Impl::SSPreFork
on my github fork of Plack
uid, etc. aren't configurable yet :-(
# from command line
% start_server --port=80 -- plackup -i SSPreFork MyApp.pm
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 15
16. Launching from daemontools
daemontools
a (better) alternative to init.d scripts, by DJB
start_server script is designed to be run
under daemontools
restart using –h (SIGHUP)
all logs to STDERR
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 16
17. ToDo
Support for FastCGI
although ... (ry
init.d-style startup mode
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 17
18. Conclusion
with Server::Starter, it is easy to write
hot-deployable TCP servers
Sep 10 2009 Server::Starter - a superdaemon to hot-deploy server programs 18