28
We aim for quality, scalability and high performance! We’re going the JAVA way.

IS24 - we aim for quality, scalability and high performance. We go the java way

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way.

Page 2: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

About me… International Media and Computing, FHTW Berlin Antwerpes & Partner, Promark / Makromarkt Online, InPlus, TAO Consulting, Regis24 … Currently: Team Lead, IT Development at Immobilienscout24

Page 3: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

JAVA is the best….!

Page 4: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

JAVA is the best….!

JAVA is still one of the best Web-Platforms! He‘re is why we use it!

Page 5: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

First of all, let me give you an overview about SW-Engineering at Immobilienscout24.

Page 6: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

Developer@Immobilienscout24 – An Overview

150+ Engineers

Agile Organisation (Scrum + Kanban)

1Mio++ Lines of Code

7 Service Lines / 21 independend Teams

Supporting Teams: Architecture, QA, DB, Operations, Application Management, DWH,

CMS, Scrum-Master

Host for JUG-BB and Supporter of IT Conferences

Publisher of OpenSource Projects

World-Class CLD Approach

International Culture

Monthly Innovation Days

12+ yrs

Page 7: IS24 - we aim for quality, scalability and high performance. We go the java way

We use a bunch of different technologies…

… to name just some of them!

Page 8: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

… and as you see – in our Web Development, we use Java and Java/JVM based

Technologies.

Page 9: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

The reason is NOT that we think the alternatives are useless or unable to match most of our

platform requirements.

Page 10: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

The reason is that the JAVA ecosystem is mature enough to support our goals as one of

europes biggest web-platforms!

Page 11: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

The reason is that the JAVA ecosystem is mature enough to support our goals as one of

europes largest web-platforms!

Highest System Quality

Scalability to support Internationalisization

High Performance / Realtime Services

Balance between performance and health

Data Quality and Security

Work with the best developers out there

Productivity and Transparency

FUN

Be innovator or early adoptor for new disruptive product approaches

Be Cloud Ready

Grow as the market leader and LAST

Page 12: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

The IS24 architecture for dummies….

40 Mio/Visits per Month

LB

Web Tier

Middle Tier

Persistence

http

Spring Remote

Application A Application B Application C Backoffice

Data Management

Async Processing

Importer Test / Development

Other DB / Persistence

Application B Application A

TERMS (Oracle)

MongoDB

MySQL

Page 13: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

The IS24 platform – it‘s bigger than you think.

CRM

Overall IT System

Productive System

Core Web Portal

Ticket

Exchange

WinLine

QA/ Test

Mgm

Build

CMS

SVN

CVS

Documentation

Web MT DB

Makler

GIS

HPB

FAQ Immo Wiki

Importer

Mgm

ODS/ DSS

NAS/ SAN

Logging

null-provision.de

9flats

SEO

Android

Austria Platform

iOS

Meine Nachbarschaft

API

Page 14: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

The IS24 Technology Stack

Vanilla Profile Common Java Profile

Orange Profile Web Application Profile

Green Profile PHP Profile

JAVA 6/7 Spring Frmw. for Dependency Injection Hibernate, JPA for ORM, Validation, Persistence (Oracle 11g) JAXB for XML Processing Apache ActiveMQ for Messaging / Service Integration Apache Camel for Enterprise Integration Apache Solr for Fulltext Search

…adds to Vanilla Spring Security Spring MVC Spring WebFlow Apache Tiles Apache CXF iText JSP, JSTL Tomcat 6/7 as Servlet Container

PHP 5+ ZEND Framework Apache HTTP MySQL

Red-Hat Enterprise Linux

Blue Profile Grails Profile

Grails Apache HTTP Tomcat 6 MongoDB

Page 15: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

The IS24 Application Principles

Run on several servers at the same

time

Utilize shared data backends

Able to run in several data

centers without synchronous data

replication

Accessible through a load balancer

Access remote networks via proxy

Stateless or able to transfer state

through different servers

Ability to start/stop servers without

interrupting the UX

Monitored by Nagios or JMX/HTTP interfaces

Page 16: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

Let me now give you a brief description of the JAVA features that make our

live much easier.

Page 17: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

JAVA features that make our live easier…

Static Typing

