The Doppler Quarterly Winter 2016 | Page 22

service/API managers and governance technology that provide services directo- ries can help track the many services that make up your application. Additional benefits may include services reused from other applications or more coarse-grained services. You can break up applications into hundreds of underlying services that have value when used by other applications. In this way, you’re not reinventing the wheel each time you build an application. Con- sider the example of a credit-check service that many applications use. Com- bine these into a single service and the application becomes much more efficient. 2) Decouple the data If you tightly couple the data to the application, it won’t find a good home in the cloud. Private and public clouds are complex distributed systems that work best with application architectures that break out processing and data into separate components. You decouple the data for the same reason you want to build the application out of services. Once decoupled, you have the option to store and process the data on any public or private cloud instance. For example, many enterprises insist that their data remain on local servers but want to take advantage of the commodity virtual machine instances within a public cloud. Each application has its own requirements based upon the needs of the business. You must consider performance. Database reads and writes across the open Internet can cause latency, and database communications may determine how close your data sits to the services and applications that need to leverage it. Consider using caching systems. These provide additional database perfor- mance by locally storing commonly accessed data, thereby reducing all data- base read requests back to the physical database. Those are best built into the application, however, and they should be tested with the application data to determine how efficient the cache will be. Systems that are constantly reading new data don’t benefit as much from database caches. 3) Consider communications between app components Decoupling applications, both data and services, doesn’t mean your application is properly architected for the cloud. Chatty application components that con- stantly communicate with each other will lower the performance of the overall application, given that they’re typically distributed over a network or the open Internet, where tolerance for high latency is desirable. 20 | THE DOPPLER | WINTER 2016