Workflow Issues • Hard to find .NET developers • Editing files over FTP • Deploys required compilation, or something dumb like that • Difficult to write tests
A fancy way of saying Let’s break the app into a bunch of isolated, single-responsibility components! And have them work together over black-box APIs. Amazon’s Web Services are great for this purpose.
Advantages of a SOA • Avoids a single point of failure • Easier to scale parts that need scaling • Makes infrastructure refactoring a breeze • Decoupled by design • Easier to rebuild in phases than all at once
Visitors View Portfolio .NET Database & Back-end tools Sinatra •EC2 •Stateless (no database) •Reads from API •Renders data in Liquid templates Get /projects/123 {project: ... }
Bad things • Single point of failure • No caching • No failover / redundancy • App logic (data fetching & theme rendering) is embedded in a web framework. Gross.
In the land of the noble beaver where the rivers run wild with maple syrup, there lives a ne young gentleman named Kyle Fox. He's been developing nifty things for us in the moose-plagued landscape of Edmonton, Alberta since the beginning of 2011. At present he is working his sweet magic on our iPad app while wrestling bears, sipping ne Canadian whiskeys and tapping every last maple tree. We raise our glasses in celebration of his big day and thank him for being such a funny and valued member of Team Carbonmade. Happy birthday, eh?
In conclusion Breaking up apps: • Makes testing & refactoring easier • Let’s you scale components individually & appropriately • Gives you freedom to drastically change how pieces work • Makes fault-tolerance & failover easier • AWS is a cheap & easy way to do this!