Upload
mrdoubleb
View
5.373
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
We aim for quality, scalability and high performance! We’re going 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
We aim for quality, scalability and high performance! We’re going the JAVA way. | Bastian Buch
JAVA is the best….!
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!
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.
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
We use a bunch of different technologies…
… to name just some of them!
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.
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.
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!
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
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
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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!
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!
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!
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 )