.NET Zone is brought to you in partnership with:

Doug Rathbone is a software architect working in Ad land. He is passionate about software design and automation, and regularly contributes to a number of industry sites on these topics. Douglas is a DZone MVB and is not an employee of DZone and has posted 62 posts at DZone. You can read more from them at their website. View Full User Profile

Introducing My Cloud Deployment Service, OnCheckin.com

06.01.2013
| 2504 views |
  • submit to reddit

Constantly over the past few years I’ve thanked my lucky stars that I’ve had continuous integration and deployment setup for the web sites I’ve been working on. It is one of the few development opinions where I break the “religion and politics” laws of social etiquette. I feel incredibly strongly about the benefits that having a good Continuous Integration and Deployment story can bring to a project and it’s team. Sadly, not everyone has been able to experience the awesome sauce of CI/CD. I’ve been working hard to change that.

imageTeams using Continuous Deployment know that the cost savings, safety and reliability that comes with deploying many times before going into production are priceless. Awesomeness aside those of us lucky enough to be putting it into action daily all found out quite early on that unless you’ve done it many times before, starting out with continuous integration can appear to add overhead to your timelines that you may simply not have time for.

I’ve used many different approaches over the years, I’ve setup Continuous Deployment starter packs for others to use to get started, I’ve blogged about it many times to try and spread the good word, but it still felt like the level of friction for newcomers was too high.

After all, you need to;

  • Setup a build server such as TeamCity, Bamboo or CruiseControl.
  • Create build scripts for your projects (MSBuild, Nant, Rake).
  • The trial and error over-and-over of getting the final deployment story to work end-to-end.

Until now.

Welcome to OnCheckin.com

image

OnCheckin is a cloud powered Continuous Deployment service. Plug in your source control and webserver just the way you use them now, and let the service take care of the rest.

I created OnCheckin.com with the aim of bringing all of the power, reliability and repeatability of a build and deployment server to you and your team without any of the setup time, ongoing management, or cost. The operating cost in both man hours, and capital expense of outlaying for software and hardware.

I want to make it so easy to use Continuous Deployment for your next project, that you’d simply be silly not to jump on in.

What OnCheckin does

The gist of it is:

1. You setup a FREE account (no cost) that allows you to do continuous deployment for 1 website.

2. Give less than 5 minutes of your time to setup a project (depending on project configuration, less than 10 form fields!).

image

3. OnCheckin.com watches your source control for any changes, and if so it queues a deployment.

image

4. OnCheckin downloads your source, builds it, runs your unit tests, takes your site offline with a holding page that you configure and then deploys to your servers before starting up your website again.

5. Afterwards OnCheckin allows you to easily review build logs and unit test results online.

image

And I’d like to think the awesomeness from OnCheckin is just getting started - I’ve also got a bunch of new features on the way and I want you to have a say, so get in and let me know how you’d like the service to grow by voting on the Trello board.

And it works for you right now

Continuous Deployment shouldn’t be limited to enterprise or open source developers alike.

When building OnCheckin I’ve tried hard to make the service agnostic to developers of all kinds. Whether you like using Github or TFS, MSTest or nUnit, FTP or WebDeploy.

With this comes the need to have OnCheckin.com work for teams using all types of tooling:

Source Control Providers:

  • Github.com
  • Bitbucket.org
  • Privately hosted Git
  • SVN
  • Team Foundation Server

(Mercurial hopefully coming soon!)

Unit Test Frameworks:

  • MSTest
  • nUnit
  • xUnit
  • MbUnit

Ways to Deploy:

  • FTP
  • FTPS
  • SFTP
  • WebDeploy

Where OnCheckin fits in

Having spent many years working in software shops, web development houses, digital and advertising agencies, I know that it isn’t uncommon when working for a client to be forced to deliver great work while low on budget, short on resources, and often pushed for time.

Regardless of your situation, the mantra still sticks:

Deploy Early and Deploy Often

I created OnCheckin to help people building ASP.Net websites all over the world by giving them all the power of Continuous Deployment, without all the hard work or learning curve.

