Wednesday, March 28, 2012

Advantages of managing your servers in the Cloud

Our BitNami Cloud Hosting tool provides a simple way to manage servers in the Cloud. We use it to run most of our internal IT, including a bug tracking system, wiki, licensing application, automatic build and testing setup and a variety of other applications. In a previous post we covered multiple reasons why you may want to run your web apps in the cloud, mainly from the perspective of a developer. In this post I wanted to share some of the advantages of moving your servers to the cloud from the perspective of a system administrator.

When we were hosting our internal applications and build and test systems onsite, we took the following steps to minimize the chance that we lost our data in the event of catastrophic failure:
  • Servers with RAID disk setups
  • Daily incremental backups of application, database and source control systems
  • Full weekly offsite backups
  • Replicated critical services on remote server setup
When there was an issue in an application or in the server machine itself, at times I had to get the screwdriver and feel like Tim Allen in "Home improvement": get another server, replace hard disks, restore the application from backups, etc while my coworkers asked me "When will be the app ready?". Since we moved those servers to the cloud that has not happened again. All servers are backed up hourly using EBS snapshots, so they can be restored in one click. Short of somebody nuking the Amazon data centers, we do not need to worry about our servers being stolen, the office catching fire or hardware malfunctioning. In the process, we have reduced our monthly electricity bill by approximately $1000 and our build and the time to build and test our stacks to a fraction of the time it took.

Server cloning is another cool functionality that you get for free. Last week we encountered a problem with our customer relationship system. To fix a search-related issue the vendor recommended to run a reindexing process. Our database is quite big, so we were afraid of the impact this would have in the system. If this application had been running in a physical server in our office I would have had to try and duplicate everything in a separate staging machine and run the reindexing process to understand the impact on the system. This process would likely have taken multiple several hours and I would not even be sure the server would behave exactly as the original production one.

With our servers in the cloud, we can create an exact clone of any machine in literally seconds and test any change in minutes. Not in a staging server similar to the production server, but in an identical copy. Not only that, for this task I resized the server to have more CPU and RAM resources and run it the database reindexing process faster. Once I checked that everything was fine, I was able to confidently run the same task in the production instance. I could have chosen as well to scale down the cloned and fixed server and reassign the previous IP address to the new instance.

Some of these issues could have been solved with an onsite virtualized setup and appropriate backup & restore infrastructure. The beauty of using the cloud is that you somebody else took care already of setting that up for us at a fraction of the cost it would cost to build, host and maintain it.

Tuesday, March 27, 2012

New BitNami Django Stack 1.4 released

We are happy to announce that the recently released Django 1.4 version is now available as a BitNami stack.  After a couple of developer versions we bring you the latest stable version of Django ready to use. This release bundles the new boto 2.3.0 library that includes initial support for Amazon Simple Workflow Service.
You can download a native installer or a virtual machine. DjangoStack 1.4 will also soon be available as an Amazon Machine Image and as an option in BitNami Cloud Hosting, allowing it to be deployed to the Amazon cloud with one click. BitNami stacks simplify the deployment and testing of open source web apps and are an ideal method to test the latest releases of your favorite projects, including Django.

There are a lot of improvements in this Django release. Some highlights include:
  • Support for time zones when handling dates and times; the framework's new time-zone-aware objects store date and time as UTC internally and translate them to user's local time zone when displayed.
  • Supports integration with in-browser testing frameworks like Selenium
  • Many new security improvements and features
  • Updated default project layout and


Tuesday, March 20, 2012

New BitNami Concrete5 Stack

We are happy to announce that a new BitNami Stack for concrete5 has been released!   concrete5  is an open source (MIT licensed) content management system that allows you to deploy web applications, websites, stores and forums and easily manage their content and their site structure. concrete5 is also a flexible framework written in Object Oriented PHP 5, and follows an extensible Model View Controller approach.

concrete5 excels at both ease of use and attention to detail. It provides a powerful inline editor and allows extensive customization of the look and feel of the site. You will be able to edit the frontend directly, add new blocks quickly and even drag and drop page elements on the fly.
Adding a new blockEditing content

Now you can easily install and configure your concrete5 application in your system with Native Stacks, run a Virtual Appliance or deploy on Amazon EC2 directly.

Thursday, March 15, 2012

Move Servers Across AWS Accounts with BitNami Cloud Hosting

Today, we rolled out several new features in BitNami Cloud Hosting, the easiest way to deploy and manage applications in the cloud! One we are particularly excited about is the ability to move servers between Amazon accounts and across Availability Zones in one click. This means that you can easily move servers from development, to test, to production accounts in minutes. For users who manage servers for several clients, it also means that you can create server 'templates' that include any extensions, additional applications or custom code and use them to spin up new servers across different customer accounts. To use this new feature, first create a backup by clicking the 'create backup' button on the Manage Server screen, or choose and existing backup and then click 'Restore'. You will see the option to select an AWS account and an Availability Zone at that time, as shown below.

