Friday, February 7, 2014

At the same time, marketers and characterization understand what


Tweet
FOSS is a central and important in software development. Cultural cooperation, nephoscale which began contributing to the source code, developed and expanded nephoscale horizons over the years and now also offers original ideas, experience, and knowledge. Organizations like Linkedin, Netflix, Yahoo, and others, tend to share the various developer communities work processes nephoscale and their thinking, nephoscale the problems which are Nitklim technologies, and ways of dealing with them.
One issue headlines in recent years and carries a complex level of problems is considerable Micro-Services. This is a world of new methodologies that challenge many existing standards and essentially advocate the dismantling of large monolithic applications with complete solutions comprise a number of small applications that provide partial solutions, targeted and Cshmrcibim them together they form complete systems.
This post is about the new ideas, which brings the world of Micro-Services, the advantages it offers, and the inevitable shortcomings. This methodology, that is - method of operation includes a set of rules and assumptions nephoscale (not an exact science), so you will find some of the things it contains are told from a personal perspective. Ultimately the purpose is to describe the general nature of the complex systems of many small services than those built a large monolithic unit, reasons that the right to dismantle systems into separate parts, and some examples from my personal experience in the field. Monolith
A considerable part of the time we invest in software development is assigned topic modeling. Whether it is a small scale (code addresses a specific issue) or Big (libraries, services, complete systems, etc.) Clearly wrong model can, at best, ruin our day. Reality is true despite the investment modeling of code, while running we tend to ignore the original mindset and produce systems that are modular.
It turns out that in many cases such lists describing the modular structure make at runtime package of code that contains the entire functionality. In other words - despite our natural inclination was to separate the responsibilities to different parts of the code, it is likely that during the run made the choice that makes the system nephoscale modular monolithic.
Great Benefits Such solutions offer are - Ease and simplicity: a reasonable development environment nephoscale will support the connection environment running and allow continuous update of the code without the need for running nephoscale the building and deployment processes, and thus shorten and simplify the development cycle. Automating the lifecycle of the system is a relatively simple task so easy for engineers nephoscale to run tests in parallel development, ditto for the Production nephoscale environment. When the need arises to improving the system's front handle growing amount of information and users (Scale) add more copies of the system and place them all behind Load Balancer (hardware or software).
Of course the process I have described the abstract, it is primarily a right and a lot of times is a good reason monolithic application has to decide is the appropriate solution. An example of such an implementation can be established by application Sart - Up to "sell" his idea. Early stages, still not clear what the true nature of the application and the time given for the development of very short monolithic system is a good solution and easy. However, this simplicity has a price.
A large number of lines of code makes it difficult to understand the system, and who do not understand what's happening is more difficult to correct errors and develop new content. They pop up occasionally Code Duplicates Their reason is the limited familiarity with the code or fear of change common code and cause problems elsewhere unknown. Development nephoscale environment has become nephoscale a respected and cumbersome and automatic update of the server becomes oppressive and finally reaches nephoscale the stage of the development team picks up arms and decides nephoscale to go back to torment familiar - writing code >> Construction of the system >> deployment on the server (which nephoscale also has become a problem that requires attention and preoccupation frequent affairs memory, GC, connection pools, nephoscale etc) >> and remote login debug mode. Not fun at all. This is before we talked about the large amount of developers needed to maintain the monster - all write to the same place, treading on each other's toes, "Breaking" nephoscale to the build, making tasks of an hour and a half days on end of dealing with nonsense. nephoscale
At the same time, marketers and characterization understand what's going development nephoscale division lose confidence and find it difficult to sell small additions and improvements that are already. The process has become more complicated and tedious and day you manage to end - the end overcome all the problems and come characterization of the process sane and controlled, you find out a new version and a lot more effective than almost any library or infrastructure uses and there was no way in the world you are in alignment ... you married a package of old technology.
The question for some individual services acceptable to some monolithic systems (or several separate toilet has to contain a new system)? Of course there is no definite answer as with anything in life - you have to drive taste. nephoscale The guideline suggests nephoscale that a minority of services increases the likelihood to have problems of monolithic systems, while the multiplicity of services can lead to problems in the deployment of the system, excessive flow of network data (resulting from communications between services), and of course too complicated systems.
One of the innovations, which brings the world of micro - Services is a new type of model. As each service separately maintains its own model, also the whole system nephoscale is built by a special model. The main difference between the two types is that the former, handles internal needs of each service, nephoscale is much more flexible (structure, technology), while the latter, who takes care of the needs of the whole system nephoscale more rigid and requires more thinking ahead. Here is example how to deal with challenges during the modeling of the entire system:
Multiple parts, methods of monitoring nephoscale and treatment failures. transaction management (one possibility is the separation of data bases, such as the last chart). Features decentralized over some services nephoscale (cross service features), the realization and deployment. Methods of communication between different services (sync / async http / amqp, x

No comments:

Post a Comment