Web Performance Optimisation (Part 2): Perceived Performance

In the previous article of this series we talked about the boundaries of Web performance optimization (WPO). We introduced some metrics and a scale of measurement but we omitted one large part of the problem due to the purely technical point of view we took previously. In reality, while time and performance can be measured objectively it is perceived subjectively by humans. Static measurement scales and performance analyses are relevant for performance measurements but largely irrelevant in real world usage. As long as users have to interact with an application we have to make sure that we test and evaluate the application’s performance from a real user’s perspective. Consequently in this part of the series we want to talk about perceived performance and why it makes sense to put the user first when it comes to WPO. Weiterlesen

Catch the inovex Tram [Gewinnspiel]

Juhu, es ist soweit: Seit wenigen Tagen fährt die inovex-Tram durch Karlsruhe (Linie 1 bis 6) – und wird dies auch noch ein ganzes Jahr lang tun. Grund genug, eine neue Verlosung zu starten, bei der ihr jeden Monat ein digitales Gadget gewinnen könnt. Lest weiter und erfahrt, wie das Spiel funktioniert und welcher Preis in der dritten Runde winkt. Weiterlesen

Agiles Requirements Engineering mit Story Maps

Professionelles Requirements Engineering ist auch bei agilen Vorgehensweisen wie Scrum oder Kanban eine wesentliche Voraussetzung für den Projekterfolg. Die maßgeblichen Gründe hierfür liegen in der Vielzahl von Stakeholdern, die unterschiedliche Interessen haben können, sowie in komplexen Anforderungen, die für Einzelne und insbesondere die Projektsponsoren und Product Owner kaum überschaubar sein können. In diesem Artikel zeigen wir die Herausforderungen des Requirements Engineering in agilen Projekten auf und geben Tipps und Erfahrungswerte weiter, wie man diese mit Story Maps meistert. Weiterlesen

Kubernetes Logging with Fluentd and the Elastic Stack

Kubernetes and Docker are great tools to manage your microservices, but operators and developers need tools to debug those microservices if things go south. Log messages and application metrics are the usual tools in this cases. To centralize the access to log events, the Elastic Stack with Elasticsearch and Kibana is a well-known toolset. In this blog post I want to show you how to integrate the logging of Kubernetes with the Elastic Stack. To start off, I will give an introduction to the log mechanism of Kubernetes, then I’ll show you how to collect the resulting log events and ship them into the Elastic Stack. I also provide a GitHub repository with a working demo. Finally, I highlight some considerations for the production deployment. Weiterlesen

Pixel (XL) im Langzeittest: Frontalangriff auf das iPhone

Schon im Vorfeld ihrer Veröffentlichung sorgten Pixel und Pixel XL – die ersten „Smartphones von Google“ – für Schlagzeilen: Während die tiefe Integration von Software und Hardware nie dagewesene Performance versprachen, sorgten das Design und die hohen Preise der Nexus-Nachfolger für Kopfschütteln. In unserem Test lest ihr, wie sich Pixel und Pixel XL nach einigen Wochen im Dauereinsatz schlagen und ob die Leistung den höheren Preis tatsächlich Rechtfertigt. Weiterlesen

24/7 Spark Streaming on YARN in Production

At a large client in the German food retailing industry, we have been running Spark Streaming on Apache Hadoop™ YARN in production for close to a year now. Overall, Spark Streaming has proved to be a flexible, robust and scalable streaming engine. However, one can tell that streaming itself has been retrofitted into Apache Spark™. Many of the default configurations are not suited for a 24/7 streaming application. The same applies to YARN, which was not primarily designed with long-running applications in mind. Weiterlesen

Modern CI/CD with Jenkins 2 and GitLab CI [Comparison]

Continuous integration (CI) and continuous delivery (CD) are a great help, providing the flexibility needed for agile software development methods like Scrum and Kanban. With CI/CD, you don’t have to constantly struggle with the build and deployment processes of your software project. Once correctly configured, you can be assured that the whole build and delivery process is just a matter of pushing the code into the source code management system or even more simply pressing a button. Weiterlesen

Using ReactJS with AngularJS

After releasing React in 2013, Facebook kicked off some discussions in the JavaScript community about comparing React with common libraries. Indeed, the library increases the pressure on established Frameworks because of its many modern ideas and patterns. Concepts like the implementation of a virtual DOM and the component architecture allowed programmers to create web applications which run faster and are more easily maintainable. At the same time frameworks like Angular still suffer from performance problems heating up the discussions about their concurrency.

Beside the ongoing competition between React and Angular, some people try to benefit from both technologies. The ngReact library is an example of such an approach. The Angular module allows using React as a view component inside Angular applications. Usual Angular templates can be replaced with React components which try to give you more flexibility and promise to improve the overall performance.

This blog article examines the use of the ngReact module to speed up Angular’s list rendering performance. Weiterlesen