DevOps

Deploy Docker to Amazon Cloud using Tutum

Have you felt the need to run Docker containers on Amazon?

Amazon Container Service requires extensive setup and manual work. This is meant for programmers who have plenty of time and willing to debug through multiple steps. For mundane programmers, like me, who like simple and easy to use steps, there is Docker Tutum!

What is Docker Tutum?

docker_hosting_tutumDocker Tutum is a SaaS that allows you to build, deploy and manage Docker containers in a variety of clouds.

There are three main features:

  • Build and run your code using Tutum’s free private registry
  • Deploy applications using Tutum to manage Clusters that are fault tolerant and scalable. Tutum handles the orchestration of your infrastructure and application containers.
  • Manage your applications through Tutum’s intuitive Dashboard, simple API, or CLI tool. With built-in logs and data monitoring, all the info you need is at your fingertips.

The main party line is:

Experience the simplicity of PaaS with none of its constraints. Enjoy the flexibility of IaaS with none of its complexity.

How Docker Tutum Works?

Key Concepts of Docker Tutum

The main concepts of Docker Tutum are explained below:

docker-tutum-architecture

  • (A) Node clusters are logical groups of nodes of the same type. Tutum pools your nodes resources, so your apps can run together thereby reducing complexity and waste. Node Clusters can be easily scaled with a drag of the slider.
  • (B) Nodes are individual Linux hosts/VMs used to deploy and run your applications. New nodes can be provisioned right from within Tutum to increase the capacity of your Node Clusters.
  • (C) Containers, (D) Links and (E) Volumes are Docker concepts.
  • (F) Services are logical groups of Docker containers from the same image. Services make it simple to scale your application across different nodes. Simply drag a slider to increase or decrease the availability, performance, and redundancy of your application.

Deploy Couchbase Docker Container on Amazon using Tutum

Docker Tutum Getting Started provides detailed steps on how to get started. Here is what I did to run Couchbase Docker container in Amazon using Docker Tutum:

  • Get started for free (at least while its in beta) by logging in using Docker Hub account.
  • Link Amazon Web Services credentials with Tutum. I just had to specify Access Key Id and Secret Access Key.If you create a new account for this then you may have to attach a policy to enable privileges such that new instances can be provisioned on your behalf.
  • Create a new node cluster at dashboard.tutum.co/node/launch/
     
    docker-tutum-new-node-cluster-1024x792
    The three values that need to be specified/changed:

    • Node cluster name
    • Deploy tags (optional)
    • Type/size to t2.medium
    • Disk size reduce from 60 to 20 GB

    Takes a few minutes to provision the AMI. Updated status could be seen on AWS Console:

    docker-tutum-aws-console-1024x129

    Tutum dashboard shows the following status after the node is created:

    docker-tutum-node-created-1024x417

  • Create your first service at dashboard.tutum.co/container/launch/. Select “Public Repositories” and search for “arungupta/couchbase-node”.
     
    docker-tutum-new-service-1024x526
    This image is created from github.com/arun-gupta/docker-images/tree/master/couchbase-node. This image performs the following:

  • Click on “Select” and configure. You only need to override the ports and take all other defaults:
     
    docker-tutum-couchbase-configuration-1024x804
    Click on “Create and Deploy”.
  • Dashboard is updated after the service is deployed:
     
    docker-tutum-couchbase-service-1024x345
  • Click on “Logs” to see logs from the Couchbase Docker container:
     
    docker-tutum-couchbase-logs
  • Find IP address from the AWS Console:
     
    docker-tutum-aws-console-ipaddress-1024x598
  • Access Couchbase Console at <IP-ADDRESS>:8091, in our case 54.67.111.235:8091. This will show the login screen:
     
    docker-tutum-couchbase-console-login-1024x634
    Enter the username “Administrator” and password “password”.
  • This shows the Couchbase Console:
     
    docker-tutum-couchbase-console-1024x536

Create/Access Sample Bucket on Couchbase

  • Click on “Settings”, “Sample Buckets”. This shows the list of sample buckets that can be installed.
  • Select “travel-sample” and click on “Create”. The updated console looks like:
     
    docker-tutum-couchbase-travel-sample-1024x502
  • If you’ve downloaded Couchbase server locally, then you can use Couchbase Query CLI Tool (cbq) to connect and query:
    bin > ./cbq -engine=http://54.67.111.235:8093
    Couchbase query shell connected to http://54.67.111.235:8093/ . Type Ctrl-D to exit.
    cbq> select * from `travel-sample` limit 1;
    {
        "requestID": "aec63fba-a85a-4763-9453-1d7ea0c5409c",
        "signature": {
            "*": "*"
        },
        "results": [
            {
                "travel-sample": {
                    "callsign": "MILE-AIR",
                    "country": "United States",
                    "iata": "Q5",
                    "icao": "MLA",
                    "id": 10,
                    "name": "40-Mile Air",
                    "type": "airline"
                }
            }
        ],
        "status": "success",
        "metrics": {
            "elapsedTime": "10.135335ms",
            "executionTime": "10.091507ms",
            "resultCount": 1,
            "resultSize": 300
        }
    }

    Couchbase allows to query document database using SQL-like syntax, aka N1QL.

So this blog showed:

  • What is Docker Tutum?
  • How to get started with Docker Tutum?
  • Deploy Couchbase Docker container on Amazon using Tutum
  • Create/Access sample bucket on Couchbase

More details:

Enjoy!

Arun Gupta

Arun is a technology enthusiast, avid runner, author of a best-selling book, globe trotter, a community guy, Java Champion, JavaOne Rockstar, JUG Leader, Minecraft Modder, Devoxx4Kids-er, and a Red Hatter.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button