Many see service oriented architecture as laying the groundwork for cloud. But at one well-known company, cloud has instigated the move to SOA.
As Netflix, the internet and mail-based subscription service for movies and TV programs, moved to the cloud, the company saw an opportunity to recast the mold for how they build and deploy software. The company moved to a more decentralized model, in which individual business units took ownership of the services they were building, deploying and managing.
"We used the cloud migration as an opportunity to re-architect our system into a service oriented architecture with hundreds of individual services," Ariel Tseitlin, director of cloud solutions and Greg Orzell, cloud & platform engineering architect for Netflix explained in a recent post. "Each service could be revved on its own deployment schedule, often weekly, empowering each team to deliver innovation at its own desired pace. We unwound the centralized deployment team and distributed the function into the teams that owned each service."
Prior to its cloud/SOA journey, Netflix was running "a large monolithic Java application running inside of a Tomcat container," they relate. A centralized team reviewed newly submitted software every two weeks. The company also had a separate operations team that worked separately from developers. The cloud effort led to a transformation effort for Netflix. "Once a centralized function, operations is now distributed throughout the development organization," Tseitlin and Orzell write.
Core to the effort was moving "from a few teams checking code into a large monolithic application running on tens of servers to having tens of engineering teams developing hundreds of component services that run on thousands of servers." As a result, the added sense of ownership of services resulted in "more robust applications and greater agility than centralizing these efforts," Tseitlin and Orzell observe. "For example, we've found that making the developers responsible for fixing their own code at 4am has encouraged them to write more robust code that handles failure gracefully, as a way of avoiding getting another 4am call. Our developers get more work done more quickly than before."
The takeaway here is that cloud, as has been the case with SOA, is more than just slapping a technology in place. It provides opportunities for new ways of doing business.