📜 ⬆️ ⬇️

JBreak 2018 Java Conference Program Overview: Absolute Balance


Conference : JBreak 2018
The bottom line : The only Java-conference in Siberia
Date : March 4, 2018
Location : Novosibirsk, Expocentre, Station st., 104

Less than 2 weeks later, JBreak 2018 will take place. This time I was able to participate in the Program Committee and can not just retell other people's words, but share my impressions.


It will be very cool. This JBreak promises to be almost the most balanced combination of hardcore, practice and smoothies. Moreover, the reports are chosen so as to intersect as little as possible with the JPoint (it will be in a month). For example, Nikita Koval will be on both the JBreak and the JPoint - but with two completely different topics. This is important, for example, for those who want to go live on JBreak, and on JPoint - online.


The reports are very diverse: if you want to plunge into the hell of the insides of the JVM, Chris Talinger and Volker Simonis will come to us - well-known experts on this very thing. If you want to know about the future of Java, this is the report of Deputy Director Azul, Simon Ritter (although it’s not so easy there either - you’ll have to plunge into a bunch of JEPs, release policies, modern platform development trends, and so on). If you want to take part in an easy, bright, fast-paced show using trend technologies like Apache Kafka, Kafka Connect and KSQL - for this, Vitya gAmUssA Gamov is a co-founder and leader of the correct podcast “Flight Analysis” loved by many programmers. in the company Confluent).


In order not to take my word for it, the main questions will be covered under the cut and the full JBreak 2018 program will be presented with a description of the reports and photos of the speakers. At the very end of the article there will be a link to registration. Go!


Organization issues



Content issues



Program


JDK 9, Mission Accomplished: What next for Java?


JDK 9, including the Java Platform Module System (JPMS), has finally come to a full release. This report will begin with a quick introduction, which is to list the innovations of JDK 9 - how it will help Java developers and what kind of work we will have. Oracle has made some important statements regarding the future of the JDK in general and Java EE in particular. We will take a look at the proposed changes in the release rate, release naming scheme, on binaries using the GPL license. It will talk about the model of LTS releases and how it will affect developers and administrators. Finally, we look at the future of the Java platform as a whole. There are many JEPs and OpenJDK projects, such as Valhalla, Amber, Metrololis and Loom - the report will also explain what all this means for developers.


Simon Ritter


Simon is the Deputy General Manager at Azul Systems. He began working on information technology in 1984, receiving a bachelor of physics degree from the University of Brunel, in England. In 1996, Simon joined Sun Microsystems and began working on Java version 1.0. He spent his time both on developing the code itself and on consulting. After buying Sun, he moved to Oracle and took over the management of a team of Java evangelists working on Java core technology, Java for client applications, and Java for embedded systems. Now, while working at Azul, he continues to help people better understand not only Java as such, but also Azul technologies and products. Simon was twice awarded the status of Java Rockstar at the Java One conference, and once - the title of Java Champion. He now represents Azul on the JCP executive committee and on the Java SE expert groups (JSR 379 and JSR 383).




Create effective tests or create excuses - testing the Java EE way


Testing is still a topic that most developers diligently avoid. Despite the fact that testing is very important for getting really well-working software, developing and maintaining tests takes a tremendous amount of time and effort — especially when changes in existing functionality cause testing scripts to change. You could just throw away the tests, but this is a very bad decision. This raises the question - how can we then write enterprise tests efficiently and productively? This report aims to show what is needed to test Java EE applications — efficiently, pragmatically, and of course, automated. The report addresses such issues as obtaining fast feedback, sufficient coverage, predictable development speed. All the time will be spent on livecoding test cases that will cover different spectra of functionality and use different technologies. We will see how containers and orchestration frameworks can really help in testing complex and bulky applications. In particular, we will clearly see how to develop well-supported test code, so that it continues to be high-quality and expertly written.


Sebastian daschner


Sebastian Daschner is a Java technology consultant, author of books and articles, a trainer in various areas of development, actively involved in programming and Java (EE). He is the author of Architecting Modern Java EE Applications. Sebastian participates in JCP, and there he develops future versions of Java EE standards, participating in the work of expert groups JAX-RS, JSON-P and Config, interacting with various open source projects. For his contributions to the Java community and ecosystem, he received titles for Java Champion, Oracle Developer Champion and JavaOne Rockstar. In addition to Java, Sebastian loves Linux and Docker-like containerization technologies. He preaches Computer Science practices on https://blog.sebastian-daschner.com , on his own newsletter and on @DaschnerS. When he is not busy with Java, he travels the world - not only on an airplane, but also on a motorcycle.




Spring Boot Starter - how and why?


Spring is no longer magic (thanks to "The Spring-Ripper" and Evgeny Borisov), but the Spring Boot is often stigmatized with magic crafts. But many people like it, especially for beginners!


In the report we will highlight the following:



