Статьи

Познакомьтесь с Jelastic, облачной платформой для Java

Несколько дней назад я получил приглашение на тестирование продукта Jelastic, но, к сожалению, я был очень занят задачами обзора Поваренной книги OpenLayer и у меня не было много времени, чтобы взглянуть на него.  

Сегодня, в субботу, я какое-то время выполнил домашнее задание и впервые встретился с платформой.

Кто стоит за Jelastic?

Это был мой первый вопрос, поэтому я заглянул на сайт Jelastic.

Лучший способ ответить на этот вопрос — посмотреть в разделе Jelastic Team . Учредители, консультанты, специальные партнеры составляют настоящую профессиональную команду. В качестве специальных партнеров вы найдете авторов MySQL (Michael «Monty» Widenius) и Nginx (Igor Sysoev).

Отдельное упоминание их евангелистам (не упомянуто на веб-странице). В моем случае Джуда Джонс потратил свое время на написание мне двух личных писем, просто чтобы сообщить мне о платформе Jelastic и возможности протестировать ее бесплатно. Это настоящий евангелист;)

Регистрация

Зарегистрироваться с помощью сервиса действительно легко. После отправки регистрационного письма вы получите приветственное письмо с начальным паролем для входа.

Первое впечатление

Мое первое впечатление от Jelastic с веб-страницы до службы, когда-то вошедшей в систему, было: Ой !!!

I know design is something subjective, what you love other can hate, but the first impression is what counts in a 75%.

Sorry Jelastic but, from my point of view, you need a redesign. That darker theme is absolutely dreadful.

Environments

After the first impression I start working in something more functional, which is what really matters for a developer.

An environment is a concrete configuration of servers for load balancing, application logic and storage.

Load Balancing is achieved with Nginx server.

Application logic is implemented as a Java server side application and can run on Tomcat6, Tomcat7, Jetty6 or GlasFish3 servers using JDK6 or JDK7.

For storage we can use SQL or NoSQL solutions. For SQL we have the most known open source projects: PostgreSQL 8.4, MySQL 5.5 and MariaDB 5.2. For NoSQL we can use MongoDB 2.0 or CouchDB 1.1.

Creating a new environment is incredible easy. We can choose to use a load balancer or not, define the number of application logic server instances, possibility of high availability (which means session replication) and the storage service.

Once created, the environment’s topology can be modified at any time. At practice this means you can scale your application adding more application server instances or applying the high availability options, which allows to replicate the sessions. In addition you can change or add a new store services.

Note: Be aware if you change your relational or NoSQL server because data lost.

Deploying applications

For testing purposes, Jelastic comes with a HelloWorld.war sample applications. Deploy it is as easy as selecting and deploying on one of your, previously created and configured, environments.

To deploy your own application you need to upload it first. After uploaded your application will be shown in the applications list and you could deploy like previously commented.

Server configuration

Once created the environment, you have access to the configuration files of your servers.

I played a bit with a simple Tomcat+MySQL configuration and see you:

  • have access to modify files like web.xml or server.xml
  • can change logging preferences
  • can upload new JAR files to or remove them from the lib folder
  • have access to the webapps folder
  • have a shortened version of my.cnf file you can edit.

Log files and monitoring

Jelastic monitors the servers of your environments and presents the results in a nice graphical way.

In addition it also allows to see the log files of the servers:

Looking log files in the browser is something funny, but I would like a way (I didn’t find it) to download the log files to my local machine. Looking for errors in a production environments with tons of lines isn’t easy to do in that text area.

Resources

Connect your application to the storage service (relational or NoSQL database) is really easy. The documentation contains samples for all the databases the Jelastic has support.

The application logic servers have access to a home directory where you can create property files or upload whatever you want your application can use later using:

System.getProperty("user.home")

Conclusions

At the opposite of Amazon AWS, Google App Engine or others, Jealastic is completely oriented to Java.

If you are a Java developer and ever worked with AWS or Google App Engine you will find Jelastic complete different and incredible easy to use, really similar as a usual day to day work.

While AWS is machine oriented, where you start as many EC2 instance as you require, with Jelastic you have the concept of cloudlet and you can forget completely to manage machine instances and their resources.

Note: A cloudlet is roughly equivalent to 128 MB RAM and 200Mhz CPU core.

I have written this post before dinner so, as you can see, it is nothing exhaustive but a simple platform presentation.

A great continuation would require to explain the experiences working with a real application, deploying operations and tweaking the running environment to achieve good performance with lowest cloudlet consume.

If someone is interested, another great article could compare the cost of the same application running with Amazon AWS and Jelastic: where runs with better performance and which one is cheaper.