Overview of PaaS: Java experience

  • 1,063 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,063
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Компания Red Hat представила предварительный выпуск проекта OpenShift, в рамках которого развивается специально оптимизированное для разработчиков открытого ПО PaaS-решение (платформа как сервис), предназначенное для выполнения конечных приложений в облачных окружениях (для сравнения, IaaS-платформы обеспечивают запуск образов готовых операционных систем). Платформа предоставляет разработчикам возможность запуска приложенийи свободу выбора, написанных на языках Java, Python, PHP и Ruby, с использованием фреймворков JBoss, Spring, Seam, Weld, CDI, Rails, Rack, Symfony, Zend Framework, Twisted, Django и Java EE. Из баз данных поддерживаются MySQL, EnterpriseDB (PostgreSQL), Couchbase, и MongoDB.
  •  Red Hat Summit 2011 in BostonСистема основана на разработках компании Makara, купленной Red Hat в ноябре прошлого года. Некоторые компоненты OpenShift пока остаются закрытыми, но со временем платформа будет полностью переведена в разряд продуктов с открытым исходным кодом. По своим функциям OpenShift напоминает открытую в прошлом месяце PaaS-платформу VMware Cloud Foundry, которая пока поддерживает запуск приложений на языках Java и Ruby. Из других существующих PaaS-платформ можно отметить Zend PHP Solution Pack, Google App Engine и Windows Azure, недостатками которых является недостаточная универсальность и необходимость использования специального API.По словам Исаака Рота (Isaac Roth) — руководителя направления PaaS в Red Hat, платформа OpenShift будет готова к середине 2012 года.
  • The OpenShift deployment model currently offers three user levels:OpenShift ExpressOpenShift FlexOpenShift Power (Coming soon)OpenShift предоставляет три сервиса
  • Power - позволяет размещать в cloud-окружениях любые приложения, работающие в Linux, включая приложения на языке Си и программы, содержащие бинарные компоненты и не привязанные к web-технологиям (например, клиент-серверные приложения, торговые системы, системы моделирования и т.п.). Архитектура рабочего окружения может быть сформирована самостоятельно, при этом пользователю предоставляется низкоуровневый доступ к конфигурации рабочего окружения на уровне операционной системы. Среди доступных пользователю функций: настройка содержимого образа виртуального окружения, система шаблонов, библиотека типовых образов и возможности по динамической генерации образов, в зависимости от типа используемой системы виртуализации.
  • Express - позволяет организовать выполнение приложений на языках Java,PHP, Ruby и Python. Окружение рассчитано на перенос уже разработанных приложений и позволяет запустить проекты такого уровня, как Drupal и MediaWiki. Управление производится через набор работающих в режиме командной строки утилит. всё, что вы делаете локально при создании и компиляции приложения, а именно загрузку библиотек из репозитария, разрешение зависимостей для этих библиотек, компиляцию кода, сборку приложения, и, наконец, развертывание WAR-файлов на рабочих серверах – всё это сделает за вас OpenShift автомагически.Запуск приложения сводится к регистрации аккаунта, установки пакета rhc (доступен в форматах deb и rpm), созданию rhc-домена (rhc-create-domain -n имя), регистрации в нем приложения (rhc-create-app -n phpapp -t php-5.3.2) и установки приложения (git commit -a; git push)
  • Flex - позволяет организовать работу в окружениях, запущенных на стороне сертифицированных провайдеров облачных окружений (например, Amazon EC2), т.е. Flex предоставляет возможность автоматизации запуска приложений в IaaS-системах, беря на себя заботы по формированию образа операционной системы. В отличие от варианта Express, управление во Flex производится через графический интерфейс пользователя, в котором реализованы функции создания, развертывания, конфигурирования, помощи в миграции и мониторинга. Поддерживаются языки PHP и Java (JBoss, Java EE6), web-сервер Apache, серверы приложений JBoss AS, Tomcat, базы данных MySQL, MongoDB и Memcached.
  • Once you have this the workflow for OpenShift is as simple as Write Code, commit and push - go back to writingcode…And to make this less abstract then let me just show you how simple it actually is.
  • OpenShift Express Here's a recap of the rest of exciting features announced this month. Eclipse IDE integration via JBoss Tools: Let the cloud come to you! OpenShift is now integrated with Eclipse via JBoss Tools. Grant has a nice step-by-step blog and a video that shows you how easy it is. Continuous Integration Service via Jenkins:  In our journey to provide you with a platform that covers the entire application development life cycle management (ADLM) we just added continuous integration in OpenShift with support for Jenkins. Check out Mike's technical overview blog or David Blado's how-to blog and video learn more. Totally Web-based Application Setup:  As an alternative to the command line, it is now possible to setup your OpenShift Express applications in seconds from the web-based OpenShift control panel. Graphical Administration Console for Relational DBs:  As it was previously detailed in David's blog, OpenShift Express now provides a phpMyAdmin web console for managing you MySQL instances on OpenShift. Want to see the latest and greatest OpenShift features in action? Then register for our webinar on Nov. 21st with Mark Little, Max Andersen and myself.--------------------------What's New in OpenShift Flex Cost Visibility and Budget Control Do you want to get a handle on your AWS charges when using dedicated servers on OpenShift? Would you like to see what you've consumed and also get a projection on how much you may consume the rest of the month? Do you want to set a budget for the month and  periodically track spending against your budget? Look no further, OpenShift Flex now has this functionality built into the UI.   Zend Server: One of the most popular ways to get Enterprise-grade features in you PHP application is by using Zend Server as an application container. Your unmodified PHP/Zend Server application can run now in OpenShift with support for version 5.5.  Support for MongoDB 2.0Three powerful MongoDB features have been included in this release: We've upgraded the cartridge to the latest and greatest 2.0 version. We've also made MongoDB configuration parameters accesible in the OpenShift console. And finally, the convenience and power of MongoDB logs has been integrated into the OpenShift dashboard.    