Java is strict about static typing. Therefore it often takes much longer to develop features (because code is much more verbose) but on the other hand refactorings are much easier (because IDEs can give lots of feedback). Even big teams with hundreds of developers can easily work on and evolve the same code. We believe that Applications that are written in JAVA are built to last. Another business critical aspect of systems is Data Quality. Static Typing supports developers and system engineers in getting a fairly high Data Quality.

Page 18: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

JAVA features that make our live easier…

Documentation and Community

The history of JAVA is pretty old and has a long history. The documentation and the community around JAVA was great from the beginning. You find answers to almost all problems you find. Learning JAVA is pretty straight forward. Working with JAVA is pretty easy – you don‘t have to spend your time with experimenting and searching for solutions for problems nobody solved before.

Page 19: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

JAVA features that make our live easier…

Out of the Box Functionality

and JSR

The core functionality of the JDK is pretty comprehensive (Collection Framework, Concurrency, Data Types, DB Access, Internationalization, RMI, Graphics, Reflection, IO, Networking,, Security, XML, Data Processing, Math, etc…. In other languages it‘s 3rd party providers that deliver specific functionality. The JSR Process defines standard interfaces 3rd party providers can implement – so in most cases developers can interchange technologies without massivley refactor the whole system. JAVA is very helpful to find and orchaestrate specific functionality. It makes it much easier for multiple teams to work on the same software because it is standardized.

Page 20: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

JAVA features that make our live easier…

JVM supports multiple

languages

Initially the JVM was designed to run only Java-written Applications. But as time went by more and more languages were adapted or designed to run on the java platform: Clojure, Groovy, Scala, Kotlin, JavaFX, JRuby, Jython…. Years ago we decided to go the Java + Oracle way, and with the broad Support of different languages within the same platform (JVM) we‘re now able to also use other languages, database technologies etc. for specific applications (e.g. Not Java but Grails for Austria Platform, Not Oracle but MySQL for Baufinanzierung) while still being able to use existing libraries, services etc. The JVM gives us the highest possible flexibility without the risk of Vendor Lock-Ins or Rewriting stuff for any new product.

Page 21: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

JAVA features that make our live easier…

Concurrency

In the last years a lot of new Web-Technologies conquered the market. Most of them aim especially for developer productivity (easy to write (dynamic typing), easy to run (script based), web-centric (request – response), UI-supportive (Ajax Support…). Java / the JVM is designed for enterprise and data driven applications, but can also be used to develop web-applications . An important feature of Java is it‘s Concurrency-Model (with JEE even distributed in the cloud). This helps us to meet the ever rising high performance requirements and the massive loads. Btw. Even Twitter changed from Ruby to Java to use this killer feature.

Page 22: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

JAVA features that make our live easier…

Tooling

The Java Community and also the Market of commercial and enterprise provides around Java is pretty big and developed a wide range of tools for developer productivity, quality, monitoring and profiling, documentation, analysis etc. In most cases there are both OpenSource and Commercial alternatives. We use: Sonar (Quality), Eclipse and IDEA (Java IDEs), Maven, Jenkins / TeamCity, etc. Maybe the massive amount of professional and mature tools developers and application managers can use to implement, build, analyse and run JAVA Applocations is one of the most important arguments pro Java.

Page 23: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

JAVA features that make our live easier…

Security

Underlying the Java SE Platform is a dynamic, extensible security architecture, standards-based and interoperable. Security features — cryptography, authentication and authorization, public key infrastructure, and more — are built in. The Java security model is based on a customizable "sandbox" in which Java software programs can run safely, without potential risk to systems or users. Btw. The strong static data typing is a great security feature! No program is absolutely secure but we believe that the security package JAVA and Spring provide - especially for Web based applications – has the highest standard.

Page 24: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

Documentation and Community

Static Typing

Out of the Box Functionality

and JSR

JVM supports multiple

languages

Concurrency

Tooling Security

Page 25: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

IS24 isn‘t a Startup anymore! It‘s not only about bringing features out as fast as possible – ist also about quality and sustainability!

Page 26: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

Great Startups will become mature as well. Requirements will change!

Page 27: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

Think about where you want to be in 15+ yrs…. And choose your technologies wisely today!

Page 28: IS24 - we aim for quality, scalability and high performance. We go the java way

We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch

Thank you! (btw. We‘re hiring great SW Engineers )