Amazon is coming: Amazon Elastic Beanstalk

    For a long time, many compared Amazon AWS and the Google Apps Engine as a cloud solution - although the comparisons were not entirely correct - since they are all the same solutions of different "weight categories". If Amazon offered Infrastructure as a Service (IaaS), then GAE is pure Platform as a Service.
    So Amazon went on the offensive - today announced the Amazon Elastic Beanstalk.
    image

    So - what is the fundamental difference between IaaS and PaaS. IAAS is essentially a computer - on which you want what you do. Connect disks, put OSes, configure all software. Amazon simply allowed you to build and configure such a computer through web services, and also provided a number of additional services that, for example, could launch another such computer in case of increased load (well, and much more). This is, if briefly and exaggerated.
    In PaaS, they did everything for you — they built the computer, installed the OS, and even launched and configured all the software — you just need to download your specific program that will use all this - and not think at all about (in theory) how it all works , scaled, cached, backup, etc.
    Each solution has its pros and cons. Amazon AWS and IAAS are more functional - but more difficult to use, GAE and PaaS respectively are easier to use, but imposes a number of limitations.

    And today, Amazon went on the offensive - PaaS announced a solution based on Amazon AWS services: Amazon Elastic Beanstalk . In fact, it is Tomcat (that is, only java) running on EC2 instances that are scaled using Amazon CloudWatch, which can use (including) Amazon RDS (MySQL in the Cloud) as a database. Everything is managed through the convenient Amazon AWS Managment Console (including application deployment). That is - the convenience of GAE - but without its limitations.

    I must say that Amazon is far from the first - before that there were already projects to organize PaaS for Java on top of Amazon services, this was Mor.ph (they switched to a slightly different area), and Stax and CloudFoundry from SpringSource.
    Amazon has every chance to succeed (unless of course such a service will be in demand by users - why not - see below).

    So - what does Amazon CloudFoundry offer:
    1. A simple deployment - really simple - you just specify the name of the application and download the var-nick (well, almost like in GAE)

    2. Versioning (there is also in GAE)
    3. Launching any Java applications - no API restrictions (a clear breakthrough compared to GAE)
    4. The use of any database (again, one of the main claims of developers to GAE). True, in this case you should think about scaling yourself - if you use the built-in HSQL - then how will this work when you get not one - but two tomatoes?
    5. You have a file system !!! (Well, good - in GAE, if desired, it is also there - but with limitations).
    5. Monitoring of used resources, viewing logs (again here is similar to GAE)
    6. Automatic scaling (also similar to GAE)
    7. Access to the system via SSH (if you really need to tighten something with your handles)
    So - Amazon AWS is completely free with the same simplicity of deployment, management and monitoring.

    Well, what's in the red?
    1. Only Java (at least there is Python on GAE).
    2. Absolutely automatic scaling will not work. Since the application can be anything in principle, you yourself must take care of the correct operation of a cluster of things such as (for example) the hibernate cache or the lucene indexes.
    3. Probably the main thing is the price. At GAE, most are in the free limit, then you have to pay. And if Amazon Elastic Beanstalk itself costs you free of charge, then you will have to pay for all the services you use (EC2, EBS, CloudWatch, etc.) - and right away. The calculation on the site gives a minimum of $ 37.22 per month - and this is with one t1.micro instance! And if you add the base to Amazon RDS, yes a normal instance, yes the cluster will turn on ...

    That is - for a startup - where one machine is enough - it turns out expensive. For a developed project - where the question of scaling arises - here yes - it can help - but usually such issues are already being resolved by that time.
    Although - if someone already uses Amazon to host java applications, this solution may turn out to be useful - given that for free an additional opportunity is provided for monitoring and management with a simplified deployment.

    Also popular now: