lundi 29 décembre 2014

Spectacular Java


This post is a sample of what Java technology can do with or without Java Language.

Some use cases are spectacular and show the capacity of Java to operate under hard conditions : high availability, BigData, ...


JavaCard : an OS for card

Oracle claims two milliards deployments per year on various hardwares.

Sources:
http://www.oracle.com/us/technologies/java/embedded/card/overview/index.html
http://fr.wikipedia.org/wiki/Java_Card

BigData : storage

Apache Cassandra is a NoSQL DB written in Java, here are some deployments :

- Apple : 75 000 nodes, 10 peta bytes of data
- Netflix : 2 500 nodes, 420 tera bytes of data, 1 trillion requests per day
- eBay : 100 nodes 250 tera bytes of data

Originally built by Facebook then given to Apache fundation.

Shiny customers   : Cern, GitHub, ...

Sources :
http://cassandra.apache.org/,
http://fr.wikipedia.org/wiki/Cassandra_%28base_de_donn%C3%A9es%29


Apache HBase is also a NoSQL DB written Java :
- Facebook : replace Cassandra since 2012 to store messages.
- Twitter
- Yahoo

Sources :
http://hbase.apache.org/
http://fr.slideshare.net/brizzzdotcom/facebook-messages-hbase
http://wiki.apache.org/hadoop/Hbase/PoweredBy



System admin : Puppet

Yes, it's real.

Operationals are probably the most hateful people about Java and probably the most ignorant about it.

Although, one of the most known and use system technology use Java : Puppet.

Puppet Server run now on JVM :

"
The JVM is an ideal platform to use for long-running server side applications. It's been battle-tested over the last 20 years, and it’s an extremely fast, stable, and reliable platform on which to run applications like web servers, message queues, and other services.

Additionally, it has a wealth of existing tools, libraries, and frameworks that serve as tremendously valuable building blocks to enable rapid development and allow developers to focus their efforts on domain-specific problems.

Several great profiling tools and debuggers available in the JVM ecosystem give developers and users unparalleled insight into the behavior and performance of their applications.

Sophisticated instrumentation and metrics APIs allow us to track the most important characteristics of a running application, and expose them in a highly visible, user-friendly fashion. And because JVM-based applications are portable across most of our supported platforms, we don’t need to spend as much time building and packaging things for each individual platform.
"

Summary :

- ecosystem wealth
- portability : try to run a  Python, C, Ruby software on many Linux and unix flavors without turning mad
- instrumentation and metrics : a must have feature for cloud others needs, this a strong feature in Java platform (JMX, Java Agent, AOP, ...)

Sources:
http://puppetlabs.com/blog/new-era-application-services-puppet-labs


API under heavy load

Netflix API is heavily used and must respect SLA to deliver a good user experience.

In 2012 ( check above link ) is impressive : 1 billion request per day, 100 000 request per second.

Based on a Tomcat/Jetty architecture and SOA approach.

Many protocols are used to improve performance : Protobuf, Thrift, ...

Sources :
http://techblog.netflix.com/2012/02/fault-tolerance-in-high-volume.html


BigData : data analysis

LinkedIn open source Cubert.

Sources:
https://engineering.linkedin.com/big-data/open-sourcing-cubert-high-performance-computation-engine-complex-big-data-analytics




Internet of things

Java community is passionate about this subject : https://community.java.net/community/iot

Eclipse fundation offers an Iot platform : http://iot.eclipse.org/java/


 BigData : search

 ElasticSearch is a search engine and a data storage.

Some customers :
- Deezer
- Github
- SoundClound
- MacGraw and Hill
- France, Gendarmerie nationale

ElasticSearch company has many satellite products : Kibana, LogTash are a  must for logs processing.

Sources:
http://www.elasticsearch.org/case-studies/
http://www.elasticsearch.org/overview/kibana/



System admin : Zookeeper

Apache Zookeeper has been built by Yahoo for many needs : it's a distributed  coordination system useful for many  tasks like  election leader, deployment configuration, ...

Deployments:
- Yahoo
- Rackspace
- Zynga : http://code.zynga.com/2011/08/updating-thousands-of-configuration-files-in-under-a-second/
- ...

Used by:
- Apache HBase
- Akka
- Redis
- ...

Sources:
https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy
http://fr.slideshare.net/sauravhaloi/introduction-to-apache-zookeeper


Quality and code analysis

Sonar is for me one of the best tool of recent years, it allows a fine code analysis : http://www.sonarqube.org/, its open to other languages.


Here are samples of Sonar analysis:
http://nemo.sonarqube.org/

1 commentaire: