Tuesday, November 30, 2010

Goodbye, Amazon

Tonight I moved my servers out of Amazon's cloud and into Linode's. Life on Amazon's cloud has not been simple these past few weeks.


But, wait, you ask - isn't Amazon the first and most prominent cloud provider? And I've never heard of Linode...


That's what I thought for a while. It's what I thought when I first started noticing problems connecting to Amazon's instances - hey, it's probably my fault. So I set up multiple "ping" services to check my web site every 10 minutes to see if it's available. I used Pingdom.com and WasItUp.com. And guess what I found out - it's not me, it's them. Their instances are simply flaky. And incredibly weak.


Let me explain exactly how bad it is. For 2-3 weeks I had the following configuration: 2 load-balanced Amazon instances that serve simple static HTTP pages with Apache. Now, nobody was using them, just to be clear. They were simply there for the purpose of being pinged every 10 minutes.


The result was multiple periods of unavailability lasting a few minutes each every day. My iPhone's SMS inbox was getting full from all the downtime alerts I was getting. This, you might say, is completely unacceptable already, so why the hell did you launch your Alpha on this platform?
Well, I shouldn't have. I should have trusted my own tests. 


But the straw that really broke the camel's back was on launch today (two days ago). The system came up and lots of people got invitations to log in. After about 30 minutes the connection to Amazon became a 3KBps upload silly-straw. This meant that even relatively simple operations like saving a Gigantt plan with a few hundred work items took 20 seconds, and sometimes it timed out. The servers themselves weren't stressed at all - it was Amazon's network, which is also very flaky. This is even after I moved my servers from east-cost U.S. to their Ireland farm, mind you (I initially suspected that the east-cost might be a bit too far and that the EU farm may improve latency for me).


Now that I moved to Linode life seems so much better. I got my own HAProxy, and I don't have to rely on Amazon's weird ELB product for load-balancing. The instances are much much stronger (albeit more costly) - buy, hey, you get what you pay for. And the bandwidth is terrific. Let's just hope it stays like this.


In the process of choosing a cloud provider I tried all the big players: Amazon, GoGrid, Slicehost, Linode and Rackspace (well, I couldn't even finish the signup process on Rackspace, to be honest, it was just so painful, so let's take them out of the list).
I knew Amazon had problems, and yet their reputation made me suspect the situation will be similar on other providers. Even after I tested and compared their availability I hesitated to switch away from Amazon because, well, it worked, most of the time, and I had more urgent things to accomplish. That all changed once my servers stopped working 30 minutes into the launch. I hope I learned my lesson.


I also want to commend Linode's support team. I opened a support ticket within the first hour of signing up and they responded in 5 minutes, and followed up for the next 2 hours to help me sort things out. Excellent customer service. Amazon, btw, has no customer service to speak of (unless you're willing to cough up exorbitant fees).


Bottom line, I hope the transition is smooth and that nobody's experienced any down time at all. If you notice anything fishy please let me know. I'm keeping the Amazon instances on for now, just for backup, until I see everything is nominal.


Thanks, Dima, for telling me about Linode.

Sunday, November 28, 2010

Gigantt Alpha is Here

The Gigantt Alpha is here

It is by invitation only, and those that have requested an invitation will receive an email today with instruction on how to log in.
I highly recommend going through the What's New section of the tutorial (login required) to see what has changed. 

What does Alpha actually mean?

It means that it's a work in progress, and there may be bugs and prolonged periods of unavailability. I'll do my best to minimize them. But it's not that bad: Gigantt's servers are virtualized over Amazon's Cloud and use highly reliable storage. They're also backed up entirely every hour, so you can rest easy that data-loss is unlikely. In addition, all communication is encrypted and no passwords are stored (only hashes).

What's Missing
  • Still no time estimates and resource allocation. Coming soon.
  • Still no auto-save, so do Ctrl+S from time to time.
  • Still no collaboration, so only one person can edit a plan, and if you save from multiple browsers simultaneously you may overwrite your changes, so watch out.
  • Still no easy way to connect remote items. But this, too, will be added very soon.
Other than that, it's a dream for personal management. If you don't agree, there's a feedback button inside - use it.

What's next? 

I plan to release a minor version in a week or so that will address any issues found by alpha users. This release shall also include a crude implementation of time estimates and creating remote connections (i.e. between items not in the same container), just to make it a bit more usable for small teams.

Friday, November 12, 2010

Who wants Kibble?

Gigantt is officially eating its own dog food. After 6 weeks of work I'm very proud to announce that I am now using Gigantt to plan and manage itself. Setting this canine-cuisine goal for myself so early in the project, I now realize, was the smartest decision I've ever made. Right away, I could tell what's crucial and what's not. What's really annoying - to the point of hurting usability - and what's just aesthetic nitpicking on my part. It also made me realize that I've still got a long way to go until I can release this product into the wild.


As you no doubt remember, I'm working on the private alpha version now, and by dog-fooding I'm finding out I still have quite a bit of work to do. More than I'd planned initially. There's a wide gap between cool and useful, and there are lots of tiny features to implement without which the system is just too annoying to use. 


Thanks, by the way, for signing up for the alpha. Lots of people signed up - more than I expected. While there's no link to a cool showcase in this post, I can at least tell you a bit about what to expect in the alpha.


Planned Alpha Features

  • Saving plans. Obviously, this requires quite a bit of work in terms of creating a server-side, setting up user accounts, security, etc. 
    • Sign-up is by invitation only at this point.
  • Improved editing
    • Cut & paste using a multiple-item clipboard.
    • Undo (simple, right? I wish...)
    • Reordering items by drag-n-drop.
    • Deleting connections between items.
  • Being able to mark items as "done".
  • A feedback box, for quick one-click "listen, this product sux big time and you should quit" messages from early adopters.
  • Lots and lots of tiny improvements that you'd hopefully not even notice because they're so natural and obvious.
Basically, the alpha will be a fancy mind-mapping system for graphs, instead of trees. As such, the alpha is useful for personal planning and management. Not quite useful for managing a team just yet. The rest of the functionality, like time estimates, resource allocation and collaboration, will have to wait for future versions. 

Wednesday, November 3, 2010

The Final Gigantt Showcase

The final Gigantt showcase - version 0.6 takes the form of a tutorial. Hopefully it's self-explanatory and anyone going through it would find the system usable in exactly two minutes.
What's New
Even though the tutorial goes through all most of the features, allow me to highlight some of the stuff I've added since the last showcase:
  • Gigantt plans are now editable. It's similar to how you might edit a mind-map. 
    • You can create new items, delete, rename and even draw connecting lines between items in the same level.
  • I've added keyboard navigation, which is (hopefully) even more convenient than the mouse.
  • You can search the map.
  • The browser address can now be used as a link to the item you're viewing, and you can also use the browser's Back/Forward buttons to navigate (update: this doesn't work on Chrome at the moment).
  • On the server side I've moved Gigantt to Amazon's AWS Cloud Service. Hopefully the scalability would come in handy (if there are ever enough users). Moving to AWS was, by the way, a very positive experience, and I recommend their service.
This is going to be the last public showcase. Thanks for following thus far, and for sending me valuable feedback. 
What's next? 
I hope to launch a private alpha in 1-2 weeks. If you want to participate in the alpha just send me an email. From that point on Gigantt will start to eat its own dog-food. Hopefully I won't be the only one using the system :). So, go ahead, give this last showcse a try and let me know what you think.