If you profile your applications, symfonys builtin profiler, the web debug bar and the xhprof bundle provide a lot of service to introspect your application. But what happens if you can't optimize your php code anymore? If there is no clear bottleneck inside the database or in the php code? If the system only slows down under certain, "phase of the moon" circumstances? This talk shows profiling solutions beyond sql-logs, xdebug and xhprof. It demonstrates how to get an overview of everything that happens inside your webserver or database nodes. Tools like cachegrind, callgrind, sysprof, mytop and perf are shown.
What we Learned Implementing Puppet at BackstopPuppet
"What We Learned Implementing Puppet at Backstop" by Bill Weiss at Puppet Camp Chicago 2013. Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
Aussagen wie "Pair Programming ist langsam", "Pair Programming ist nur was für Junior Entwickler zum Übertragen von Domainwissen", "Pair Programming verbrennt zu viele Resourcen und ist nichts für mein Projekt", "Meine Tasks sind zu komplex fürs Pair Programming" oder "Im Moment haben wir keine Zeit fürs Pair Programming, wir müssen liefern (fertig werden)" werden oft als Argumente gegen Pair Programming vorgebracht.
Mit diesem Talk/Webinar möchte Martin Ruprecht den Aussagen entgegentreten und seine Erfahrungen aus den letzten Kundenprojekten weitergeben und zeigen, wann Pair Programming sinnvoll eingesetzt werden kann und warum in jedem Projekt im Pair programmiert werden sollte.
Zielgruppe:
Wenn Sie Entwickler oder Projektverantwortlicher sind, dann ist dieser Talk/dieses Webinar genau richtig für Sie.
Über Martin Ruprecht:
Martin Ruprecht arbeitet seit mehreren Jahren bei Mayflower und ist JavaScript und PHP-Entwickler. Zuvor studierte er erfolgreich Medientechnik/Medieninformatik an der FH Deggendorf. Neben seiner Tätigkeit als Entwickler bei Mayflower organisiert Martin regelmäßig Coding Dojos in München, tritt auf Konferenzen auf und hält Vorträge und Workshops zum Thema JavaScript, Testing und Qualitätssicherung in Webprojekten.
Unsere Anti-Pattern Karten sind aus unserer jahrelangen Arbeit mit Kunden, und den daraus gewonnenen Erfahrungen entstanden. Sie sollen euch dabei helfen, selbst Fettnäpfchen zu erkennen, die wir schon von außen erlebt haben, oder in die wir sogar teilweise selbst schon getreten sind. Wenn ihr noch andere Anti-Patterns kennt, dann schickt sie uns unter https://mayflower.de/agile-antipattern.
What we Learned Implementing Puppet at BackstopPuppet
"What We Learned Implementing Puppet at Backstop" by Bill Weiss at Puppet Camp Chicago 2013. Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
Aussagen wie "Pair Programming ist langsam", "Pair Programming ist nur was für Junior Entwickler zum Übertragen von Domainwissen", "Pair Programming verbrennt zu viele Resourcen und ist nichts für mein Projekt", "Meine Tasks sind zu komplex fürs Pair Programming" oder "Im Moment haben wir keine Zeit fürs Pair Programming, wir müssen liefern (fertig werden)" werden oft als Argumente gegen Pair Programming vorgebracht.
Mit diesem Talk/Webinar möchte Martin Ruprecht den Aussagen entgegentreten und seine Erfahrungen aus den letzten Kundenprojekten weitergeben und zeigen, wann Pair Programming sinnvoll eingesetzt werden kann und warum in jedem Projekt im Pair programmiert werden sollte.
Zielgruppe:
Wenn Sie Entwickler oder Projektverantwortlicher sind, dann ist dieser Talk/dieses Webinar genau richtig für Sie.
Über Martin Ruprecht:
Martin Ruprecht arbeitet seit mehreren Jahren bei Mayflower und ist JavaScript und PHP-Entwickler. Zuvor studierte er erfolgreich Medientechnik/Medieninformatik an der FH Deggendorf. Neben seiner Tätigkeit als Entwickler bei Mayflower organisiert Martin regelmäßig Coding Dojos in München, tritt auf Konferenzen auf und hält Vorträge und Workshops zum Thema JavaScript, Testing und Qualitätssicherung in Webprojekten.
Unsere Anti-Pattern Karten sind aus unserer jahrelangen Arbeit mit Kunden, und den daraus gewonnenen Erfahrungen entstanden. Sie sollen euch dabei helfen, selbst Fettnäpfchen zu erkennen, die wir schon von außen erlebt haben, oder in die wir sogar teilweise selbst schon getreten sind. Wenn ihr noch andere Anti-Patterns kennt, dann schickt sie uns unter https://mayflower.de/agile-antipattern.
Wie erstelle ich Webapplikationen mit Node.js. Vorgestellt werden verschiedene Frameworks wie Express.js oder Koa. Außerdem wird auf Skalierung eingegangen.
Airbnb is an online marketplace and homestay network enabling people to list or rent short-term lodging in residential properties, with the cost of such accommodation set by the property owner.
I am sharing a beautiful & motivational story behind the success of Airbnb.
Airbnb was founded in August 2008, is headquartered in San Francisco, California, and is privately owned and operated.
DevOps is mainstream - at least the tools, the automation and the metrics. But what happened to DevOps Culture? Does it still matter? If yes - how do we achieve it?
The Pursuit of happines displays the life event of Chris Gardener. Based on True story. Starring Will smith and jade Smith.Very heart touching story and well screened movie.
But this slide deals with the words and scripts of the movie and CHris Gardener life.
Wenn der größte Teil der Logik in JavaScript stattfinden, dann findet auch der größere Teil der Sicherheitsrisiken dort seine Heimat. Und Angreifer finden mit JavaScript eine interessante neue Heimat, denn die Sprache selbst und auch Ihre Heimat in Browser und node.js bringen viele neue Probleme. Und genau da setzt der Vortrag an: die verblüffenden Unterschiede von JavaScript zu anderen Sprachen, wenn es um Security geht. Die Risiken und auch die Besonderheiten von Browsern und anderen JavaScript-Engines wie node.js. Die Security-Implikationen von JavaScript Frameworks bishin zu speziellen Problemen wie mXSS, ReDOS und HTML5-Security.
Tools wie JMeter, ab2, WebLOAD oder httperf kennt und nutzt jeder, aber man will nicht die Hand dafür ins Feuer halten, dass es dann auch mit den angestrebten Nutzern produktiv so funktioniert. Mit ein paar Tricks, clever gewählten Use Cases, etwas JMeter und etwas Excel kann man nicht nur eine Aussage über die Performance liefern, sondern auch dafür garantieren, dass es zu 99,99 Prozent so passieren wird.
How to process data using events on top of PHP and MongoDB. Introducing Eventsourcing and CQRS, how to handle events and how to generate Read Models and Aggregates leveraging the MongoDB Aggregation Framework.
Using Apache ACE as a distribution and management platform for a large--and growing-- number of embedded devices in the field.
I used this presentation at Apachecon NA 2010.
I'm more about story and images than about text on slides, you can try to follow along here.
OSGi is becoming the technology of choice for modular and dynamic applications in many realms. One of those is the area of device-based software, which brings along its own set of characteristics and challenges. In this session, we will focus on remote management and the software evolution accompanying a large number of devices 'in the field', with ever-changing requirements, deployment scenarios, and device configurations. We'll present the case of a company which uses OSGi as the foundation for their modular device software, and the challenges they faced during their journey from small-scale pilot deployments all the way to large commercial roll-outs.
Wie erstelle ich Webapplikationen mit Node.js. Vorgestellt werden verschiedene Frameworks wie Express.js oder Koa. Außerdem wird auf Skalierung eingegangen.
Airbnb is an online marketplace and homestay network enabling people to list or rent short-term lodging in residential properties, with the cost of such accommodation set by the property owner.
I am sharing a beautiful & motivational story behind the success of Airbnb.
Airbnb was founded in August 2008, is headquartered in San Francisco, California, and is privately owned and operated.
DevOps is mainstream - at least the tools, the automation and the metrics. But what happened to DevOps Culture? Does it still matter? If yes - how do we achieve it?
The Pursuit of happines displays the life event of Chris Gardener. Based on True story. Starring Will smith and jade Smith.Very heart touching story and well screened movie.
But this slide deals with the words and scripts of the movie and CHris Gardener life.
Wenn der größte Teil der Logik in JavaScript stattfinden, dann findet auch der größere Teil der Sicherheitsrisiken dort seine Heimat. Und Angreifer finden mit JavaScript eine interessante neue Heimat, denn die Sprache selbst und auch Ihre Heimat in Browser und node.js bringen viele neue Probleme. Und genau da setzt der Vortrag an: die verblüffenden Unterschiede von JavaScript zu anderen Sprachen, wenn es um Security geht. Die Risiken und auch die Besonderheiten von Browsern und anderen JavaScript-Engines wie node.js. Die Security-Implikationen von JavaScript Frameworks bishin zu speziellen Problemen wie mXSS, ReDOS und HTML5-Security.
Tools wie JMeter, ab2, WebLOAD oder httperf kennt und nutzt jeder, aber man will nicht die Hand dafür ins Feuer halten, dass es dann auch mit den angestrebten Nutzern produktiv so funktioniert. Mit ein paar Tricks, clever gewählten Use Cases, etwas JMeter und etwas Excel kann man nicht nur eine Aussage über die Performance liefern, sondern auch dafür garantieren, dass es zu 99,99 Prozent so passieren wird.
How to process data using events on top of PHP and MongoDB. Introducing Eventsourcing and CQRS, how to handle events and how to generate Read Models and Aggregates leveraging the MongoDB Aggregation Framework.
Using Apache ACE as a distribution and management platform for a large--and growing-- number of embedded devices in the field.
I used this presentation at Apachecon NA 2010.
I'm more about story and images than about text on slides, you can try to follow along here.
OSGi is becoming the technology of choice for modular and dynamic applications in many realms. One of those is the area of device-based software, which brings along its own set of characteristics and challenges. In this session, we will focus on remote management and the software evolution accompanying a large number of devices 'in the field', with ever-changing requirements, deployment scenarios, and device configurations. We'll present the case of a company which uses OSGi as the foundation for their modular device software, and the challenges they faced during their journey from small-scale pilot deployments all the way to large commercial roll-outs.
An introduction to AWS Elastic Beanstalk, a service to help run your Java web applications on the Amazon cloud, leaving you free to focus on your app. Slides from the London Java Community meetup, 1st June 2011.
The Enterprise Architecture you always wanted: A Billion Transactions Per Mon...Thoughtworks
The Enterprise Architecture you always wanted has been hiding in plain sight since 1991. How to get to a Billion Transactions Per Month by using the Web for Enterprise Heavy Lifting
OSGi technology is becoming the preferred approach for creating highly modular and dynamically extensible applications. With open source framework implementations like Eclipse Equinox and Apache Felix readily available, there is no better time to move to OSGi technology. However, doing so requires to master the assembly, provisioning, and discovery of the components that make-up your system. Apache ACE, an Apache Incubator project, is a software distribution framework that allows to centrally manage and distribute software components, configuration data, and other artifacts to target systems. We will focus on building and managing OSGi deployments, showing you how to use Apache ACE to bootstrap a framework and deploy to remotely managed systems. Also, we will show how ACE can be used to deploy bundles to an Android based phone.
Archeology for Entertainment, or Checking Microsoft Word 1.1a with PVS-StudioAndrey Karpov
The Microsoft company has recently made a present to all programmers eager to dig into some interesting stuff: they revealed the source codes of MS-DOS v 1.1, v 2.0 and Word for Windows 1.1a. The MS-DOS operating system is written in assembler, so the analyzer cannot be applied to it. But Word is written in C. Word 1.1a's source codes are almost 25 years old, but we still managed to analyze it. There's no practical use of it, of course. Just for fun.
Teaching the Principles of Computer Science to Primary-Aged ChildrenBarry O'Sullivan
UCC Science, Engineering & Food Science Public Lecture - Professor Barry O'Sullivan
Computers are extremely important in modern life. Understanding how they work, how they reason, how they "think", what are their limitations, is a fascinating subject called computer science.This lecture is focused on making the fundamental ideas of computer science accessible to children from the ages of 7-12 and their families. We present a set of learning activities that teach computer science through engaging games and puzzles that use cards, string, crayons and lots of running around. This lecture presents a subset of activities that form part of a Public Engagement Programme for Dublin City of Science 2012.
Professor Barry O'Sullivan is Head of Department for Computer Science at University College Cork, Ireland. He is also Director of the Cork Constraint Computation Centre in the Computer Science Department at UCC, SFI Principal Investigator, Past President of the Association for Constraint Programming, Chairman of the Artificial Intelligence Association of Ireland, Coordinator of the EuropeanResearch Consortium for Informatics and Mathematics Working Group on Constraints, and Executive Council member of the Analytics Society of Ireland.
Ein Backend für ein weltweit erfolgreiches Social Game zu entwickeln ist nicht einfach, aber die eigentliche Herausforderung ist der Betrieb der Systeme! Bei Wooga sind dieselben zwei bis drei Entwickler für beides verantwortlich. Über die letzten zwei Jahren hat sich ein halbes Dutzend Teams dieser Herausforderung gestellt. Dabei konnten sie auf die Erfahrungen der vorhergehenden Teams zurückgreifen und hatten die Freiheit, eigene Lösungsansätze zu verfolgen. Der Vortrag wird die entstandene Evolution der Backends nachvollziehen: Anfangs LAMP, dann Ruby statt PHP, dann NoSQL statt MySQL und am Ende ohne Datenbank auf Basis von Erlang OTP. Die Darstellung dieser Reise wird anschaulich zeigen, welche Vorteile es haben kann, Entwicklern auch einmal freie Hand zu lassen.
Mistakes I Made Building Netflix for the iPhonekentbrew
Slides for the talk by the same name I gave at SxSW 2011. You can view the demo app at http://iflx.com, and fork the source from https://github.com/kentbrew/iflx.
Why Rust? by Edd Barrett (codeHarbour December 2019)Alex Cachia
For longer than I have existed, memory errors have plagued systems programming. Although many such errors are benign, sadly many end up being security vulnerabilities, or worse, exploits. In this talk, I will discuss how a security exploit is born, and how the Rust
programming language tries to prevent them.
What's the problem with current organisations and complex,dynamic markets? What happens if they stay with static structures when the world moves faster?
Migriert man noch mit dem Spotify-Modell den Monolithen zu MicroServices oder bedient die serverlose Architektur schon das IoT? Wieviele Inverse Conway-Maneuvres braucht man eigentlich, um die papiergetriebene Marketing-Abteilung crossfunktional zum Security-neurotischen Betriebsteam zu bekommen? Gute Ratschläge für die zukünftigen Anforderungen und E-Commerce-Architekturen gibt es viele - aber welche ergibt im eigenen Fall Sinn? Ein Versuch, etwas Klarheit und Übersicht zu schaffen, die konkurrierenden Strategien und ihre Voraussetzungen und Rahmenbedingungen vorzustellen und Wege aufzuzeigen, die passende Architektur zu finden.
Von flachen Hierarchien zur Networked Company, von losen Netzwerken zur Holacracy, von Managern zur Bossless Organization: IT-Unternehmen diskutieren zurzeit viele Begriffe aus dem NewWork-Umfeld. Warum springt gerade unsere Branche auf diese Konzepte an? Dreht sich alles um den Arbeitsmarkt und die Generation Y, oder reagieren wir auf steigende Komplexität und Dynamik? Welche Folgen hat das auf das Unternehmen und unsere Arbeit? Ein Bericht aus Theorie und Praxis, von Hypes, offensichtlichen und nicht offensichtlichen Fehlern.
Jeder von uns kennt sie – die alten PHP-Projekte, die vor vielen Jahren entstanden und heute noch eine wichtige Funktion im Unternehmen erfüllen. Und es gibt ebenso viele Ratschläge, mit diesen Applikationen umzugehen: Tests und Continuous Deployment einführen. Kompatibel zu Symfony2 machen oder gleich dahin portieren – oder doch lieber Laravel? Domain-driven Design und Microservices nutzen, durch Node.js, Go, Rust ersetzen. Der Talk zeigt, welche Optionen man hat, welche Probleme sie jeweils mit sich bringen und wie man sich entscheiden kann.
Von der Governance-getriebenen Architektur der IT-Entscheider und Architecture Boards kamen wir zur emergenten, teambestimmten Architektur, und von dort über Strategien wie MicroServices zu Organisationsformen, die wir frei anhand unserer Wunscharchitektur definieren. Im Gegensatz zu den sich immer weiter beschleunigenden Architektur- und Technologietrends bewegen sich Team- und Abteilungsstrukturen mit ihrer eigenen Geschwindigkeit - und manchmal auch gar nicht. Ein Bericht aus der Praxis, vom Planen, Scheitern, Lernen und demütiger Architektur.
Die Diskussion über New Work findet meist entlang der Perks und der Autonomie der Kollegen statt. Aber lässt sich damit alleine Effizienz, Effektivität, Innovation und Adaptionsfähigkeit verbessern? Wie aligne ich die Firma, wenn die Kollegen und ihre Teams autonom arbeiten? Muss ich meine Organisationsform ändern? Scheitere ich an meiner Firmenkultur oder meinen Managern? Ein Bericht aus zehn Jahren Theorie und eigener Praxis.
Die großen Consultancies nennen es "Digitale Transformation", Marc Andreessen nennt es "Software eats the World". Eher aus Versehen haben wir IT-ler mit Unix und Internet etwas angestoßen, dass die ganze Wirtschaft - von Handel über Organisationsdesign bis zum Management - durch den Wolf dreht. Mit den Unternehmen schlägt das jetzt wieder auf die Systemadministratoren zurück, und stellt deren Rollen und Positionen in Frage. Im Gegensatz zu den Managern wird es aber vermutlich auch in Zukunft noch relevante Aufgaben für Administratoren geben.
Liquide Rollen statt fixer Positionen
- Warum klassische Positionen –inklusive Führungspositionen – Schaden anrichten
- Wie eine liquide Rollenverteilung in der Praxis aussieht
- Welche Vorrausetzungen braucht es, wie organisiert man Führung und Karriere
Seit 2009 ist DevOps ein wichtiges Thema auf den IT-Konferenzen, und inzwischen empfehlen auch die großen Beratungshäuser eine DevOps-Strategie. Doch während sich die Tools hoher Popularität erfreuen und Quasistandard wurden, sind Kultur und Organisationsdesign auf der Strecke geblieben. Die Tools alleine realisieren nur einen kleinen Teil des Benefits von DevOps, der große Vorteil entsteht erst mit der Integration von DevOps-Struktur, Organisation und Kultur im Unternehmen zu bekommen. Wie breche ich Silos jenseits von Dev und Ops auf? Wie schaffe ich gemeinsame Ziele über die Abteilungsgrenzen hinaus? Wie mache ich eine verlässliche Testphase bei einem Deploy am Tag? Welche Strukturen von heute stehen DevOps im Weg?
In der Softwareentwicklung sind wir schon lange agil, und die Operations-Leute arbeiten mit uns in DevOps-Manier zusammen. Eventuell ist das Product Development nach Lean Startup mit uns verzahnt, und mit viel Glück hat mein Chef eine Management 3.0-Schulung besucht. Trotzdem gibt es noch immer Politik im Unternehmen. Manche Kollegen übernehmen keine Verantwortung. Es gibt Teams oder Abteilungen, die nur eigene Ziele verfolgen und nicht mit anderen kooperieren. Und, ganz ehrlich, eigentlich sollten wir manche Dinge ganz anders machen, aber niemand kümmert sich so richtig darum. Aber wie repariere ich meine Firmenkultur? Wie sorge ich dafür, dass endlich alle mitarbeiten und Verantwortung übernehmen?
Wenn ITler Verträge machen steht der Schutz des eigenen Hinterteils im Vordergrund, und in Wahrheit versteht keiner die Konsequenzen des geschriebenen. Am Ende wird er ohnehin nichtig und durch einen Vergleich ersetzt, bei dem Anwälte das Bauchgefühl der Mandanten verhandeln, um nicht bei einem vollständig sachfremden Richter ein blaues Wunder zu erleben. Aber was hilft dann, wenn der Inhalt eines Projektes erst am Ende wirklich feststeht, und die meisten schwierigen Fragen sich erst im Verlauf ergeben?
Zappos uses Holacracy with elected team representatives instead of team leads. Netflix says "Hard work is not relevant" and discourages process adherence. Teams at Facebook have every freedom to do whatever they want as long as they have "impact" with their work. Things like management by objectives, strategic goals, matrix or line organisations are discarded.
Why are they doing that? What does that mean for your startup when it reaches the magic upper limit of "it just works" at 35-50 people? Is there a blueprint for a better way? And if you already ended up in a line organisation with management by objectives etc, what would be the benefit of change?
Keiner glaubt mehr an die Versprechen aus der IT, weder Druck, Motivation noch ein grösseres Team bringen auch nur etwas Performance. Es gibt viele Fehler in der Software und die Fluktuation geht nach oben. Wie fängt man so ein Projekt ein? Eine Geschichte von den offensichtlichen und nicht so offensichtlichen Dingen, die man dabei berücksichtigen muss - aus dem echten Leben erzählt.
Die modernisierte Fassung der "Management Brainfucks": Warum wehren sich Manager gegen agile Methoden, obwohl diese zu ihrem Vorteil wären? Warum behindern sie uns Entwickler bei der Arbeit mit Formalien, Blaming, naiven Lösungsvorschlägen und Kontrollillusion? Der Talk zeigt die Wurzeln dieses Missverständnisses und wie man sich darausbewegt.
Wer als Entwickler Führungskraft werden möchte - oder noch schlimmer - von anderen dazu erklärt wird, hat einen langen und schmerzhaften Weg vor sich. Und die Erfolgsquote, das belegen die eigenen Vorgesetzten jeden Tag, ist nicht hoch. Viele gute Pläne und logische Schlussfolgerungen funktionieren in der Praxis nicht mehr, und die kollegiale Unterstützung wird durch Politik ersetzt. Wir erzählen nicht nur unsere Geschichte, sondern auch darüber was heute als gute Führung gilt.
Wer als Entwickler Führungskraft werden möchte - oder noch schlimmer - von anderen zu erklärt wird, hat einen langen und schmerzhaften Weg vor sich. Und die Erfolgsquote, das belegen die eigenen Vorgesetzten jeden Tag, ist nicht hoch. Viele gute Pläne und logische Schlussfolgerungen funktionieren in der Praxis nicht mehr, und die kollegiale Unterstützung wird durch Politik ersetzt. Die schönsten instinktiven Fehler, die besten Katastrophen nach Lehrbuch und Methode werden von jemanden vorgestellt, der sie schon alle gemacht hat.
iele Applikationen sind über Jahre erfolgreich gewesen und haben jede Änderung mitgemacht - und sind in Folge unwartbar geworden, und entsprechen längst nicht mehr aktuellen Standards. Doch um weiter am Markt zu bestehen muss man schnell agieren können, also braucht es einen Rewrite auf ein modernes Framework. Aber Rewrites schlagen häufig durch jede Deadline oder ganz fehl, und während des Rewrites muss man auf die Konkurrenz reagieren können. Die Lösung ist ein Continuous Rewrite, der mit der alten Lösung beginnt und bei kontinuierlicher Nutzung mit der neuen Lösung endet. Wir stellen Methoden und Praxiserfahrungen vor.
IT und Management geht wenig bis gar nicht. Und schuld ist Komplexität. Denn IT lebt Komplexität, und klassisches, tayloristisch geprägtes Management weiss nicht, wie es damit umgehen soll. Also wird man sich nicht einig, und die offizielle Welt löst sich völlig von der inoffiziellen, die die Arbeit macht. Warum ist das so?
Als JavaScript als Sprache designed wurde stand einfache Objektorientierung, Flexibilität und Mächtigkeit im Vordergrund - der Scope war allerdings, mit der Bearbeitung von HTML-Formularen im Browser, eher beschränkt. Heute gibt es Codebasen mit mehreren Millionen Zeilen Code in JavaScript, und praktisch jedes Problem einer Enterprise-Applikation kann mit JavaScript gelöst werden. Der Talk zeigt welche Wirkung Sprachdesign und Engine von JavaScript auf die Anwendungsfelder von heute hat, welche eigenen Fehlerklassen dadurch entstehen und wie man sie in der praktischen Arbeit umgeht.
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.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
3. L&'‘$ w(%' #"'%) &v&r*b!+* %$ $&('&+ - !r )&, :-)
Let‘s wait until everybody is here. Actually i haven‘t enough slides, so i try to spend some
time useless slides.
4. H%, -r&(' '! $&& Y!# .&r&!
A, so that‘s why we waited. Great you came, too.
5. H&* -!!+ )!!/%"‘!
I am only in software business for all the pretty people around
12. Big On-Demand
V%+&! S'r&(0%"- Platform
It was one of the first video on demand platforms around. Large scale, with some unique
licensed live events that were only streamed using this platform.
13. B($&+ !" (" &"'&rpr%$&
&1!00&r1& $!)#'%!"
To build a solid solution they decided to use an enterprise ecommerce solution as the core.
So basic performance problems shouldn‘t happen, since it was already enterprise.
14. W& (r&
pr!f&$$%!"()$!
The other reason it should scale was us. they wanted to have mayflower in the team to care
about performance und scaling issues.
15. +!"& r%-.'
Server Setup
So we cared about the server setup. We implemented a small testing environment,
benchmarked the resource usage and calculated that we‘d need 12 4-core machines for a
start.
16. Performance Testing
+!"& r%-.', '!!
When the cluster was ready. We did a classic check to see if it does scale.
17. root@local:/# ab2 -n 50000 -c 500 http://lb.ours.tld/start
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://
www.zeustech.net/
Licensed to The Apache Software Foundation, http://
www.apache.org/
...
Requests per second: A_LOT [#/sec] (mean)
Time per request: REALLY_FAST [ms] (mean)
Time per request: EVEN_FASTER [ms] (mean, across all
concurrent requests)
We first run Apache-Bench. Everything looked pretty good.
18. Then we simulated user traffic using jmeter to create realistic traffic.
19. Pr!2)%"-
%"1)#+&+!
So we tough: hey, how professional we are
23. C)!#+ Pr!3&1'
100% Hipster
It was a classic hipster cloud project. Yes, there is a memcache, a rabbitmq,mogilefs,
ejabberd, varnish, nginx and cloud! Uh, and a deployment pipeline, of course, all managed by
puppet.
24. I"'&r"() C)!#+
We started on our internal cloud - based on eucalyptus 1.6. Anybody else worked with
eucalyptus? Hate it?
However, we developed it there. It was fast and snappy. We were happy, and so was our
customer.
25. At some day it went live, and it worked great. Just like we expected it to work. Just a bit less
snappy. Responsivity wasn‘t as good.
26. F$1/%"- S)!w
Actually, it was very slow, more than 2 seconds for the start page, more than a second for
every logged in page.
27. P&rf!r0("1& Op'%04('%!" FTW!
ORM-Level-Caching
APC
Template-Caching
MemCache
So we did a lot of work. There was a caching-layer. And another one to support it. And one in
the ORM. And one for the database data. And so on.
28. S'%)) $)!!!!!!w.
But it still was slow. We tried it again at our local cloud, where it was fast.
29. T&$':
Put it on
1 Laptop
So we took an really old Lenovo R61 Laptop, and installed everything on it. MySQL, MogileFS,
RabbitMQ, eJabberD, and the whole set of production data.
30. B)5%"-)* f($'
(-(%".
And it was blazingly fast again. On a laptop, with 4G ram, not even a SSD was installed.
31. And we were like „What the fuck?“ This was a solid medium sized amazon ec2 installation,
mostly based on large vms. and it was slower than an old laptop?
32. S!, '.('‘$ w.(' '.%$ '()/ %$ (b!#'.
Stuff about profiling
we never wanted to know.
That were the stories i wanted to tell. It‘s about the things i never wanted to know about
profiling
33. J!.(""-P&'&r H(r'0("":
H(1/&r-'#r"&+-M("(-&r
H(1/&r (' .&(r'.
C!0p("*:
M(*6!w&r G0bH
(f!#"+&+ S&/'%!"E%"$ G0bH, '!!)
I am actually an old school php hacker, i even did a talk at the first php conference ever in
2000. Now i am the CTO of mayflower gmbh, we do php development. a number of php
release manager has been working for our company. we love php.
I founded sektioneins together with stefan esser, too. Ask me about security.
34. A"+ '.%$ %$ !#r
)!-! +!"& w%'.
b(1!".
And this is the mayflower logo, done with bacon! We do agile, devops, slacktime with
nodecopter projects.
35. Ev&r* "&w %0p!r'("' pr!3&1' %$ +!"& w%'. $*0f!"* 2.
We do every new, important project with symfony 2.
36. S*0f!"* 2:
I‘v& -!' !")* b($%1 /"!w)&+-&
S*0f!"* CMF $("+b7 w($
'.& !ffi1%() )(b r(' f!r '.%$ '()/
But i don‘t know a lot about it. My colleagues do, like paul, who is going to do a short talk
about fancy reactive programming symfony stutt tomorrow.
37. Z&"+ Fr(0&w!r/ 1:
( )!' !f /"!w)&+-&
i did a lot of stuff with zend framework, though, maybe that‘s the reason i end up with a
profiling talk here :-)
For sure it‘s one of the reasons we do symfony now :-)
38. Pr!2)%"-
Who in here uses the zend Profiler?
Who uses XDebug?
Who xhprof?
Symfony web debug toolbar?
Web Debug toolbar with xhprof?
Server site profiling like Valgrind? Sysprof? oprofile?
40. Reason No 1
T! 2-#r& !#' .!w '! $#rv%v& '.&
)(#"1. / #p+('& / "&w p!p#)(r%'*
First, you really want to survive the launch. or a new version update. or a tv spot for your
website tonight.
41. Reason No 2
T! 2-#r& !#' w.* *!# +%+ "!' $#rv%v& '.&
)(#"1. / #p+('& / "&w p!p#)(r%'*
Second reason: you want to know why it did not work out.
42. 9& #-)* 'r#'. (b!#' pr!2)%"-:
The first moment You are certain
about your applications performance is
one day after the launch
The bad thing about profiling is that you really, really want to know if your website stays
online, all of your customers are happy and everything is up and running. Even with a
television campaign. But you won‘t get a guarantee anyway, and in fact everybody knows this.
43. 9('$ w.* *!#r b:$ '.%"/$ %'‘$ '.&
r&$p!"$%b%)%'* !f '.& $!,w(r& -#*$.
And that‘s why your boss thinks you are the one to blame. Maybe some very stupid feature
just needs a lot of computation work to be done, the reason for a bad responsivity of the
server is always slow code, not a slow feature.
44. 9('$ w.* *!# '.%"/ %'‘$ '.&
r&$p!"$%b%)%'* !f '.& !p&r('%!" -#*$.
And, of course, there is the operations team and the operations infrastructure. If the system
slows down, it‘s their job to make it fast again. So if their hardware is not fast enough, they
should get some faster iron.
45. O" '.& !'.&r .("+ $%+&, '.&
!p&r('%!" -#*$ '.%"/ '.& +&v&)!p&r$
+!"‘' 1(r& (b!#' p&rf!r0("1& ("*w(*.
On the other hand site the ops guys thinks that the software developers simply write slow
code. which, in a lot of cases, they actually do.
47. Cr&('& (" %0pr&$$%v& pr&$&"'('%!"!
So we use a common, well established strategy: CYA.
48. W& +! 300 R&q/$!
And we do a little benchmark based on apachebench. And we prove that we are able to
service 300 requests in one second. How great we are!
55. 1
Real Test
Scenario
B&1(#$&
1 r&q#&$' != 1 !#' !f 1000 r&q#&$'$
First you need a test scenario that is close to your current or expected reality.
56. 1
JMeter
Virtual Users
(Personas)
First: use a proper Load generation tool like jmeter, webload, silk performer or similar. Create
different thread groups . Personas: In marketing and user-centered design, personas are fictional characters created to
represent the different user types within a targeted demographic, attitude and/or behavior set that might use a site, brand or product in a
similar way.
59. If *!#‘r& ()r&(+*
1
!")%"&
If you already launched it‘s easy to answer. Simply take a look at your existing web traffic.
60. Google Analytics
Webalizer
W&bA"()*'%1$ f!r V()%+('%!"
Analog
AWStats
If you already know what is happening on your website: great.Just do a webalizer or analogue
run on the access_log of a normal hour, and another one done with your benchmark. If the
result looks similar, you are generating the right kind of traffic.
61. C!rr&)('%!": 99,5%
In a few cases we did some validation using proper statistics, where we did analyzed the
correlation.
62. If *!# .(v&"‘'
1
)(#"1.&+ *&'
If you haven‘t got any data, and we are not talking about an intranet application for exactly
50 people who start working at 9 am, than you have to guess was is going to happen
63. 1
Create Scenarios based on Personas:
1 Worst Case
Users doing all the expensive stuff
2 Expected Average
„Normal“ user behavior
Since you don‘t know where you are going to end up, simply create 3 scenarios that try to
show the range of your applications performance.
64. Monitoring
1
M#"%"
C(1'%
JM&'&r-P&rf0!"
On the other hand side you need to figure out what happens on the server side. Maybe you
already got a monitoring solution installed, like cacti or munin. Cacti anybody? Planning to
change? Jmeter provides an agent based monitoring solution, it‘s part of the jmeter plugin
package.
65. Most of the time we use munin, since it‘s imply already there
M#"%"
68. A lot of consoles.
And of course a lot of consoles. To monitor everything. I am not talking about game
consoles, btw. :_
69. T!!)$ '! +! $!0& ("()*$%$:
top
iotop
vmstat
sysprof
Top - everybody should know this one. iotop: a small python script, already part of all mayor
distributions
vmstat display was originally about virtual memory statistics (hence the name), but does
processes, interrupts, paging, block io and a lot of device statistics as well. Sysprof is a
statistical, systemwide profiler i‘ll show later.
70. Ramp up? app/console does the cache warming!
Now test all your scenarios. you don‘t need any ramp up since your favourite framework
already does the cache warmup :-)
71. P:%'%v& !#'1!0&
Application still works
System is stable
Good service quality
Maybe there is some high load at the beginning, but maybe the systems get stable again. If
everything is alright, we probably bought too much hardware.
72. N!w w& .(v& ( $&'#p
f!r r&()%$'%1 pr!2)%"-
But that‘s cool, that‘s the perfect starting point for realistic profiling.
73. N&-('%v& !#'1!0&
Application still works
System is stable
Good service quality
But what happens if it goes wrong? if we are not able to provide the scalability or
responsitivity needed?
74. N!w w& .(v& ( "&&+
f!r r&()%$'%1 pr!2)%"-
Now we have to do some profiling anyway :-)
75. Default
H&*, %'‘$ ()r&(+* %" 0* IDE!
A"+ !" 0* Server!
By default you do the profiling while development in your IDE. Who has a profiler enabled? On
your local or on a close-to-production system? Lets have a closer look.
78. Ev&r*'.%"- %$ #p '! 12 '%0&$ $)!w&r
A' )&($' '.('‘$ w.(' !#r b&"1.0(r/$ '&)).
B#' .&*, %'‘$ r&)('%v& p&rf!r0("1&!
We did some benchmarking in different environments, and the slowdown caused by xdebug
was up to 12 times. That‘s quite a big difference. Now you could say: yeah, but that is just
relative.
79. 20 0$ +('(b($& q#&r* %" ( 100 0$ r&q#&$'
v$
20 0$ +('(b($& q#&r* %" ( 1.200 0$ r&q#&$'
20% vs 1.6 %
The problem is, that this makes it close to impossible to find race conditions. or to measure
the influence of external inout. See the example: a slow query my result in 20% of the request
time, or in below 2% in yur profiling environment.
81. What does really happen
in your application?
H&*, %'‘$ '.& A#'!)!(+&r!
So, what does really happen in your application. You can see it here - xdebugs callgrind-
format export.
Who knows this one? Obviously most of the time is spend inside the autoloader. That‘s
wellknown, i know.
So, do we know everything that is happening there?
82. Wall Clock Time
W& /"!w '.(' '%0& w($ $p&"',
b#' w& +!"‘' /"!w
.!w '.& '%0& w($ $p&"'
xdebug measures wall clock time, and that is fine. but that means you only know that time
was spent, not how it was spent.
84. I"$'()) v()-r%"+ ("+ ()) "&&+&+ +&b#--%"--$*0b!)$
$'(r' '.& 30&'&r '&$'
r#" !"& (p(1.& 1.%)+ $&p(r('&)*
valgrind --tool=callgrind /usr/sbin/apache2 -f /etc/apache2/apache2_single.conf -X
So let‘s have a look at valgrind / callgrind /cachegrind.
It‘s nice to have all debugging symbols installed to see what‘s happening. Start a single
apache child in valgrind while the jmeter test is running. Attention: this single request is a lot
slower, just like xdebug.
85. What does really happen
in your application?
H&*, %'‘$ '.& P(r$&r!
Again we see what really happens - now most of the (self) time is spend inside the parser.
88. Sysprof
Pr!2)%"- '.& &"'%r& )%"< $*$'&0,
#$&r- ("+ /&r"&)$p(1&
f($' pr!2)&r w%'. )!w 2"-&rpr%"'
Sysprof tells you about everything that is happening inside your cpu. and, the performance
impact is okeyish
89. root@local:/# sysprof-cli myoutfile
... wait some seconds to gather enough data ...
... stop with ctrl-c when you are done ...
root@local:/# sysprof myoutfile
And that‘s how it works: when the jmeter test is running, sysprof-cli is started for some time.
It‘s stopped with ctrl-c and writes the data to the filesystem. this file can be viewed with
sysprof itself, which is a X11 software.
90. T&$' r#" w%'. =+&b#- )!(+&+
18% of the time spent to look at the watch?!
Most of the time is spent within PHP, and that‘s expected to happe. but half of the time is
spent within gettimeofday, a system call that is rather slow, especially when used in 32bit
environments. so 18% of the whole cpu time is used to look at the wallclock.
92. root@local:/# perf record -a -F 10000 sleep 60
... creates 600.000 samples ...
... saving result in perf.data ...
root@local:/# perf report
Because the memory bus is slow ...
93. War Story 2
Now we have got the toolset to look at our war stories.
96. $*$pr!f
page_fault is the reason?!
R&($!": XEN 0&0!r* $.(r%"- !" (05!" &12
We saw a lot of page_faults. but there was no swapping. So this should not happen?!
_very_ expensive page_faults due to memory sharing in XEN
Solution: memory sharing, pages marked as read_only -> page_fault
and this very page_fault was slow in 32bit guests in 64bit hosts.
98. Everything was 2"&.
Until 10 minutes before the life event.
Then everything was $'#1/.
You remember? Where we went not only live, but dead.
99. D&f(#)' pr!2)%"-
Xdebug profiling
xhprof profiling
iotop, vmstat, ...
cacti monitoring ...
Ev&r*'.%"- %$ 2"&, b#' $'%)) $'#1/ w.&" %' 0(''&r$?
And we have had the same problem - everything looked fine in normal profiling.
100. W(%' f!r 'r!#b)&
50 terminals running
top, atop, htop, iotop, mytop etc
And we waited, and when the next wave hit us we could see it in mytop: next slide
102. $0(r' 0*$q)-pr7*-)!--%"-
See
https://github.com/patrickallaert/MySQL-Proxy-scripts-for-devs
root@local:/# mysql-proxy -P 192.168.178.32:4400
--admin-username=root --admin-password=mypw
--admin-lua-script=/usr/share/mysql-proxy/admin.lua
-s /usr/share/mysql-proxy/debug-blind.luaab2 -n 50000
-c 500 http://lb.ours.tld/start
12,345678 ms select * from mytable ...
2,123456 ms insert into mytable ...
This creates a mysql proxy listener on port 4400, that forwards all request to the local server.
Logging all queries with execution time, removing all unneeded whitespaces. for the _whole_
system, nod for a single process.
104. O'.&r w(r $'!r%&$:
IBM /&r"&) 0!+#)& $1r&w%"- IO %" 1!"1#rr&"1*,
b#' .%+%"- ("* %!w(%'
I"-0&0!r*-C(1.%"- )(*&r$ +!&$
0!r& b(+ '.(" -!!+
We‘ve got more war stories of this kind, mostly fixed with tools like oprofile, sysprof, vmstat
and the like.
105. W.* $.!#)+ % 1(r&?
B&1(#$&:
T!+(*$ $*$'&0 (r1.%'&1'#r& %$ 1r&('&+ b* +&v&)!p&r$
D&vOp$: Y!# (r& r&$p!"$%b)& f!r pr!+#1'%!", '!!
Y!# 1("‘' ; ( !p&r('%!"() b#-
1(#$&+ b* (pp)%1('%!" 1!+& !'.&rw%$&
Now you might ask: why should i care? i am a developer, not a system administrator?
Because:
106. W.('‘$ %" f!r *!#?
A recommended setup
(but not very surprising)
Setup:
Symfony CMF sandbox
1400 requests with concurrency 20
107. Pure PHP With APC
With Xdebug 6 APC With APC, with New Relic
With APC,XHProf
5000
2698
3750
2500
1250
0
Low Average High
new relic is too slow for production right now.