Application Of Distributed Application Challenges

1547 WordsDec 3, 20157 Pages
Distributed Application Challenges In the past applications were monolithic, and built on a single stack such as .Net or Java and ran on a single server. There is no way to get around building distributed software in today’s market. Just think about the software out there today. The market consist of many different variations of architecture tier an application may have such as an UI tier, caching tier, application tier, and persistence tier such as SQL or table logging. Multiple components may spread across machines today. Software will have associated dependencies and these component dependencies can be in conflict. One component might be dependent on a certain DLL and another component for another one. Those two different versions…show more content…
If you have these two component on the same machine, you are not clear on what kind of machine you will need because they will have very different scale characteristics. It will be wasteful to have the same execution environments even though they have different scale characteristics. Developers also deal with test and production to move throughout the development life cycle. Since developers are increasingly building distributed operating systems, the way to deal with complexity is using the concepts of containers. Containers are a native OS construct that provide light weight isolation. In Linux there is a concept that is comprised of different sub-concepts. There are namespaces that provide isolations for user database, processes and IP addresses. Think of a container as hosted on top of an Linux OS and it gets its own database, processes and IP addresses. It also gets cgroups which governs resources. They make sure that not one container is using all the resources but it shared all the way across. Each container gets a read write view such a Union File system. These three make up the idea of a container. If you build an application in the cloud, chances are it is a distributed application. Distributed applications have a number of characteristics that need to be considered carefully. Containers assist developers in making software portable. The software looks the same everywhere you deploy and run it. Also developers will not need to
Open Document