Java Day is annual Java Technology Conference in Minsk, Belarus. 2017 will see the 6th anniversary JavaDay.
Opening the summer with JavaDay 2017, we claim for the biggest engineer event of the season. And if in the previous years we paid attention to the right way to code on Java, now we will talk about what to do if you are an engineer to your finger tips.
That's why we will talk not only about Java (but we'll pay a lot of attention to it), but also about practices, instruments, approaches and even philosophy. Spring Boot, JWT, containers monitoring, correct integration between microservices, Continuous Delivery - everything without what Java Enterprise does not exist in 2017. How to manage the modern stack and not to get mad - you'll learn during the day from the stars of the industry.
76% of the conference's success is communication. And there is no topic hotter that future of the language and platform development.
All above mentioned and more is waiting for you at JavaDay that will be held on June 3!
As a programmer I write mostly in Java, but also in Ruby, PHP and JavaScript. I'm a founder and a lead architect of takes.org, jcabi.com, rultor.com, qulice.com, s3auth.com, and stateful.co. I'm using IntelliJ products (my settings.jar for Java). Here are my favorite books about software engineering. I'm an Oracle Certified Master, Java EE 6 Enterprise Architect (OCMEA). Besides that, I'm a proud holder of ZCE, ZFCE, and OCUP. As a founder and CTO at Teamed.io, a software development company with an absolutely unique methodology called XDSD, I'm an author of a few patent applications, including Puzzle Driven Development (PDD) Method and Software and Method for Software Cost Estimating Using Scope Champions. I'm a certified Project Management Professional (PMP®). Besides that, I'm a proud holder of RUP, PRINCE2 Foundation, MCP and COSMIC certificates.
Java Champion Michael Hüttermann is expert in Continuous Delivery, DevOps, SCM/ALM. During the last decades, he supported particularly big projects/companies on their way to deliver their services to end users faster and in better quality. Michael has written four books including "DevOps for Developers" (Apress) and "Agile ALM" (Manning). Occasionally he forwards his practical knowledge and experience at leading conferences and community meetups. More information about him on http://huettermann.net.
Alexander is software engineer at one of most popular social networks Odnoklassniki. He introduced a new architecture with microservice approach and DevOps approaches in production environment in one of the largest private bank in Russia. He has more than 10 years of experience in server-side Java development and more than two years of deployment automatization, different engineering practices. He is a Docker and DevOps fan
Principal Developer @ Alfa-Laboratory. Kirill designs and develops different APIs for bank products. He builds principles and sets of instruments for building and adopting microservices architecture in the company. Familiar with DevOps methodology and has much experience with it. Big fan of Groovy, Gradle, Spring and Netflix OSS stack. Permanent resident of Razbor-Poletov and «2d1o» podcasts. Has 2-years DevOps experience.
David Pilato is Developer at Elastic in Elasticsearch team and French spoken language User Group creator. In his free time, he likes talking about elasticsearch in conferences or in companies (Brown Bag Lunches).
Senior Software Developer at Five and a Lead Software Developer at several startups. Currently working as a Senior Java Developer on a project for Napster, a US-based music streaming service.
Philipp is part of the infrastructure team and a Developer Advocate at Elastic, spreading the love and knowledge of full-text search, analytics, and real-time data. He is a frequent speaker at conferences and meetups about all things search & analytics, databases, cloud computing, and devops.
Andrey works with Java for more than 8 years. He took part in different projects - desktop, mobile, enterprise and distributed systems. Andrey is keen on concurrency and distributed systems. Currently he leads audio&video conferencing project in Dino Systems (Saint-Petersburg).
Founder and leader of AmsterdamJUG.
Software architect and Team Lead with long experience in developing high performance software in multiple programming languages and technologies with high load traffic.
Always interested in cool new stuff, Free and Open Source software and giving talks at conferences.
Being a follower of lean approaches and Bayesian inference, Arseny is mixing his activities within software engineering, data analysis and product management for over 5 years now. Currently having a role of Data Science Team Lead in Juno, Arseny and his team are focusing on building machine learning based microservices and researching various unsorted problems.
I'm a member of Kotlin team at JetBrains. I led developing a new precise incremental compilation for Kotlin JVM. Right now I'm leading development of Kotlin JS
Ruslan is a leader of Belarus Kotlin User Group and Java Professionals BY community driver, full stack developer at ObjectStyle. Every day he reads news and articles from more than 500 sources using RSS. He likes to explore new technologies and aspires to get a deep understanding of the problem. Hackathons, meetups and conferences? Yes, this is about him. Linux and other Free Software - runs the world.
Vlad Gaevsky works as Java Developer at EPAM Belarus, Minsk. His working experience counts almost 3 years of Java developing, and despite that he has already worked with different types of projects, including large old monolith and microservices-based architecture. He is fond of modern technologies, hackathons and conferences.
Stas, as many engineers, started with web in a large high paid development in his youth. Worked with gamedev, hardware, social networks analysis instruments. Is acquainted with Java, Perl and Ruby. Focuses on development of highly loaded backend on Go for more than 2 years. In 2016 he moved to Minsk and joined Juno team. He does GIS & algorithmic solutions implementation.
Vadim started to get money for programming in 2004, but only on 2007 he focused on backend of products and services. During his 10+ years experience he has worked with high loaded systems, recommendation systems, business tools, e-commerce and finally ride-sharing in Juno. In fall of 2016 Vadim moved to Minsk and joined Juno team, he works with tasks on integration with outer systems.
Mike has been working with backend development of high loaded systems since 2010. He has participated in products development at Wikimart, Lazada, LinguaLeo. Mike has focused on tasks as SRE, improvement of stability and scaling of systems, infrastructure automatisation, outer API creation. In summer of 2016 Mike moved to Minsk and joined Juno team, he does GIS and algorithmic solutions implementation.
David is Developer @ Elastic in Elasticsearch team and French spoken language User Group creator. In his free time, he likes talking about elasticsearch in conferences or in companies (Brown Bag Lunches).
Philipp is part of the infrastructure team and a Developer Advocate at Elastic, spreading the love and knowledge of full-text search, analytics, and real-time data. He is a frequent speaker at conferences and meetups about all things search & analytics, databases, cloud computing, and devops.
Aleksandr adopts DevOps methodology in the company. He likes microservicing approach in architecture and software design and implements these principles in different Laboratory projects. Has more than 9 years experience with server-side Java development. Big fan of Docker and related with it technologies. When he has a free time he writes articles for own blog, habrahabr and dzone. Kirill designs and develops different APIs for bank products. He builds principles and sets of instruments for building and adopting microservices architecture in the company. Familiar with DevOps methodology and has much experience with it. Big fan of Groovy, Gradle, Spring and Netflix OSS stack. Permanent resident of Razbor-Poletov podcast.
Java developer with 5 years development experience, participated in hackathons, where brought teams to victory, co-leader of Belarus JUG “Java Professionals BY” community and an active speaker. Delighted with Kotlin.
Developer Advocate @ ZeroTurnaround that does development of instruments for Java engineers - JRebel and XRebel. Has more than 10 years Java development experience. Main interests are programming languages and means of software development. In his free time, Anton participates in organisation of developers community Devclub.eu in Tallinn as well as is a co-host of IT podcast "Razbor Poliotov"
Ruslan is a leader of Belarus Kotlin User Group and Java Professionals BY community driver, full stack developer at ObjectStyle. Every day he reads news and articles from more than 500 sources using RSS. He likes to explore new technologies and aspires to get a deep understanding of the problem. Hackathons, meetups and conferences? Yes, this is about him. Linux and other Free Software - runs the world.
JUnit was designed with very little thinking about objects and their design. JUnit is very procedural. Can we fix that and make our tests object-oriented too? Yes, we can.
There is a problem of finding the best instance of a service in distributed systems with dynamic configuration. Nowadays, there are many products for the configuration storage and service discovery. It should be mentioned at least Netflix Eureka, Consul, etc or good old Zookeeper. These products can keep and give configuration, manage service instances lifecycle and some of them even can be as dynamic DNS service. But main question is not about what instance may be called at the certain time. It is about what instance is better for call? This means that smart load balancing top on service discovery is required. Spring Cloud project allows to integrate these products to your project and provides powerful solutions for typical problems, that make cloud native services developing easier. This talk will review the internal structure of SpringCloud implementation of Client-Side Service Discovery and Client Load Balancing patterns. It also will include specific details of concrete implementations with examples from official libraries and the author’s own library.
Not so much time is left till the new major version of one of the most popular unit testing frameworks will be released – JUnit 5 is coming!
In this talk I will show you which new features this version will introduce, which possibilities we need to know to be ready for release, what kind of vision JUnit 5 assumes – not very deep in the code, just as overview what can be done with the power of All-new JUnit. And of course, we will try to answer the main question – “To migrate or not to migrate from JUnit 4?”
How do you mix SQL and NoSQL worlds without starting a messy revolution? This live coding talk will show you how to add Elasticsearch to your legacy application without changing all your current development habits. Your application will have suddenly have advanced search features, all without the need to write complex SQL code! David will start from a RestX, Hibernate and Postgresql/MySQL based application and will add a complete integration of Elasticsearch, all live from the stage during his presentation.
In Software Development things are continuously changing. Solutions that were completely fine just a moment ago, can prove to be a source of great pain now. And one of those solutions that worked perfectly just last week, but isn't that perfect, now is Session. We all now that HTTP is a Stateless protocol, so we (as smart as we are) figured out a way to bypass this limitation by introduction Session cookies. But from Session-related attacks on the client side, to problems with maintaining Session integrity on the server side. We found out that hacking protocols (HTTP) has it's price. So the smart IT community decided it's time to take a different approach. Enter JWT (JSON Web Token) - a Stateless solution to a Stateful problem. JavaScript community is already using JWT quite extensively, and now it's time for us to do the same (we don't want to be worse than them, do we?). In this lecture we'll take a look at what JWT actually is and how it can be used in our projects. We'll also try to summarize what problems JWT solves (and what problems it creates) with regards to the old Session approach.
Сегодня только очень ленивый разработчик не пробовал Spring Boot. Всем хочется быть на коне и во всеоружии. Мы писали Spring приложения, теперь Spring Boot. Мы тестировали Spring приложения, а теперь тестируем… ну, вы поняли. Чем проще инструмент, тем больше магии он делает «под капотом». Spring Boot не исключение. Более того, мало кто задумывается, что происходит при использовании привычных всем инструментов, описанных в документации Spring Test. Попробуем разобраться в деталях того, какие грабли нам аккуратно подложили тут и там. Для этого протестируем «типичное» приложение и зададим себе вопросы, которые должен задавать любой разработчик, использующий Spring и яростно внедряющий Spring Boot на своих проектах.
With number of requests growing, asynchronous style of writing applications is gaining popularity. We will go though the evolution steps of future in Java. Java 5 had Future, but it was blocking and to address it's limitations 3rd party libraries, such as Guava, provided their own Future abstractions. Except being not standardised, they had several drawback, that we will take a look at. Everything changed with Java 8 release which brought to us CompletableFuture. Does it need any improvements? In end of this talk, we will take a look at Scala Future and see how it compares to CompletableFuture. Also we will shed some light on other methods for managing asynchronous computations.
Thesises:
- Teams model at Amazon — two pizza's team - SDM (Software Development Manager) & TPM (Technical Program Manager) roles
- Model of artefacts, systems & servers held by a team
- Cooperation between teams and scaling practices
- Annual OP planning cycle & Agile work during the year
Containers are quickly gaining popularity as the preferred tool for deploying and running services. While being easier to deploy and isolate, containerized applications are creating new challenges for the logging and monitoring systems. This talk looks into the details about how the Elastic Stack, and in particular Beats — lightweight shippers — are gathering data from containers. The session shows our way to: * fetch logs from containers * collect different measurements from cgroups * collect metrics using the Docker API * enhance the data with the metadata of the containers * monitor the network traffic exchanged between containers * collect metrics from the underlying host We conclude the talk with a live demo of all the components in action.
Who & why needed to create a new programming language? What is Go special about, why is there so much hype and stuff? Answers to these (and more) questions I'll try to give in my talk.
Main possibilities of a programming language is always better to learn on a certain example. I'll show how you can solve an ordinary task with a minimal amount of code using simple but powerful constructions and instruments of Go.
After the application launch, the most interesting begins at production. I'll tell you what instrumenting techniques we use in order to sleep tight at nights and be sure in correct work of applications.
Kotlin is a young programming language. Originally it was designed to target the JVM, but now it targets the JavaScript too (and even Native). During this talk, we will discuss about some aspects of Kotlin JS, like: * interop with JavaScript; * things which work differently compared to JVM; * sharing code between targets; * and more.
Today more and more applications are written with asynchronous code. Languages have first class support for asynchronous programming: go with goroutines, C# and Python with async/await, and at the end JavaScript with callbacks, promises and async/await. There is already a lot of code in JVM ecosystem written for asynchronous applications: Netty, RxJava, Spring Reactor, etc. Even Java 8 provides CompletableFuture, and Java 9 Reactive Streams Interface. So clearly, asynchronous programming is our present and future.
But writing code with asynchronous primitives in Java adds complexity to our systems. Kotlin now offers means to tame this complexity by making coroutines first-class citizens in the language through the single primitive: suspending functions. We will see what are Coroutines in Kotlin, their practical use-cases and interoperability with Java.
In this interactive session, we’ll set up a holistic Continuous Delivery pipeline with the use of DevOps enabler tools, based on Cloud, microservices and container technologies. Involved tools in this live demo include: Jenkins 2, SonarQube, Docker, Artifactory, Bintray, and the ELK stack.
Введение в Spring Cloud
В рамках воркшопа мы покажем как создавать сервисы с помощью фреймворков Spring Boot и Spring Cloud, а именно:
- дадим шаблоны для быстрого старта
- покажем как собрать, упаковать и запустить сервисы
- разберём и реализуем несколько типовых шаблонов: service discovery, load balancing, circuit breaker и т.д.
- научим собирать все логи воедино
Уровень подготовки участника:
- хорошее знание Java
- ноутбук с Mac OS X или Linux-based операционной системой
- установленный Docker и git-клиент
- аккаунт на github
- наличие интернета, чтобы cкачать репозиторий с github-а и Docker-образы (ссылки будут даны ближе к ивенту)
Чтобы зарегистрироваться на воркшоп, заполните форму
The Elastic Stack is built of:
*Beats to collect data and transport them to elasticsearch or logstash
*Logstash to collect data (from beats or other sources), transform them on the fly and transport them to other tools, like elasticsearch.
*Elasticsearch to store, index, search and analyze the collected data
*Kibana to display all that
Let's start to discover the Elastic Stack. In this session, you will install and setup Elasticsearch, Beats, Logstash and Kibana. Then, you will learn how to collect different metrics with metricbeat; create an ingest pipeline in elasticsearch and parse a CSV file with filebeat and enrich it in elasticsearch with the ingest pipeline; parse a CSV file with filebeat and send its raw content to logstash which will enrich it and send it to elasticsearch; search and compute data in elasticsearch; and finally visualize all the collected data with Kibana.
Requirements:
-Laptop with Java 8 (JDK 1.8.0_20 minimum)
-Basic familiarity with a terminal
To register for the workshop, please, fill in the form
Join me in this talk to hear about my personal experience of transferring monolith business critical application to microservice architecture, with zero downtime, thanks to using API's. You will hear war stories, what went as planed, what was wrong. Hopefully you will enjoy them, have a laugh and learn new things. You will leave this talk with more knowledge and experience about this subject, and how to solve this problems if you encounter them in your day to day work.