I’m in the process of trying to move my digital life into the cloud. I’m late to the party, but I’m on my way. These are some the things pushing and pulling me into the cloud:

  1. I’m curious.

    I’m interested in cloud solutions to software problems. I think cloud platforms compel developers to produce robust, secure, and scalable software architectures and designs. I think the way cloud platforms provide shared data mechanisms put constraints on software architecture that results in better software systems. I think the way cloud platforms scale and reload compute instances adds other constraints that also result in better software. I think cloud platforms drive a higher level of automation than more traditional client-server systems.

    I’d like to build SaaS applications. But I don’t have the opportunity to do that in my day job, and I’ve not been able to create that opportunity. So what remains is moving my personal systems and my self education efforts to the the cloud.

  2. I’m lazy.

    I’m tired of maintaining my own servers. I’m tired of doing backups and restores, replacing and updating disk drives, updating memory, migrating to newer hardware, and so on. I’d like someone else to worry about failing or obsoleted hardware, reinstalling operating systems, et cetera.

    I’ll always have at least one physical computer on which I can run client and desktop software, but just one system requires a large sync of time and attention to maintain. I want to eliminate any additional maintenance of physical systems.

    And, yes, I still have maintenance of compute and storage resources in the cloud. But I can automate a lot of that, and I have no responsibilities for physical hardware maintenance.

  3. I’m fearful.

    I’m afraid that failure, fire, or theft will cause me to loose critical information, or lose my completed or in progress work, or cause significant interruptions in my ability to work. If I can keep my information offsite with providers that have high reliability, if I can make most of my services offsite, then I eliminate a lot of the risk that is at the root of my fears.

    Of course, there is a risk of losing information and services in the web. The biggest source of that risk is losing the ability to pay for the service or getting locked out of the cloud accounts due to forgotten passwords, lost MFA devices, social engineering attacks, et cetera. All of which sound like great topics for future posts.

So, I’m migrating away from my local email client to use GMail (a good topic for a future post), and I’m using online backup services, and iTunes Match, DropBox, and so on.

But now I’m trying to move as much of my software development into the cloud as possible. I want to create web services and web applications, and I want to host their development in the cloud. I want my source code repositories to be in the cloud. I want my automated build and test to occur in the cloud. I recognize that desktop is still critical – that’s were the IDEs, text editors, web browsers, PDF readers, graphics editors, and ebook readers all run – but almost everything else can live on a cloud platform.

As a first step, I decided to host my Git repositories on a server in Amazon’s cloud platform (primarily EC2 and S3). My next post will describe how I did that and what drove my particular choices.