DevCamp 6.0

18.06.2018

This Time, Our Development Trip Took Place at the Sokolik Cottage In Proseč East Bohemia.

This time we were divided into teams and assigned in advance chosen six topics. The projects were either to create prototypes of new applications or optimizing and improving certain processes. Results of work from DevCamp 6.0c can be used internally as well as in our client projects.

DevCamp 6.0

This year we focused on the following topics:

Automation and Orchestration of Server Environments and Container Applications

Team: Tomáš Zajíček, Aleš Kratochvíl, František Herein

"First, we tested the pre-selected tools for server environment automation - Salt, Chef, and Ansible. Based on practical knowledge of testing and comparing the ease of use and deployment of individual instruments in our operations, we chose for further use in DevOps Ansible, for which we created a playbook to configure our standard server environment, versioned in Git repository, assuming use of a standard git flow to promote and review changes in configuration files. Additionally, an AWX production instance was prepared to run and display the results of Ansible playbooks. Ansible, in conjunction with the Git repository and AWX interface, enables the operating team to quickly define and configure configurations and promote changes in server environments, which is especially beneficial due to the ever increasing the number of servers that often form clusters.

For orchestration of applications containerized by Docker, we decided to try an open source orchestration system Kubernetes with creating its own on-premise cluster. Like with Ansible it applies that Kubernetes configuration scripts written in YAML format are stored in a Git repository, and any changes to the configuration and deployment of the versioned application are subject to code review."

Form Analysis on SDP Platform

Team: Jan Kučera, Jozef Krcho, Tomáš Konrády

"At Dev Camp we expanded the functionality of JavaScript collector so that it sends information about user behaviour on the form. Through Kafka streams we then do aggregation of messages within one unique user interaction with the form.

Following this, we created an extension into the fake-log-collector utility within the development of backend, which instead of random reports generated "scenarios" simulating user interactions.

We encountered certain complications during the development, mainly in Kafka Stream engine handling message windowing, as well as Kafka streams API struggling with limitations of Java. Towards the end of the last day we eventually managed to visualize the incoming data through Grafana visualization tool."

Operational intelligence (application performance monitoring) on SDP Platform

Team: Lukáš Matějka, Aleš Rybák, Milan Hruban, Martin Bartoš

This year we focused on Stream Data Platform and Application Monitoring tools. The goal was to display a streamlined report that shows the performance of retrieving individual webpages in real-time, both from the client's point of view (the page render time measured in a Java written script) and from the perspective of a server (processing time and server response error). The user can see in the report specific statistics - for example, the most visited page (showing the product and its potential purchase), which has the worst performance in terms of loading time. Loading and displaying time are two of the important factors for the usability of a site, often deciding whether the end user leaves the page or not.

Finally, we have prepared a specific visualization of the report, into which the aggregated data flows in real time."

Loading Speed Optimazation

Team: Tomáš Plecháč, Jakub Mišenko

"The main purpose of our activity was to optimize the speed or, even better, to plan the performance of the budget. The goal was to maximally eliminate the time required to deliver to the end-user the web-based content and increase the customer experience along with the business value of our solutions. After a thorough research, we did evaluation and selection of the necessary metrics related to the nature of client solutions we offer, the working the necessary tools, such as WebPagetest, Google PageSpeed Insights and Lighthouse extension for Google Chrome. Subsequently, we have empirically determined the ideal time ranges (medians) of the partial measured parameters we will follow and target. There is still a lot of work to do, for instance with test automation and continuous evaluation, but it is a challenge that makes sense to accept. "

Delivery Pipeline Application

Team: Adam Hladík, Tomáš Janatka

"Delivery Pipeline application aims to visualize the required business capabilities based on known business cases and their time and capacity parameters. First, we reviewed the original application design; then we decided to start from scratch. We exchanged the original Material Design for React Bootstrap, as we had more knowledge of Bootstrap. Our first task was to revive the individual components and link them with API. In addition, we prepared the appearance of the application, the form of the individual components, and using mock data we put into operation the main graph visualizing so-called opportunities against the capacity of Lundegaard in time and FTE.

The icing on the cake and the last point was to link our application to Lundegaard CRM production system. In the end, we presented the application with real-time data."

Come App

Team: Jakub Kohout, Lukáš Sulík, Václav Jančařík

"Our team's goal was to create a mobile and web application that would visualize the use of Lundegaard offices. At the same time, Václav Jančařík and Lukáš Sulík wanted to give a go to Clojure and ClojureScript technologies – and how else to do it than by developing the application without any previous experience!"

Jakub Kohout was developing the mobile application with the help of React Native. Lukáš Sulík as created the web application as SPA in the functional ClojureScript language (Clojure can be compiled into JavaScript).The back end for the above-mentioned applications was developed by Václav Jančařík in Clojure, which runs on JVM and enables interoperability with Java libraries and tools (the server can be deployed on Tomcat, for example, and can use Java adapters to connect to databases). Contained applications developed in individual teams have successfully deployed the final day of the presentation in the ready-made Kubernetes cluster , which we are looking forward to for further deploying and running our applications.

There was a lot of work, but we also found time to have fun. We enjoyed it relax in the jacuzzi, bathing in swimming pool, sauna or running workouts before corporate and relay race RunCzech O2 . We also supported team spirit in games such as paintball, ping pong, basketball or football. Evening games on the Playstation and intense debates over well-chilled beer. Simply DevCamp with everything you want!

4 hours of development in 40s:

DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0
DevCamp 6.0