BSA 728x90 Center Banner

Running Docker on VMware Photon on VMware vCloud Air OnDemand

Fret not, everyone! VMware still has a chance!

 

I was given the opportunity to get $500 in free credits for vCloud Air OnDemand and decided to put them to use. By the way, if you want $300 in free credits sign-up using this referral link using code Influencer2015. For everyone that signs up through this referral link, you will be put in a drawing to win an additional $200 in free credits. 1 person signing up each week will win an EXTRA $200 in credits chosen by MKG Marketing. Use promo code Influencer2015 through this referral link to automatically get $500 in vCloud Air OnDemand credits! If you get denied, get hung up, or already have a vCloud Air (not OnDemand) account use a different email address during sign-up. As part of this exploratory process, I wanted to give VMware Photon a test run to see how long it would take to get my first Docker container up and running. Unfortunately, containers (atleast Photon) aren't first class citizens in vCloud Air OnDemand. Let's look at the process.

 

VMware has done right by putting the VMware Photon ISO in the public catalog, but that's about where it ends. In terms of ease of use, Photon requires DHCP out of the box where as vCloud Air OnDemand natively wants to use Static IP addressing from a Pool. So I guess you could do some serious customization using the vCloud API to make this process much more refined. In addition, deploying VMware Photon at scale needs to be addressed. My quick hack as shown in the video below requires using the vCloud Director user interface to make some changes to the networking infrastructure to allow VMware Photon to be used natively with DHCP.

Add a comment
Read more: Running Docker on VMware Photon on VMware vCloud Air OnDemand

Persistent Data on Docker Containers from EMC {code}

Docker containers are architected to be ephemeral, meaning the entire container can be wiped out and no harm is done. But what about containers that you are using for databases such as PostgreSQL and MongoDB? What about containers that need access to backend storage. There are tricks that can be done such as using LVM to mount volumes, or using something like NFS or Amazon's new elastic NFS services to automatically mount those shares on docker run. But what about creating those volumes directly from the docker run command line? What about spinning up many containers all attached to block services that can come from AWS or even your own storage infrastructure?

 

Today, the EMC {code} team is happy to announce a few new projects. All of these were created by Clint Kitson and his genius of the Go language. Check out these videos below and you can check out the repos here:

https://github.com/emccode/rexray

https://github.com/emccode/rexraycli

 https://github.com/emccode/dogged

 

Read the official blog release: Dogged-ly Pursuing Persistent Data for Containers with REX-Ray

Add a comment
Read more: Persistent Data on Docker Containers from EMC {code}

Simple Gmail Hacks That I Use Daily

Email is the thing we all love to hate. However, if we can't use Slack, then Gmail is by far the next best thing. Having been a user for Gmail since its early early beta days when you need an invite, I've grown fond of it. The spam filters, the style, the responsiveness, and the access from anywhere is what I love. There are some hidden "features" that many don't know about. I'm going to highlight some that I use daily.

 

In true Google form, everything always seems to be in a stage of "experimentation" like it will eventually die. Remember Google Wave?  The Google Graveyard

 

We are going to look at 3 projects within the Gmail Labs and also some other Account Feature hacks. Where is Gmail Labs? 

 

Within Gmail, click on the top right drop-down with the gear icon and go to settings

Add a comment
Read more: Simple Gmail Hacks That I Use Daily

Deploying a Node.js WebApp with MongoDB to Cloud Foundry

I recently created a new project to help me get a better understanding of Node.js webapps using Express.js and using MongoDB on the backend. It took me a little over 2 hours to get this app properly deployed to CF and run in development at the same time. Documentation is sparse, so I'll spare you the details and just show you how it's done.

 

package.json:

The only thing you need here is that if you are using express.js then the "npm start" needs to be setup correctly. If you used the express generator then this is done for you.

"scripts": {
    "start": "node ./bin/www"
  }

 

Add a comment
Read more: Deploying a Node.js WebApp with MongoDB to Cloud Foundry

Win a vSphere Home Lab from VMTurbo!

Do you need a home lab or just want to add on to your existing? Of course you do. Who the heck doesn't. So what's up for grabs?

  • Intel NUC with Intel Core i5-4250U
  • G.SKILL Ripjaws Series 16GB (2x8G) 204-Pin DDR3 Memory
  • SAMSUNG 840 EVO 250GB SATA III TLC Internal Solid State Drive
  • Synology DS415+ Diskless System DiskStation 4-Bay NAS
  • 2x Dell 1TB 7200 RPM SATA 3.0Gb/s 3.5" Hard Drive
  • Cisco SG300-10 10-port Gigabit Managed Switch
  • Rosewill 7ft. Cat 6 Network Cable

 

How do you enter? Simple. VMTurbo is giving away a home lab to 3 lucky winners who sign up for their 5.1 release webinar!

 

 

 

Add a comment
Read more: Win a vSphere Home Lab from VMTurbo!

Encrypting Data Using attr_encrypted With Rails

I'm making a new application that will be public facing but I don't want any clear text being stored on the server for any user at anytime. This way, there will be no compromising of data. In this case, username and password credentials. This isn't an application where a user will login with their creds, if that were the case I would have used Devise. Instead, I'm taking these username and password credentials and piping them in to the application to talk to an outside service.

 