Move servers across AWS accounts and availability zones with BitNami Cloud Hosting.
In addition, we have added search and pagination to the Servers, Backups, Monitoring and other pages to make it easier for you to find a particular server or backup that you are looking for. This will be especially useful for those of you who are running several servers or who have a large number of backups that you need to search through.

In case you missed the announcement last week, we also added support for the new 64-bit server types released by Amazon. These new Small and Medium 64-bit instances fill in the gaps in the previously available server sizes for 64-bit architectures, which jumped from Micro (around $15 per month) to Large (around $230 per month) with nothing in between. The only alternative previously available was to run on a 32-bit architecture, which topped out at Medium instance sizes, which may not be large enough for some production applications. Now, you can get started with a cost-effective Micro instance and increase your server size all the way up to a High Mem 4XL server with 68.4 GB of RAM and 26 cores, or anything in between, in one click!

Friday, March 9, 2012

Why your next web app should be hosted in the Cloud

The emergence of Cloud Computing is changing how web applications are created, deployed and managed. A dedicated hosted server may no longer be the best option. Whether you are developing basic WordPress or Joomla! sites or building complex e-commerce sites with Magento and SugarCRM, there are multiple ways you can leverage the cloud to your benefit.

This article will cover several of the advantages of moving your customers to a cloud platform. It will also explain how BitNami Cloud Hosting (BCH) can reduce the time you must devote to maintenance chores and help you concentrate on your core competency: web development.

The biggest advantage that the cloud offers is flexibility, a new cost-capacity tradeoff. The acquisition of operative capacity traditionally requires meticulous planning, and it requires investment … at least it used to. The cloud offers the possibility of instantly expanding or reducing the size of your servers, with an immediate impact on your cost structure. You don't have to pre-commit resources for a possible sudden surge in visitors, nor scramble to increase capacity before an unexpected surge drowns your site in a sea of un-responded requests, nor lament costly idle resources when the surge did not (yet?) happen. It's the just-in-time revolution, this time in the server room instead of the factory.
The above said, a cloud environment requires a new set of skills, both in setup and ongoing management of your servers, which can be a time and/or money drain, directly impacting your productivity – just as it was before. BCH significantly reduces the non-core complexity of developing and hosting for web developers – it is a gentle on-ramp to the Amazon Cloud. It is more time available for development. It's the cloud made simple and cost-effective with:
  • Ready-to-run, consistent, fully configured application environments. No more configuration and version nightmares, such as“which library version is required for this app version?” Your WordPress server is fully configured, up and running in a few clicks. Or SugarCRM, or any of our many full-stack offerings.
  • On-demand servers that can be started with one click, stopped with another click – and are essentially free when stopped.
  • Simple server cloning – servers can be cloned in a few clicks to test updates or setup new development servers. Delete them when you are done.
  • A familiar environment, where things work the same as they do now: you do not have to port or adapt your application to the peculiarities of a PaaS provider. You are still in full control.
  • Instant rescaling of your servers, up or down, in a few clicks with the instant rescaling of your hosting costs. Scale up to a monster server, or down to a mite. With a traditional hosted server, you typically need to purchase a machine . That means you either need to purchase a big server that will be underutilized during development or purchase a smaller server initially and migrate to a bigger one when moving to production, and spend time and effort recreating the environment in the new server. As your application becomes popular, you will need to manually repeat the same process to migrate to bigger servers as needed. You can bypass this completely by using BitNami Cloud Hosting to dynamically resize your server as needed without any upfront investment.
  • The ability to run multiple applications on one server. Launch a single server to handle several customers, as you probably did with your hosting solution. Or launch one server for each, gain flexibility, simplify your accounting, and forget all about protecting your customers from each other in order to maintain their service level.
  • Cost-effective access to development servers on a pay-as-you-go basis. Launch a cheap micro server for development and testing, grow it in one click for deployment. Or develop locally on your own servers, physical or virtual, and easily move to an identically configured server in the cloud when ready.
  • Full-server, automatic, incremental backups with the ability to restore the server to any of the snapshots that you have configured. Restoring to a server snapshot guarantees that everything runs just at it did, no more version incompatibility nightmares.
  • Automatic server monitoring. BCH automatically monitors all launched servers and provides CPU, disk, memory utilization and other information so you can keep an eye on your infrastructure
Putting your servers in the cloud gives you more flexibility to manage your cost-capacity tradeoffs: more bang for your buck.

BitNami Cloud Hosting gives you the ability to do so with no effort, significantly reduces your sysadmin time, and frees you to devote your full energy to your core tasks.
Give it a whirl at

Thursday, March 8, 2012

New AWS server types in BitNami Cloud Hosting

Earlier today Amazon announced some exciting new improvements to AWS: the availability of new types of instance types and the possibility to launch 64-bit images on all the available instance types.

Why are we excited?  Previous to this announcement, lower-end server types were only available in 32-bit architectures (with the exception of micro). One of the advantages of using the cloud is that you can start with a smaller image and simply resize it as needed. But customers who started with 32-bit instances to save money found they were limited to just 3 types: Micro, Small and Medium. And customers who started with a 64-bit Micro had a quite steep upgrade path in terms of pricing, and were only able to upgrade to a large flavor as the next instance type up.