Transcript

  • 1. Overview of PaaS: Java experienceAuthors: Alex Konopko; Igor Anishchenko; Vadim Lotar Lohika
  • 2. Agenda• Introduction to IaaS and PaaS• Amazon EC2 and Beanstalk• VMWare OpenShift• CloudFoundry• CloudBees• Jelastic• Google App Engine
  • 3. I IaaS and PaaS
  • 4. Amazon EC2
  • 5. Why use a PaaS? • Need Java J2EE hosting • Quick start with powerful hardware • Speed – develop apps quickly in the cloud • Management – versioning, rollbacks & upgrades • Monitoring - performance, logs and uptime • Auto-scaling – on-demand resource
  • 6. PaaS concept Application server JMS Application Application Application
  • 7. PaaS concept PaaS JMS App Server App Server App Server
  • 8. PaaS concept PaaS JMS JMS JMS JMS App Server App Server App Server
  • 9. Amazon Beanstalk• Pure PaaS based on Tomcat• It’s really cool – but no one saw it• Pricing is same as for EC2• You can integrate it with any of EC2 services• Free tier for 1 year (micro-instance)
  • 10. Red Hat OpenShiftPlatform-as-a-Service (PaaS) Cloud for Open Source Developers.
  • 11. Red Hat in The Cloud"OpenShift has a fully integrated development workflow,“ … "You couldcode on an iPad now, because you are not doing any compilation locallyand not doing any of the runtime locally." With OpenShift, "the developer can focus on the application, not the stack. They dont have to worry about maintaining all the infrastructure and middleware," Issac Roth, Red Hat PaaS master
  • 12. Introducing OpenShift • A free auto-scaling PaaS from Red Hat • Announced in May 2011 (Red Hat Summit 2011) • Acquired last November with its purchase of Makara• Support a full JavaEE 6 stack, multiple frameworks, languages, and clouds: Java, Python, PHP and Ruby, including Spring, Seam, Weld, CDI, Rails, Rack, Symfony, Zend Framework, Twisted, Django and Java EE• Freedom of Choice (supports well-known frameworks)• Fast on-ramp to the cloud...upload code and go!• Based on Microsofts Hyper-V, VMwares ESX, and Red Hats KVM hypervisor• Supported clouds: Amazon (beta); others ( IBM SmartCloud, NTT, Savvis, and Fujitsu clouds)
  • 13. ALL Applications to ANY Cloud
  • 14. Overview OpenShift• ...OpenShift is available from openshift.com and there are three flavors available. Express, Flex and Power
  • 15. OpenShift Power: Whats Power? • OpenShift Power can deploy applications to the cloud that are written to Linux (i.e. written in C, or using many binary components) and anything that builds on Linux. • Ultimate flexibility and access at the operating system configuration level • Power can deploy applications which have no web front-end • Power has an image configuration system, a scripting template system, an image library for re-using template
  • 16. OpenShift Express • Express is a free & easy, cloud-based application platform • Delivered in a shared-hosting model (running on Red Hat’s own infrastructure cloud) • Fastest on-ramp to the cloud • Get Java, Ruby, PHP, Perl and Python apps in the cloud • Multiple: MySQL & SQLite • Easy-to-use command-line tools - with just a few commands you’ll be able to deploy your application to the cloud • Deploy & Update via Git – Maven, Jenkins, Git => Build-as-a-Service
  • 17. OpenShift Flex • The free trial includes 30 days or • Multiple: MySQL, MongoDB, 30 hours (whichever comes first) Memcached, Membase, MRG of free cloud resources from Amazon EC2. • Access to DB from outside • Runs on EC2 you provide an • Cloud server provisioning AWS account • Application deployment, • Browser-based UI versioning & rollback • Java EE6 and PHP • Performance monitoring • Shell access and Dedicated • Log management • Jboss 7, Apache Web Server and • Auto-scaling Tomcat,
  • 18. OpenShift Pricing OpenShift Express OpenShift FlexPricing Free and it is intended to Free to use (during developer remain free in future also preview), but will incur additional charges from service provider (AWS) The pricing is still not decide Small: 32 BIT, 1 CORE(S), 1.66 GB Instance cost: 62$ (0.085$ per hour) DISK SIZE: 10GB* OpenShift Power pricing will be announced once they release the offering
  • 19. Limitations of OpenShift • OpenShift Express and Flex are only available in developer preview today • There is no SLA or support • Express preview supports one application per user • OpenShift Express is accessed from command line client tools, no web interface • The ability to install OpenShift on your own servers is not yet supported. Stay tuned for news of the opensource announcement! • It is not cloud agnostic and only works with "approved" clouds (EC2) • It doesn’t support .Net framework and Windows
  • 20. Strengths of OpenShift • First Java EE 6 implementation in a PaaS model, OpenShift delivers a simple way for developers to build and deploy Java in the cloud. • This is PAAS 2.0, It’s open choice of frameworks. It’s open choice of clouds and it’s open choice of middleware. Open, open, open • It will be open sourced, supports multiple languages and frameworks, and support multiple clouds, with AWS being the first cloud supported • No customer is locked into a cloud platform • OpenShift Express is completely free, making it easier to drive trials and adoption • OpenShift supports your Tools • Shell Access • It supports both new as well as existing applications
  • 21. OpenShift Q&A• Q: Can I deploy Maven + (Spring + Hibernate) Annotation + MySQL + REST? • YES, Easily - all of this does work. PLAY WITH IT FOR FREE!• Q: Sticky sessions? • Flex does supports sticky sessions and multi-instance scaling. Express doesnt have multi-instance scaling yet so its not needed there currently.• Q: Access to DB from outside? • In Express it is not supported but you can use phpMyAdmin. In Flex, you have your own instance and a public IP so you can access remotely.• Q: Remote debugging…? • OpenShift dont allow arbitrary binding of ports on the externally accessible IP address. Port restriction is definitely something on their roadmap though.
  • 22. OpenShift Q&A• Q: Quota limits? • 512MB block storage / 40000 files, Processes – 250, Threads - unlimited as long as in the constraints of the other limits, Resident Memory - 300MB, Swap - 100MB • Java memory at 128Mb of max heap, and 83Mb of permgen, so your applications need to fit within that constraint• Q: Save/Upload files to the file system (Express) supported? • Yes - best practice is to use the $OPENSHIFT_DATA_DIR environment variable for a persistent data location• Q: Are any of Amazon services available OOTB? • When Flex is running applications in Amazon, it takes advantage of features like the elastic load balancer for clustering. Integration with Amazon Relational Database Service (Amazon RDS) exists as well• Q: Database scaling for MySQL and MongoDB? • Sort of depends. MySQL is offered in both Express and Flex but there isnt automatic master -> master or master -> slave scaling yet. MongoDB is in Flex and does support replica set configuration. Replica sizes dont adjust automatically though.
  • 23. OpenShift Q&A• Q: Can I utilize Ant? • You can embed ant in the pom.xml - just keep the OpenShift profile in the pom.xml• Q: Maven Plugin? • They use stock Maven with the profile to specify deployment locations so no maven plugins needed. Eclipse plugin from JBoss Tools is the answer.• Q: Search engine? They added it to the backlog …• Q: Can I point my own domain name at OpenShift Express hosted application? • “It is not currently possible... in the roadmap“• Lack of information about MRG within OpenShift: They will try to find something and post in the blog
  • 24. • … Compare Features, Languages and Frameworks
  • 25. OpenShift Usage 1. Write code 2. git commit 3. git push 4. Goto #1
  • 26. Express Steps 1. Sign up at http://openshift.com 2. Install client tools (Install Command line or JBoss Tools) 3. Create a Domain (rhc-create-domain) 4. Create an application (rhc-create-app) 5. Copy app into git managed directory 6. Deploy to the cloud (git push)
  • 27. OpenShift Steps 1. Setup Cloud Account 2. Provision Cloud Clusters & Servers (choose the cloud provider) 3. Build Stack 4. Upload Application Code 5. Selecting & Configure Components (App server, JDK, DB) 6. Deploy 7. Performance Monitoring & Log Management (Trans., CPU, Memory, Network, Storage) 8. Tracking Budgets and Cost Estimate (forecast) 9. Auto-Scaling (CPU and Requests/sec)
  • 28. Define Scaling StrategyHow?What?Why?
  • 29. OpenShift supports your Tools • First, OpenShift is getting integration into JBoss Tools, their Eclipse-based Java development environment • Future integration is also planned for JBoss Developer Studio. • OpenShift Eclipse Plug-In
  • 30. Latest OpenShift Releases • OpenShift Express • OpenShift Flex • Eclipse IDE integration via • Cost Visibility and Budget JBoss Tools Control • Continuous Integration • Zend Server (PHP Service via Jenkins (blog and Application container) a video) • Support for MongoDB 2.0 • Web-based Application Setup • MongoDB configuration • Graphical Administration parameters accessible in the OpenShift console Console for Relational DB (phpMyAdmin) • power of MongoDB logs has been integrated into the OpenShift dashboard
  • 31. Sign up, its free! • http://www.openshift.com – click “Try it!” • Example projects you can deploy now! • https://www.github.com/openshift • Help? • IRC: freenode #openshift • Forums: http://www.redhat.com/openshift/forums • Email: openshift at redhat dot com
  • 32. • Date of rollout: VMware, April,12th 2011 (Beta)• Technologies: Tomcat 6, Java, Ruby, Node.js, Groovy, Grails, Scala, Spring• Supported Services: PostgreSQL, MySQL, MongoDB, Redis, RabbitMQ• Plugins support: Eclipse (Under construction for IntellijIDEA)• Advantage: easy and quick to deploy, JMS support, scalability, sticky sessions• Limitations: 2GB Memory, 16max Services, 20max apps, no ability to scale DB• Price: near 70$ per month
  • 33. • DEV basic process description: • VMC – Console (vmc push, vmc instances app-name +10) • Micro Cloud Foundry • Eclipse plugin • There is no ability to access services outside• Feedbacks out of real experience: • Looks simple but not easy installation process • Console and Eclipse plugin is very cool • Excellent support of Spring Roo • Application based on Vaadin is working • PaaS and IaaS synergy
  • 34. • Date of rollout: April 2010• Technologies: Tomcat 6, Java, Subversion, GIT, Jenkins• Supported Services: Dev@cloud, Run@cloud, Database, Sonar, Selenium, Real-time web monitoring, CloudWiki, MongoHQ, Cloudant, etc.• Plugins support: Eclipse• Advantages: doesn’t need to be tied with Amazon, access to the services outside, full CI support• Disadvantages: no JMS support, partial EJB support, free version can be used only for “hello-world” apps, limited scalability configuration, sticky sessions feature is only going to be released• Price: based on selected services (can be very huge)
  • 35. • DEV basic process description: • CloudBees Console • Good Web UI • Eclipse plugin • Ability to access services outside• Feedbacks out of real experience: • Weren’t able to use free Jenkins service. • Provides all services by given just 1-5Mb for free. • Good monitoring tools and logging • Usage of Maven is harder than Ant • Supporting the full Java EE stack is under construction
  • 36. Jelastic: overview• Ukrainian/russian founders: Moskow, Tomsk, Jitomir• New proposition on Cloud Market• Self-made elasticity• Vertical scaling• Are going to provide free subsription as well• Free cloudlet (128 MB RAM and 200Mhz CPU core)• Now 16x4 (free beta), going to have 32x8
  • 37. Jelastic: overview
  • 38. Jelastic: overview
  • 39. Jelastic: overviewNice cool video here. Auto-scaling in Jelastichttp://www.youtube.com/watch?v=wQPYQ1lx2Ro
  • 40. Jelastic: whats inside• Nginx, Tomcat/Glassfish, MongoDb• MariaDb, MySQL• Git, Maven• SSL connection
  • 41. Jelastic: plans for future2011• Direct access to databases• Sticky sessions2012/13• Pricing model• Common JMS• Database scaling for MySQL and MongoDb
  • 42. Google App Engine• 1st Java PaaS presented on 2008• The only free PaaS• Usage has lot of pros and cons
  • 43. Google App Engine• Write once, works… on GAE!• No multithreading• Limited Java framework support: Spring, JSF, SmartGWT• HTTP request is limited for 30 60 seconds• Project cant consist of more than 3000 10000 files• No background tasks• Poor BigTable performance (1-3 sec/req)• Do not have sticky sessions• No DBMS MySQL is coming (paid)
  • 44. Google App Engine• It’s free• It has BigTable• It integrates with Google Services: GMail, image processing, memcache, task queues• It is very scalable (1-3 sec/req on vast datasets) Quota Limit Emails per day 2000 Bandwidth in per day 1 GB Bandwidth out per day 1 GB CPU time per day (to be removed) 6.5 hours per day Instance-hours (IH) 28 hours per day* Data stored 1 GB URLFetch API calls per day 657,084*
  • 45. GAE: Raw persistence• NoSQL storage: Google BigTable• No search engine• Can’t use OR on different fields• Result set is limited for 1000 entities• Only 100/table indexes available with no way to delete• You have to produce indexes
  • 46. GAE: DataNucleus• Solves some of your problems with GQL• Still have OR limitation• It doesn’t work properly with JPA• It has no community and no documentation
  • 47. Google App Engine• You can use convenient Maven/Eclipse plugin• You can emulate it with JettyWe tried to port:• Hibernate + Spring MVC + SmartGWT• 10 entities…Don’t do this ever!
  • 48. GAE: ConclusionUse GAE if:• You need free Java PaaS hosting• You are curious about it• You want to play with BigTable• You want to use image processing or GMail• You need great scalability while don’t care about performanceDo not use if:• You want to have portable Java app• You need good performance
  • 49. What was covered?• Introduction to IaaS and PaaS• Amazon EC2 and Beanstalk• VMware OpenShift• CloudFoundry• CloudBees• Jelastic• Google App Engine
  • 50. Summary • Market of PaaS is under development. CloudBees is “the only one” as for now • 2011 - “Year of PaaS”? • Big battle is coming • J2EE is starting to move to the clouds
  • 51. Q&A