Deploy a Framework Friday #2 with ASP.NET MVC 4

First let’s build a standard ASP.NET MVC Application (yes, you can do the same without the MVC Project, but I STRONGLY recommend never creating a standard ASP.NET application again, EVER). This quick run through assumes you’ve already setup a Cloud Foundry enabled PaaS w/ your already installed Iron Foundry components for .NET development. Get an Iron Foundry enabled account here, it’s 100% free, so no reason not to give it a go.

There are a few ways to do this. One, the click on the start page new project option.

Click on the start page new project option...
Click on the start page new project option…

Two, the menu based selection option.

Menu based new project option...
Menu based new project option…

Three, the command button option.

Click on the command button new project option
Click on the command button new project option

So pick your poison and then select the ASP.NET MVC 4 Project Template. On the next dialog, you’ll enter the information of where the project will go and choose the ASP.NET MVC 4 Web Application Project Template.

Selecting the ASP.NET MVC 4 Web Application (Click for full size image)
Selecting the ASP.NET MVC 4 Web Application (Click for full size image)

The next dialog select the Basic template, leave Razor selected, and I always leave the unit tests project there also. Once this is done we’re now ready to give our project a little taste of deployment.

Since we’re working in the land of GUIs and .NET, I’ll keep this to a completely GUI based deployment. However, don’t forget that the vmc-IronFoundry is available for pushing also. So don’t fear the CLI, but we’ll skip it for now (tip: It’s practically the same as the other deploys).

On the project in Visual Studio right click and select Push to Cloud Foundry.

Publish option on the context menu (click for full size image)
Publish option on the context menu (click for full size image)

A dialog will appear for the basic parameters needed for the deployment. Enter information that you need for your application and click ok.

Setting the parameters (click for full size image)
Setting the parameters (click for full size image)

Now when you navigate to your cloud in the Cloud Explorer UI (Start -> All Programs -> Iron Foundry -> Cloud Explorer) you’ll see the application running under that cloud environment.

As always, it is indeed THAT easy when using a Platform as a Service to deploy to!

Deploy a Framework Friday #1 with Ruby and Sinatra

Alright, just for fun I’m kicking off a new blog series. I’m going to publish a new “Deploy a Framework Friday” each week for about the next, well, bunch of weeks. There are a TON of frameworks that are available on PaaS Technologies.

This first entry I’m going to implement a simple Sinatra app with Ruby. Nothing fancy, simply a hello world and the respective deployment to a Cloud Foundry PaaS.

First, let’s whip out the super complex code (right, this isn’t complex, I just like sarcasm). The hello.rb file I created.

[sourcecode language=”ruby”]
require ‘sinatra’

get ‘/’ do
"Hello World!"
end

get ‘/route’ do
"Hello from a route URI!"
end
[/sourcecode]

Next add a Gemfile & respective Gemfile.lock as such.

Gemfile

[sourcecode language=”ruby”]
source "http://rubygems.org"
gem ‘sinatra’
[/sourcecode]

Gemfile.lock

[sourcecode language=”ruby”]
GEM
remote: http://rubygems.org/
specs:
rack (1.4.1)
rack-protection (1.2.0)
rack
sinatra (1.3.2)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
tilt (~> 1.3, >= 1.3.3)
tilt (1.3.3)

PLATFORMS
ruby

DEPENDENCIES
sinatra
[/sourcecode]

Then deploy using the Cloud Foundry VMC.

[sourcecode language=”bash”]
vmc push
[/sourcecode]

If you’ve forgotten, be sure to target and login first.

[sourcecode language=”bash”]
vmc target api.ironfoundry.me
vmc login
[/sourcecode]

That does it. Yeah, not a whole lot to get started working on a Sinatra Project. For more information on Sinatra check out the main web presence here http://www.sinatrarb.com/.

For more information on Cloud Foundry or Iron Foundry click on the respective link.

For the code sample, check out the working “paasIt” code repo on Github.

Next week I’ll do a baseline ASP.NET MVC 4 Application and get it deployed.

Ruby 1.9.3, Iron Foundry + Cloud Foundry and++

Installing the Latest Ruby, A Gotcha

Generally, you’d just install rvm (Ruby Version Manager) and execute this command.

[sourcecode language=”bash”]
rvm install 1.9.3
[/sourcecode]

But alas, as happens sometimes, I ran into an issue related to the C compiler being found. Checking the log file for errors I found the message and went searching, finding an immediate solution thanks to good ole’ Stack Overflow. Simply executing the install with a specific C compiler will get things running smoothly.