After this announcement, it is possible now to start a project with a 64-bit micro instance and access the full spectrum of instance types, highlighting the type of flexibility that attracts our customers and users to the cloud in the first place. Combined with the recently announced price reductions it makes hosting your web applications on EC2 more attractive than ever.

We are happy to announce that starting today and just a few hours after Amazon announced these new features and instance types, they are supported by BitNami Cloud Hosting. From now on, the 64 bit instance type will become the default instance type when creating a new server on BitNami Cloud Hosting.  Give it a try!

Monday, March 5, 2012

Updated PHP 5.4 and Apache 2.4 BitNami Stacks

We are happy to announce that we have updated our BitNami PHP platforms Stacks (LAMP, MAMP, WAMP, LAPP, MAPP and WAPP) to include the recently released PHP 5.4 and Apache 2.4.1. You can download the stacks as native installers for Linux, OS X or Windows, and as virtual machines. You will also find ready to deploy Amazon Machine Images (AMIs).

Among the new features in Apache 2.4, you will find major improvements related to performance and memory consumption, as well as Dynamic Reverse Proxy configuration, improved Authentication/Authorization, FastCGI Proxy and a Small Object Caching API. This release puts Apache on par with alternative web servers like nginx for many common scenarios.

Some of the key new features of PHP 5.4 include: traits, a shortened array syntax, a built-in webserver for testing purposes, significant improvements in performance and memory footprint.

In addition to PHP and Apache, the following major components were updated:

AWS SDK for PHP 1.5.1
Symfony 2.0.11

Because PHP 5.4 is still very new and not all apps support them, these PHP platform stacks do not support BitNami application modules at this point in time. The stacks are intended for quickly testing and experimenting with these new versions, so please do not run them in production unless you know exactly what you are getting into! If you have any questions or suggestions, we will be glad to help you in our Q&A forum.

Thursday, March 1, 2012

Get started with Zend Framework in the Amazon Cloud with BitNami

In this post, we will walk you step by step through how to start a project with Zend Framework in the Amazon Cloud using a BitNami LAMP Stack Amazon Machine Image (AMI).

To get started, you will need an Amazon acount. You can find how to create your account here. New Amazon users are eligible for a free tier which provides a free micro instance for a year. Once you log in to the AWS Console, go to the EC2 tab and launch a new Instance. You can locate the BitNami LAMP Stack image by searching in the Community AMIs tab for "lampstack-5.3.10", that is the latest version at the time of writing. If you want to run it using the free tier plan, you should run the 32bit or 64bit EBS AMI.

Launching BitNami LAMPStack from the AWS Console
Another option is to launch the image directly from the BitNami website. You can select your preferred region (United States, Europe, Asia or South America), the architecture (32 or 64 bits) and click on the appropriate link.

You can then set different parameters from the AWS Console: availability zone, ssh key, the image type (micro, small, medium) and the security group. Once the machine is started, access it by typing the public DNS name in a browser and you should see a welcome page for BitNami LAMPStack.

Now it is time to connect to the machine. You can download the private SSH key from your Amazon account. If you want to connect to the machine from Windows using the popular tool Putty, you will need to convert your private key to the .PPK format. Take a look at this tutorial if you are not sure how to perform this conversion.

On Linux or OS X, you can open a Terminal and run the following command:

$ ssh -i /path/to/your/private/key.pem

You will see a welcome message similar to:
BitNami welcome message
All the required files for the Zend Framework are in the "/opt/bitnami" folder: It is the main script to start and stop the servers.
frameworks/zendframework: The Zend Framework files.
apache2: The Apache server files.
php: The PHP language files.
mysql: The MySQL database files.

One of the advantages of this structure is that it is common to all the BitNami stack types, including native installers and virtual machines. You can install the BitNami LAMP Stack on your own desktop machine, develop your application locally and then migrate the full directory directly to the cloud.

Creating a new Zend Framework project is as easy as type the following command:

$ zf create project your_project_name

You now need to create a new configuration file for Apache. You can edit the files online with a command line editor (nano, vim, emacs) but many people prefer to edit files with a graphical editor locally. Using an SFTP client like FileZilla, you can edit the files from your computer. If you need help, see our how-to for configuration instructions.

Create a folder called conf inside your project:

$ mdkir your_project_name/conf

And inside it create a new file zendframework.conf and paste the following lines:

Alias /zendframework "/path/to/your_project_name/public"

<Directory /path/to/your_project_name/public>
    DirectoryIndex index.php
    AllowOverride All
    Order allow,deny
    Allow from all

Edit the Apache configuration file /opt/bitnami/apache2/conf/httpd.conf and add the following line at the end of the file:

Include "/path/to/your_project_name/conf/zendframework.conf"

Restart the Apache server and visit the Zend Framework welcome page at

$ sudo /opt/bitnami/ restart apache

Zend Framework welcome page

That's all! You can now create your Zend Framework application in the Amazon cloud. IF Zend Framework is not your thing, remember that BitNami  LAMPWAMP and MAMP Stacks bundle other framework like CakePHP, Symfony and CodeIgniter.