The first part of obscurity was making the Rails model create new entries based on UUID instead of sequential numbers. That was pretty easy by following this tutorial How to start using UUID in ActiveRecord with PostgreSQL. The second part was implementing the attr_encrypted gem. attr_encrypted allows you to store data in encrypted format to your ActiveRecord database. In this case, i'm using Postgres. 

 

The README is a start but doesn't get you all the way there. So here is how it's done.

 

Start off by creating a new scaffold. You must specify encrypted_ before anything you want encrypted in the model

rails g scaffold Model encrypted_user:string encrypted_password:string host:string

 

Add a comment
Read more: Encrypting Data Using attr_encrypted With Rails

How to Fix ScreenFlow Internal Error When Recording Computer Audio

Yesterday, I wanted to record a few minutes out of an embedded HTML5 video but didn't want to cut and edit the video. So I figured I would just use ScreenFlow to capture it. Before I was able to record computer audio, I had to install the ScreenFlow Audio Driver. I followed the proper steps, and when I went to record computer audio I was hit with the error: "Recording Error Due to an internal error, the recording has unexpectedly terminated. Please try making your recording again, and if problems persist, contact us for technical support."

 

After a quick google search showing me a few youtube videos and Telestream forum posts, including 4.5.2 Wont Update Audio Driver, none of them worked. By the way, don't follow 4.5.2 Wont Update Audio Driver thread and repair disk permissions unless you want to waste your time.

 

After reading how to uninstall the ScreenFlow Audio Driver did I finally understand how to reverse engineer it. Follow these steps:

 

Add a comment
Read more: How to Fix ScreenFlow Internal Error When Recording Computer Audio

2014 into 2015 with Virtualization, Containers, and Code

You asked for it John, so here it is!

 

In the realm of virtualization, 2014 was a major buzzkill. It's a big indicator of things on the horizon for 2015. From my look back in VCE, I saw a rise in VDI deployments because SSD is cheaper and getting to be commonplace. Lots of talk about network virtualization, but I've seen marginal "real-world use". I really thought a network virtualization provider such as Plumgrid, VMware NSX, Cumulous, or someone else would be leading the charge, but it looks like the technology still needs more time to mature. Give it a few more years. And for me personally, virtualization has lost my mindshare. Some of my VMware certifications have officially expired and the world doesn't need me as a VCDX.

Add a comment
Read more: 2014 into 2015 with Virtualization, Containers, and Code

Implement a list item tagging system using jQuery

2 weeks ago I completed a new feature on EMC Code's github page. We have a bunch of different projects that need to fit in different buckets but can sometimes span more than one bucket. Or projects in two different buckets use a common technology. To make it easier for our users to find things relevant to them, I created a tagging functionality. 

 

The HTML

First create a div that will have nothing in it. I've assigned this with a class if "hiddenUL". This is where we will use jQuery to append the list items with specific tags.

 

Next, create an unordered list of items that will need a common class. In this case, the class is "item_box" because every item is in the shape of a box. Next, we give each list item a set of classes. Don't pay too much attention to everything *inside* the list item. All of that is there for the styling of it. These classes, however, are going to be our means of tagging. Make sure spelling and capitalization are all correct. It's also important to note that we can have multiple sets of unordered lists. 

 

Lastly, create some buttons. You will need a button for every type of keyword or class you defined in the previous step. Also, create a 'clear tag' button that will be used to clear the tags.

Add a comment
Read more: Implement a list item tagging system using jQuery

Creating a worker process on Cloud Foundry with Clockwork

I just got finished writing a Rails application that requires a 'cron'-like job to run every 30 seconds. This job will scrape a website for data every 30 seconds and update the database and notify me via SMS about any changes. I was able to get this all working on Heroku after a while with the assistance of some Procfiles. but I wanted to try this on Cloud Foundry as well.

 

The problem existed because of lots of out-of-date documentation on the part of Cloud Foundry. The most confusing part was not understanding this requires 2 containers/applications. One for the app, and another for running the clockwork task. In Heroku, this requires 2 Dynos as well because 1 is for 'web' and the other is for 'clock', however, this is all masked behind Heroku's magic.

 

So how do you create a worker process? I was going back and forth creating rake tasks, then tried putting logic into my controller, and having everything ultimately fail. After some trial and error, I found out the best & easiest way is to put all the logic into the Modal. Once the logic is in your modal, you can easily call it by doing Modal.method.

 

Second, add the clockwork gem to your Gemfile, then create the file "lib/clock.rb". Follow the gist below to configure your clock.rb file. Specify the Modal.method that you wish to call.

 

Great! now we just need to build our manifest.yml file for Cloud Foundry. The important thing to remember is that we are essentially going to spin up 2 applications. The first container will be the web front-end of our rails app, and the second container is just the clockwork reoccurring job. If your reoccurring process will need to make changes to the database (which it most certainly will) make sure you append the correct services. In this case, both of my containers will be using the same database.

Add a comment
Read more: Creating a worker process on Cloud Foundry with Clockwork

Page 3 of 32

Related Items

Related Tags