[sourcecode language=”bash”]
rvm install 1.9.3 –with-gcc=clang
[/sourcecode]

Installing the Latest Ruby on Windows

This part is pretty stupidly simple. Just download the installer and execute it. Once you’ve done this you’ve got all the gem bits and ruby bits you need to get the CLI for Cloud Foundry w/ the Iron Foundry .NET Additions!

Installing the vmc-ironfoundry CLI App

Why am I installing Ruby 1.9.3 besides the obvious fact that it is Ruby, and awesome, and inherently great for getting shit done? I need the latest bits in order to install the latest Iron Foundry vmc client! You may ask, what’s wrong with the vmc client that Cloud Foundry has made? Well, the .NET bits aren’t included to appropriately identify when you have a .NET application. Basically, the vmc client is the exact same one that the core Cloud Foundry team puts together, but with the additions to know that there are Iron Foundry DEAs that can launch and run .NET Web Applications. To install this, execute the following command on OS-X.

[sourcecode language=”bash”]
gem install vmc-IronFoundry
[/sourcecode]

If you ever run into the

“Could not find a valid gem ‘vmc-ironfoundry’ (>= 0) in any repository”

a quick call to update will usually resolve the issue. You may need to run this command with sudo, to insure you have access to the gems directory.

[sourcecode language=”bash”]
sudo gem update –system
[/sourcecode]

Summary

At this point you can deploy a ton of languages and frameworks in addition to having .NET & SQL Server Support. I’ll be following up this with a how-to on deploying an ASP.NET 4.0 MVC Application, Node.js, and Ruby on Rails Application, scaling them to multiple instances, and best practices around that in the next month or three. In addition to that, I’ll have some great material coming up regarding some practices around getting these frameworks to work well together against data sources, across end points, via services and more.

PDX & SEA Code Camp, OS Bridge, OSCON, Iron Foundry, Robotech and Action! Stage II

I usually don’t post two blog entries in one day, but I had so much to rattle on about it seemed like a rule to break.

DeployCon, Cloud Expo and Cloud Bootcamp

I’ll be speaking at the Cloud Bootcamp at the Cloud Expo in New York City. So if you’re coming to the conference, swing by and let’s talk PaaS and the future of software development and cloud computing. I’m looking forward to the event, it’ll be a good time and has a lot of educational content.

Also during Cloud Expo, be sure to check out the DeployCon. The DeployCon Conference is a PaaS Conference put together by Rishidot Research. Check out more information here.

Iron Foundry

Over on the Iron Foundry Project we’re going to be putting together some new material on what’s next, where we are on the project and where we are headed. The effort will be pushing forward with some possible hackathons or installathons for those interested. So if anyone is keen on checking out the latest and greatest of .NET PaaS options available, send me an e-mail and we’ll start coordinating some efforts.

Robotech

Yeah? Do you know the designation of the fighter type?
Yeah? Do you know the designation of the fighter type?

So why am I bringing up animated Anime from the 80s? Well, I was a pretty huge fan of the series, played the RPG, and own a few of the toys. Which yes, puts me in the nerd realm all that much more.

Know what this is?
Know what this is?

For the next few months I’ve decided that we’re going with Robotech for code names of our projects. Who is “we”? I mean that in the sense that any and all projects I’m working on are going to be prototype names from Robotech. So if you notice a Robotech theme going on, that’s the reason.

Action Shots

As promised, action shots…

…the Destroids stand guard over Portland and the Zentraedi onslaught. Just my creative dorky side.

Destroids standing ready...
Destroids standing ready…
Tomahawk
Tomahawk

Cheers!

I Can Talk About It Finally! => Tier 3 Web Fabric Platform as a Service (PaaS)

A couple months ago I shifted gears and started working for Tier 3 on a number of projects. I made this decision for a few reasons:

1. I’m a huge advocate of PaaS (Platform as a Service) technologies. I like what PaaS enables and what it eliminates. Matter of fact I’d say I’m a bull on the technology. I like to learn about, create and build the architectures within platforms. I also love the rather complex back end problems that come up when building a truly powerful, scalable, high end, highly available PaaS. You say, “Adron, Tier 3 doesn’t have any PaaS stuff, it’s an IaaS Provider, this doesn’t explain anything?” Aha! Read on (unless of course you’ve caught the news today… then you already know the answer)