The report is designed for practicing Spring (and better Spring Boot) engineers who have already encountered various difficulties in supporting the weighty infrastructure developed using Spring.
')


Maxim Gorelikov


The developer from Alpha Laboratories is developing an API for mobile applications and a bit of security. Mostly uses the Spring and Netflix ecosystem, but tries everything that finds good on GitHub. Experimenting with reactive approaches, several experiments have successfully survived to production. He wants to understand not only his applications, but everything around them, so he works with all the infrastructure (logs, CI / CD, orchestration). In general, DevOps is our everything.


Cyril tolkkv Tolkachev


Developer at Alpha Lab. Develops various banking APIs. Forms principles and toolkits for working with microservice architecture. A big fan of Groovy, Gradle, Spring and the Netflix technology stack. Permanent resident of the podcast "Debriefing". DevOps methodology knows firsthand and has almost two years of experience in its application.




Graal: how to use the new JVM JIT compiler in real life


JEP 317 (Experimental Java-Based JIT Compiler) brings the moment when Graal will start to be used everywhere. In fact, Graal already exists in JDK 9, according to JEP 243 (Java-Level JVM Compiler Interface). Graal itself is written in Java, which adds new properties and features that were not previously available in HotSpot. In this report we will see how to use Graal with JDK 9, how to build Graal from upstream and what you should look at when using it in benchmarks or, maybe, even in production.


Christian talinger


Chris Talinger is a developer working on various JVMs for over 13 years. He is an expert in compilers, especially in JIT compilers. Initially I participated in the CACAO and GNU Classpath projects, but as soon as Sun Microsystems donated to JDK in open source, it focused on OpenJDK. Since then, Chris has been working on HotSpot at Sun, Oracle and is still doing it on Twitter.




Who is this tweet about #jbreak?


What could be more interesting than building data pipelines? Let's analyze the flow of tweets right here using modern technologies - Apache Kafka, Kafka Connect and KSQL! We all know and love SQL, right? So, KSQL is almost like SQL, only for Kafka. KSQL allows you to create complex systems for processing streaming data, without writing Java or Scala (sick!) Code! But the most interesting thing will start when, in real time, with the help of KSQL, we will process the tweet tape and figure out who tweets the most at the conference!


Victor Gamov


Victor Gamov is a co-founder and leader of the correct podcast “Debriefing”, which is loved by many programmers. Part-time is Solution Architect at Confluent, which is developing a platform based on Apache Kafka. Helps clients in the design and development of distributed stream processing systems. Co-author of the book "Enterprise Web Development" publisher O'Reilly. In his free time, Victor does not forget about rocking and bitsuha. He is a regular at JUG.ru Group conferences (JPoint, Joker, JBreak) and other international conferences (JavaOne, Devoxx, OSCON, Qcon). Writes to Twitter as gamussa . Keeps the channel about Kafka in Telegram https://t.me/AwesomeKafka_ru .




Clustered event sourcing and CQRS with Akka and Java


Decomposition of monolithic systems into microservices leads not only to the separation of a monolithic code, but also includes the elimination of monolithic data. Therefore, building systems assembled from loosely coupled microservices requires new strategies, both in terms of writing code and in data design. One of the commonly used alternative strategies is Event Sourcing & CQRS (Command Query Responsibility Segregation). In this report we will be able to get acquainted in more detail with the motivation behind the construction of such systems, and with the architecture of ES & CQRS. We will dive into a special demo implementation of ES & CQRS, written entirely in Akka and Java. Akka is a toolkit that provides the actor implementation of Event Sourcing & CQRS, which essentially means that such solutions can be run on distributed clusters. We will get acquainted with Akka Persistence and find out how other Akka features are used, such as cluster singltons and cluster sharding.


Hugh mckee


Hugh McKee works as a developer advocate at Lightbend. He worked for a long time to create applications that developed too slowly, inefficiently used the infrastructure, were fragile and easily broken. All this changed when he began to make reactive, asynchronous systems using actors. This radically new approach has changed his life. As an added bonus, make such systems much more fun. Now he is committed to helping other developers discover the incredible opportunities that come with switching to a new set of principles: responsive, resilient, elastic, message-driven, etc.




Java bytecode verification: when, how, and can disable?


Today, Java-developers are increasingly using libraries to generate Java bytecode in runtime for the effective implementation of various tricks that are difficult or impossible to express in the language of Java. But if using the Java language, the javac compiler ensures that the output will be the correct Java bytecode, then going down to the level of the bytecode itself, you often need to independently monitor its correctness. Otherwise, you will get jlVerifyError when loading the classes generated by you, because the JVM strictly monitors the correctness of the bytecode that it loads, using the Java bytecode verifier. Thus, when generating bytecode, it is often not enough for you to simply know the semantics of bytecode instructions, you also need to know how the Java bytecode verifier works, which bytecode it considers correct and which it does not. In this report, we will understand what mission in the JVM the bytecode verifier carries, when and how it works, whether it can affect the performance of your application and why it is dangerous to disable it.