The cost of an account starts at $0.00. The time it takes to  get setup and give it a try should be just minutes. I’ve worked hard to try and simplify the setup. If you don’t use continuous integration and deployment yet,  I hope you’ll want to try OnCheckin for your next project.

It’s early days though – OnCheckin is in Beta

While the service has handled thousands of builds already (this blog itself is deployed using OnCheckin) and the service is setup to scale, mass varied usage is still going to be a relatively new thing for the service. As with most services like this that are just launching, I don’t expect it to be entirely kink free.

A ton of user testing has taught me that every person is a unique, special kind of annoying, unpredictable snowflake.
Maggie Utgoff

There may be some projects types that won’t build yet. Any project type out of the box in VS2008-2012 should build fine though (see F# below thought) – outside of this, your mileage may vary.

There may be some types of source control repository products it may not fully support yet – there are a lots of different SVN servers, Git servers and TFS configuration's out in the wild, and I definitely don’t profess to have had access to them all during testing.

Third party project types won’t work – neither will F# projects just yet. If demand is high it’s definitely an option in the future though.

If you experience issues with anything, I’d love to help you get OnCheckin working for your setup – simply reach out by email (dougoncheckin.com) or twitter [a href="https://twitter.com/oncheckinapp" target="_blank"]@OnCheckinApp.

Technology stack

For those of you interested in knowing what's behind the scenes, I can happily share that I built OnCheckin using the following technology stack:

  • .Net 4.5
  • Entity Framework 5 Code First Migrations.
  • ASP.Net MVC 4
  • DotNetOAuth
  • SQL Server 2012
  • Windows Server 2012
  • MSBuild
  • SignalR
  • TopShelf
  • WebDeploy
  • BouncyCastle.Crypto
  • ELMAHR
  • Munq IOC Container (fast)
  • Moq
  • xUnit
  • Azure Service Bus

Serving duties are spread across a number of cloud based servers with SQL, Web, Build and Source Control spread into separate roles.

Head on over and signup for a free account

Special Thanks

I can’t take all of the credit for what I believe to be the awesomeness that is OnCheckin.com.

Over the past 6 months while I've been putting the service together, I've had to moral support of many great people. Some have given me feedback, some helped steer me on the right path. Others have just been great support whether you’ve actively known about it or not. Thank you to everyone who offered words of wisdom, or just shared a beer with me for support over the past few months, there are too many to mention but you know who you are.

Some special mentions I will make though (you may notice a trend):

Sayed I Hashimi 
@sayedihashimi
http://sedodream.com

I cannot say enough about the awesomeness that Sayed gives to the ASP.Net community – he literallywrote the book on MSBuild. While working by day on the Visual Studio web team, he also puts in a huge amount of effort working with the community. Everywhere I’ve visited on the web relating to Visual Studio Build, MSBuild, TFS, you name it he’s written a blog post about it, answered a StackOverflow question about it, or replied by email or Twitter. Sayed personally took the time, more than a few times, to help me by replying to emails, Stack Overflow questions and tweets. Thanks Sayed!

Paul Stovell
@paulstovell
http://paulstovell.com

Paul needs no introduction, having brought Octopus Deploy into the world. Paul also took the time to sign up, take a look at OnCheckin and give me his thoughts. The input I really valued from Paul wasn’t just his feedback though – his “from the road” start-up  advice and words of support were really what helped me keep putting in the hard yards. All of the months of less blogging, more coding, and obsessively long hours wear on you. Pauls advice motivated me to push on. Thanks Paul!

Daniel Nolan
@dan3r3
http://ready-roll.com/

Dan is probably another name you’re familiar with. Dan brought Ready-roll into the world and with it the awesomeness of automated SQL versioning and source control support. Dan offered some great advice, took the time to review the service and generally put my mind at ease about what I might be doing wrong, right or what was just plain crazy. I recently found out he also lives two blocks from my home, so me shouting him the odd pint or two should definitely allow me to tease out more golden nuggets. Thanks Dan!

Published at DZone with permission of Douglas Rathbone, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)