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