Q&A: A Tutorial for Getting Started with PaaS

A big thank you to everyone who attended our webinar, Building and Running Your Applications in the Cloud: A Tutorial for Getting Started with PaaS. It was great to have so many of you join us for the session and thanks also for all of your questions.  You can find recordings of all of our recent webinars on the Webinar recordings page - please check them out to learn more about PaaS, all things cloud, Jenkins CI and continuous delivery.

There were some great questions during the webinar Q&A and I wanted to give you more detailed answers than we had time for on the webinar:

Q: I have created the database. How do I insert data into it?
A: There are a lot of possible answers to this question, but here are a couple to consider:

  1. Many application development frameworks (Spring is a good example - see this documentation) have built-in ways to initialize ClickStarts as there are some examples of this: for example, the JBoss JPA/Hibernate one has an import.sql script.

  2. You can always run a database initialization script as part of your deployment: if you are running a Jenkins build job using DEV@cloud, then the easiest way to do this is simply to invoke your SQL script using the built-in “Execute shell” action.  You should use the Build Secret Plugin to protect your database administrator password.

Q: Please publish a step-by-step tutorial on using CloudBees.
A: Here are some resources that may be helpful:

  1. I’ve done a few short videos that go through the complete setup of your CloudBees project (including integration with GitHub and Eclipse): you can find these in our Resource Center.

  2. Sign up or login to your CloudBees account and check the box to “Take the Tour.” This will guide you through the various features of the CloudBees Platform.

  3. There are quite a number of videos available on the CloudBeesTV YouTube channel.

Q: Is an app-cell an 1/8th of an EC2 Compute Unit?
A: Yes, correct.  There’s a more detailed explanation of app-cells in our pricing FAQ and there’s more about EC2 Compute Units and the reasons why Amazon introduced this model in the Amazon AWS FAQ.

Q: Does CloudBees support ec2-userdata?  I use this to configure which environment my EC2 instance is (demo, uat, prod) and JDBC URL, etc. Perhaps this is done better in a PaaS?
A: No, we don’t provide access to the ec2-userdata for the underlying Amazon EC2 instances your app is running on: this is very tightly tied to the AWS infrastructure and we aim to abstract all that away for you. As you suggest, there is a much easier way to do this using PaaS: take a look at this article about Configuration Parameters and how to use these to customize settings for different environments.

Q: Do you have a Hadoop setup to run MapReduce jobs for an App that needs a computed data/result?
A: We don’t ourselves offer a Hadoop service: one option would be to consider using Amazon’s Elastic MapReduce service and call to it using the Amazon APIs from your apps running on CloudBees - it’s really easy to “mix-and-match” PaaS and IaaS in this way: you can use the bees config:xxx commands from the CloudBees SDK to pass the AWS credentials for the IAM user into your application and then call the services exactly as shown in the AWS Java SDK.

Q: We have a web application that needs to write/read media files at runtime. Which model (dedicated/shared) do you recommend?
A: The main issue to consider is whether your application only needs temporary access to the files or whether you are looking for longer-term storage.  By their nature, PaaS applications do not usually have persistent file storage associated with them: the PaaS runtime can (and does) relocate those apps to deal with problems in the underlying infrastructure, or to scale the application to respond to increases in demand and in that event, the application is liable to be re-started in a completely different virtual environment with no access to the original underlying file system.  Even with dedicated servers, this is still the case: the main reason for using that model is for a more deterministic performance/response time, since you know in advance exactly what hardware infrastructure will be available to your applications and so can scale accordingly.

Q: Are you working on a NetBeans plugin?
A: It’s something we really want to develop (particularly the former NetBeans engineer on our team!), but I’m afraid we just haven’t been able to spare the resources yet. There is a community-contributed NetBeans plugin on GitHub, but I haven’t actually used it myself. If you have time to take a look at it, please do let me have any feedback so that we can incorporate that into the requirements.

Q: Any plans to allow customers to choose Amazon hosting in Australia?
A: Nothing planned right now, but if this is important to you then please do let me know, so that we can get it on the engineering radar as this is certainly something we could support fairly easily: we already have a multi-region capability built into our PaaS and we provide customers their choice of Amazon US and EU regions.

Q: Is there any comparison with CloudBees & non-cloud pricing for a web application?
A: Yes, please take a look at our Total Cost of Ownership white paper.

Q: Do you plan to go to market with the Drupal ClickStack?
A: We are just in the process of finishing up work on the initial Drupal ClickStack and as soon as that is completed, then we definitely plan to make this available as a supported runtime on the platform.  The combination of ClickStacks, ClickStarts and continuous delivery will, we think, make a compelling case for developing and testing Drupal-based applications on CloudBees. The beauty of ClickStacks is that they allow us to plug in different runtime containers very easily and (surprising as it might seem at first glance) the underlying model is very similar, as these diagrams illustrate:

 
Java how an app becomes a stackPHP/Drupal how an app becomes a stack