Archive

Archive for July, 2013

Startups: Want to launch new features hourly?

If you read sites like highscalability.com you will have certainly read about those big name dotcoms that deploy new features to production up to tens of times a day. For most startups bringing features to production is still a manual, at best semi-manual process. You have the odd start-up that has it all automated, but unfortunately this is often a signal that they have too much time on their hands which points towards more critical problems.

What if startups would not have to worry about how to set-up hourly feature deployment? What if they could get an open source solution that delivers them flexible and highly scalable continuous deployment in minutes?

What if Startups could launch new features faster than the top DotComs and scale almost as good?

If this sounds attractive to you or you know a start-up to whom it would be, then you should visit this blog post. Ubuntu has launched a beta program and if enough startups sign up, then they will build an instant and scalable open source continuous deployment solution for them.

Deploying multiple services on one cloud server instantly…

There was a new release of Juju this week, 1.11.3, that brought a “small feature” with a big impact on your AWS bill. You are now able to deploy multiple services on one cloud server instantly. Before Juju started a new server per service which resulted in a potentially high AWS bill.

If you want to use the new feature you need to work with the development version of Juju Core. To install Juju on AWS just copy the below code into a file, e.g. installjuju.sh, make it executable: chmod u+x installjuju.sh and execute it: ./installjuju.sh


#!/bin/bash
echo "Installing Juju. Asks for your password."
sudo add-apt-repository ppa:juju/devel -y
sudo apt-get update -y
sudo apt-get install juju-core -y
if [ ! -f ~/.ssh/id_rsa ]; then
echo "Generating SSH Keys."
ssh-keygen -t rsa -b 2048
fi
if [ ! -f ~/.juju/environments.yaml ]; then
echo "Generating environments.yaml."
juju generate-config -w
fi
echo "Your AWS Access Key, followed by [Enter]:"
read awsaccesskey
echo "Your AWS Secret Key, followed by [Enter]:"
read awssecretkey
sed -i -e "s/# access-key: /access-key: $awsaccesskey/" ~/.juju/environments.yaml
sed -i -e "s/# secret-key: /secret-key: $awssecretkey/" ~/.juju/environments.yaml
echo "Bootstrapping Juju."
juju bootstrap

Afterwards you can start deploying services. If you want them to run on the same server you need to know the number of the server. Juju status will tell you this:

juju status

The bootstrap server is 0. New machines will be starting with 1 and go up. So if we want to install wordpress then we need to do the following:

juju deploy mysql --to 0 # deploy mysql to machine 0
juju deploy wordpress --to 0 # deploy wordpress to machine 0
juju add-relation mysql wordpress # create wordpress tables
juju expose wordpress # make wordpress accessible.
juju status # get the IP/URL of wordpress

Now you can log into WordPress. Your URL should look something like this:
http://ec2-<some numbers>-.compute-1.amazonaws.com

When you are done:

juju destroy-environment

Ubuntu Edge – The largest Crowd-funding experiment in history

Traditionally manufacturers would build a product, stock their warehouses and hope they sell it. “Build it and they will come”, was the norm. A very expensive strategy. Crowd-funding websites have changed this. Start-ups are now able to create a prototype, shoot a video and see if people will love the product without investing any massive amounts of money.

Today is a special day because crowd-funding can change forever. Today Canonical announced the largest crown-funding experiment ever. Where Pebble asked for $100K, got oversubscribed 100 times and ended up getting around $10M, Canonical is aiming for $32M from the start.

So who is Canonical and how will they pull this off? Canonical is the company behind Ubuntu, the most popular open source Linux distribution that runs over 50% of the Operating Systems in public clouds like Amazon AWS.

Canonical will be presenting the Ubuntu Edge, an awesome phone that will push the limits of mobile communication as we know it. It is the first phone that is “your PC in your pocket”. A phone that you hook up to a screen and a keyboard and you can use as a laptop. With 4GB of memory it has similar specs as a laptop. The Ubuntu Edge also has an Edge in usability. Everybody that was able to use the Ubuntu phone operating system will tell you that it is one of the easiest phones out there. Swipe from the left and you have all your most used apps, not only 4. Swipe from the top and you have full control of your Wifi, network, etc. Gone are the days that you had to push: Settings, Wi-Fi, etc. Without lifting a finger you pick your wifi. Right-slide switches between your apps. Bottom-slide gives you an in-app menu that changes based on the current app.

So what about mobile apps. That is exactly the reason why crowd-funding is used. All Ubuntu enthusiasts will be able to get their hands on an Ubuntu Edge. These are the top computer experts in this world. The top Geeks. The people that recompile an operating system kernel for fun. So expect them to come up with apps that push boundaries because the Ubuntu Edge is the only phone that is completely Open: Open Source, Open Hardware and Open Funding. Find more here: igg.me/at/ubuntuedge

Juju: Deploy, Integrate and Scale Services Instantly on Multiple Clouds

It used to be hard to deploy hardware in a data centre. The Cloud changed all of this. You are literally minutes away from booting a 100 instances. This however has brought other problems. Applications, clusters, software stacks, etc. need to be able to work on many instances that are dynamically scaled up and down. All of them need to be integrated, even if IPs are changing continuously.

The first generation of solutions focused on automating server provisioning. You wrote a receipt of how a web server needed to be provisioned. You then assigned a role to each instance and it would be automatically set-up.

The problem is that server provisioning is only part of managing a complete service stack. Different services need to be able to communicate with one another. Services need to be monitored, backed-up, asset managed, “syslogged”, performance analysed, etc. Each new element in your stack would need single sign-on and to be integrated with your Nagios, Ganglia, Logstash, etc. Each Service scales differently. Some need a shared file system. Others need a high-available proxy or database. Yet others rely on P2P broadcasting which does not natively work in the Cloud.

There is now a second generation solution that promises to deploy, integrate and scale instantly on all major Public Clouds as well as Private Cloud. Instead of focusing on the servers, it focuses on the services that run on top of these servers. Its name is Juju, which means magic. Juju’s magic is called a Charm. A Charm encapsulates a service. A Charm exposes standardized interfaces towards the embedded service allowing other Charms to easily integrate. A Charm also  scales the embedded service transparently.

To understand the difference between service orchestration and server provisioning let’s look at some Charms. Where service provisioning tools would be just installing WordPress on a virtual server, Juju also does integration. So when the WordPress Charm is integrated with MySQL, automatically all tables and data are created in the database. A Charm also knows about security, so when you expose WordPress to the world, automatically the right ports are opened. When scaling the MySQL Charm, the Charm knows the concept of Multi-Master Cluster and Read Slaves, so you are able to deploy a very complex MySQL cluster instantly.

The Juju basics

Using Juju is very easy. There are only a hand-full of commands that you actively use: deploy, add-relation, add-unit, expose.

# Bootstrap the Juju environment according to your preferred configuration, e.g. AWS,
# HP Cloud, Open Stack, Local, etc.
juju bootstrap
# Deploy mysql and wordpress
juju deploy mysql
juju deploy wordpress
# Create a relationship between wordpress and mysql and
# assures the wordpress schema is installed inside Mysql
juju add-relation wordpress mysql
# Open ports hence wordpress is publicly accessible
juju expose wordpress
Read more…

%d bloggers like this: