Skyscrapers aren ' t scalable

Source: Internet
Author: User

?

Skyscrapers aren ' t scalable

Michael Nygard

WE oFTEn hear software EnginEERing CoMpAREd to building sky-scrapers, dams, or roads. It ' s true in some important aspects.
The hardest part of civil engineering isn't designing a building that'll stand up once it's finished, but figuring out The construction process. The construc-tion process has-to-go from a bare site to a finished building. In the interim, every worker must is able to apply his trade, and the unfinished structure have to stand up the whole time. We can take a lesson from the when it comes to deploying large integrated systems. ("Integrated" includes virtually every enterprise and web application!) Traditional "Big bang" deployments is like stacking-a pile of beams and girders, throwing them into the air, and ExPEC T-ing them to stick together in the shape of a building.
Instead, we should plan to deploy one component at a time. Whether this was a replacement or a greenfield project, this has both large benefits.
First, when we deploy software, we is exposing ourselves to the accumulated technical risk embodied in the code. By deploying one component at a time, we spread technical risk off over a longer period of time. Every component have its own chance to fail in production, letting us harden each one independently.
The second large benefit is so it forces us to create well-defined interfaces between components. Deploying a single component of a new system often means reverse-integrating it with the old system. Therefore, by the time deployment are complete, each component have worked with a different systems:the original and the Replacement. Nothing was reusable until it had been reused, so piecewise deployment automatically means greater. In practice, it also leads to better coherence and looser coupling.
?
?? Conversely, there is some important ways the civil engineering analogies mislead us. In particular, the concreteness of the real world pushes us toward a waterfall process. After all, nobody starts building a skyscraper without knowing where it's going or how tall it should be. Adding floors to an existing building are costly, disruptive, and risky, so we try to avoid it. Once designed, the skyscraper isn ' t supposed to the change it location or height. Skyscrapers aren ' t scalable.
We cannot easily add lanes to roads, but we've learned how to easily add fea-tures to software. This isn ' t a defect of our software processes, but a virtue of the medium in which we work. It's OK to release an application that is only does a few things, as long as the users value those things enough to pay for them. In fact, the earlier you release your application, the greater the net present value of the whole thing would be.
"Early release" may appear-compete with "incremental deployment," but they can actually work together quite well. Early release of individual compo-nents means, each one can iterate independently. In fact, it'll force your to work out thorny issues like continuous availability during deployments and protocol Versioni Ng.
It's rare to find a technique so simultaneously provides higher commercial value and better architectural qualities, but Early deployment of individual components offers both.

Skyscrapers aren ' t scalable

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.