2. I’m a polyglot dev. .NET kind of burned me out a few years back and I dedicated to learning as many other frameworks, languages, and tech stacks that I could. I’ve never been happier with the variety these days. I’ll admit though I still love to use all those years of experience I have with .NET. Indeed, I have a little soft spot in my heart for C#. Tier 3, along with the Iron Foundry Project, has given me the opportunity to work across languages and stacks including Node.js, Ruby, Objective-C and more.

3. I like to build things, advocate for those things and what they can do for you, for dev teams, and in the end what we developers can build with them. Sometimes this might mean I do it myself, sometimes it means coordinating and leading a team (or as I often say of leads, “serving” the team). Right now I’m getting to do a little bit of both and it is indeed fun and really exciting! This brings me to the answer.

The Answer:  Tier 3 now has one of the, if not the most advanced PaaS Environment available today.  Yeah, you can quote me on that. I’m not saying it because I work at Tier 3, I’m saying it because I decided to come work at Tier 3 to help build it. Those of you that know me, know why and where I do things. I have intent behind these decisions.  😉

The Tier 3 PaaS environment officially has more support for frameworks than any other PaaS Provider out there today. Congratulations to the team for getting this out the door! Needless to say, I’m proud to be a part of this team of bad ass devs! Cheers!

What is the Tier 3 Web Fabric?

Here’s a short tour I put together…

What exactly makes up a Web Fabric? We’ve taken Coud Foundry as a core, adding Iron Foundry for full support of all major Enterprise Frameworks and added a fabric over these services to provide an automated seem-less creation of a complete PaaS Environment.

How would you use a PaaS like this?

In an enterprise software and application development shop there is often a break out between development, testing, maybe a UAT (User Acceptance Testing) and finally production. One way to utilize such capabilities is to built a Web Fabric for each of these environments. Once each environment is built, these can then be scaled up or down as needed. Once the environment is done simply delete it. For an environment like UAT or Test, this is one of the most ideal situations to create an environment from scratch, ensuring that outliers don’t affect the testing criteria. How do you build a Tier 3 Web Fabric PaaS? This is the fun part. This process involves a little information and a few clicks, which then will build an entire PaaS environment.

Step 1: In the Tier 3 Control Panel click on the tab titled “Fabrics“. Inside that view, click on “Create Web Fabric“.

Tier 3 Control Panel
Tier 3 Control Panel

Step 2: Fill out the information requested on the screen. The user that you’re creating will be your Tier 3 Web Fabric Administrator. The name becomes part of your URI to access the PaaS API from, and the friendly name below that displays as a description in the control panel. The last piece of information is public or private, the private option limiting access to only VPN users of your Tier 3 Account.

Creating a New Web Fabric
Creating a New Web Fabric

Step 3: Now give it some time. Remember this is not merely a simple virtualized instance of an operating system. What is now happening is a Cloud Foundry environment is being built, Iron Foundry is also added & other enhancements are being applied and built. This then creates an entire Tier 3 Web Fabric that can be used with any of the following tools, languages, and databases.

A few of the languages and frameworks…

  • Ruby on Rails or Sinatra
  • ASP.NET w/ whichever .NET Language, it could be C#, VB.NET, or .NET COBOL if you so felt inclined to build a web application with it.
  • Java w/ Spring and other options.
  • Node.js Nuff’ Said
  • Python

Of course the database services too…

  • MongoDB
  • MS SQL Server
  • vmWare PostGreSQL
  • Redis

These are just a few that are and will be supported in the coming days. The Cloud Foundry base provides a massively powerful core to build off of and extend services and frameworks.

For pushing applications to the Tier 3 Web Fabric, here are some tools to help with that…

vmc-IronFoundry :: This is the same thing as the vmc CLI that is part of the Cloud Foundry Project except that it adds support for .NET pushes from the command line too.

vmc :: this is the default way used by most people working with Cloud Foundry based PaaS Environments.

Eclipse & STS for Java :: this is the extension that integrates into Eclipse.

Cloud Foundry Explorer :: this can be used to view and push .NET applications to the Tier 3 Web Fabric (or any Iron Foundry enabled Cloud Foundry Environment)

Open Source Software, Iron Foundry and More…

In the coming days, weeks, and months I’ll be working with the team here at Tier 3 to drive more capabilities and features. In addition I’ll also be driving the Iron Foundry Open Source effort, pushing to extend what we’ve provided already with the .NET support extension on Cloud Foundry and also more. We here at Tier 3 love the open source community, and we love being part of the community. So with this announcement I wanted to add a big, huge, awesome THANKS to everyone out there passionately involved in and building software that is open source. You all ROCK!

Stay tuned, this is merely the beginning.