Nikita pjBooms Lipsky


One of the initiators and managers of the Excelsior JET project, a certified Java SE implementation developed by Excelsior. Working on the project since 1997, he participated in the research and development of virtually all components of the product, from the core to the product properties. In particular, he is one of the authors of OSGI support at the JVM level in Excelsior JET, Java Runtime Slim Down technology (Java SE modularization implemented in Excelsior JET since 2007), both Java bytecode verifiers in Excelsior JET and much more.




We balance client requests together with Spring Cloud


In distributed systems with dynamic configuration, there is the problem of correctly detecting running instances of services and balancing requests between them. The main question is not even which instance can be called in principle, but which instance is better suited for a call at a certain point in time, which requires clever balancing in a constantly changing system configuration. In the report, Alexander will analyze a typical problem solution in Live Demo mode based on the Spring Cloud project, which contains ready-made implementations of the basic patterns for developing distributed applications. In the course of the demo, the internal implementation of client-side query balancing with examples from the official libraries and the author’s own library will be reviewed.


Alexander aatarasoff Tarasov


Odnoklassniki software engineer. Alexander has more than 11 years of development, mainly in Java, more than three years of practicing the introduction of various kinds of automation. He has several open source projects related to Spring Cloud on GitHub, has his own blog, writes articles on Habrahabr and DZone.




Hadoop exploitation: tips and tricks


We will talk about the problems and challenges from the operation of Hadoop, as well as how we adapted Hadoop for the infrastructure of Yandex. The report will be useful to anyone who has Hadoop in production: system administrators, DevOps, developers.


Igor Andreev


System administrator in the company Yandex. The last 4 years have been busy developing and supporting Hadoop clusters.




Side Effect Injection, or Virtuous Crutches


Remember the case when you accidentally (or not) sent to production a piece of code intended only for the test? Or temporarily inserted a tiny if'chik, for example, with Thread.sleep () or logging for debugging? Know you are not alone.There are a bunch of real-world problems, after which the test / debug code often leaves the production, turning into a time bomb, increasing the technical debt and spot on the developer’s karma. In the report, we will analyze the Side Effect Injection approach, which will allow you to embed almost any behavior into the application under test: delays, stubs, logging, security bypass, etc., but do not dirty the repository with dirty hacks or even reassemble the application itself. . In the course of the analysis, we will admire the Java code compilation options, pick up one bytecode modification case in the JVM, prepare the formal Java grammar, and then play with all this using the example of a real application.


Vladimir Plizga


: SCADA- . 6 - , . / , , , .




Zing VM


— , Java-. , . , , . , ? LLVM, ? , ? , Java- Zing, Java.



Azul Systems. 4 JIT- . 2017 Zing VM, LLVM. ART Dalvik Intel, Android Open Source Project.




-


- — , , . , , ? Java? . , .



— - dxLab Devexperts. In addition, he is a student at the Department of Computer Technologies at ITMO, where he also teaches a course on multithreaded programming. Mainly interested in multi-threaded algorithms, program verification and analysis.




ML Spark MLlib


BigData data scientist-, R/Python, , , Java/Scala, Spark MLlib. , Spark.



( — ) Java Big Data. , EPAM Systems. Hadoop/Spark 2012 , 2014, 2015. .




-, Spring 5 Reactor 3


Reactive- Spring 5 Reactor 3 , / Reactive System Reactive Stack. , . -. , . , Spring 5 Reactor 3.



, 7 . , Spring. Spring 5 Reactive-, Spring 5 Reactor 3, . , — Reactor 3, , JEEConf JavaDay Ukraine. «Reactive Programming with Spring 5».




ML Pipelines


Spark ML, . , , , , . . , , .



- 2004 , - 2007. 9 , . , . , .




Class data sharing in the HotSpot VM


Class Data Sharing (CDS) — , Java 5 Java-, , JVM . CDS . OpenJDK 10 AppCDS — , VM . JEP 310 («Application Class-Data Sharing»). CDS AppCDS, , . , CDS , AppCDS , , . ( , ), . , CDS, , OpenJDK 9. CDS/AppCDS , .



SAP JVM Technology group. OpenJDK, SAP . — OpenJDK PowerPC/AIX s390x, JDK SAP JCP Executive Committee. , JCP JSR 379 (Java SE 9), JSR 383 (Java SE 10) JSR 384 (Java SE 11).




Vert.x


? , ? , - ? Vert.x Spring Java EE. , . , . , , Vert.x . Vert.x ? , Vert.x, , .



- -. . , : ELK, Docker, Kubernetes, ..




IMDG Dev Ops


, , . Ignite, . , , , .



DevOps- Java- -. , , — . - , . in-memory data grid-, , , .




Conclusion


, . , . JBreak 2018!

Source: https://habr.com/ru/post/349442/


All Articles