Share to: share facebook share twitter share wa share telegram print page

Deployment environment

In software deployment, an environment or tier is a computer system or set of systems in which a computer program or software component is deployed and executed. In simple cases, such as developing and immediately executing a program on the same machine, there may be a single environment, but in industrial use, the development environment (where changes are originally made) and production environment (what end users use) are separated, often with several stages in between. This structured release management process allows phased deployment (rollout), testing, and rollback in case of problems.

Environments may vary significantly in size: the development environment is typically an individual developer's workstation, while the production environment may be a network of many geographically distributed machines in data centers, or virtual machines in cloud computing. Code, data, and configuration may be deployed in parallel, and need not connect to the corresponding tier—for example, pre-production code might connect to a production database.

Architectures

Deployment architectures vary significantly, but, broadly, the tiers are bookended by starting at development (DEV) and ending at production (PROD). A common 4-tier architecture is development, testing, model, production (DEV, TEST, MODL, PROD), with software being deployed to each in order. Other common environments include Quality Control (QC), for acceptance testing; sandbox or experimental (EXP), for experiments that are not intended to proceed to production; and Disaster Recovery, to provide an immediate fallback in case of problems with production. Another common architecture is development, testing, acceptance and production (DTAP).

This language is particularly suited for server programs, where servers run in a remote data center; for code that runs on an end user's device, such as applications (apps) or clients, one can refer to the user environment (USER) or local environment (LOCAL) instead.

Exact definitions and boundaries between environments vary – test may be considered part of dev, Acceptance may be considered part of test, part of stage, or be separate, etc. The main tiers are progressed through in order, with new releases being deployed (rolled out or pushed) to each in turn.[1][2] Experimental and recovery tiers, if present, are outside this flow – experimental releases are terminal, while recovery is typically an old or duplicate version of production, deployed after production. In case of problems, one can roll back to the old release, most simply by pushing the old release as if it were a new release. The last step, deploying to production ("pushing to prod") is the most sensitive, as any problems result in immediate user impact. For this reason this is often handled differently, at least being monitored more carefully, and in some cases having phased rollout or only requiring flipping a switch, allowing rapid rollback. It is best to avoid a name like Quality Assurance (QA); QA doesn’t mean software testing. Testing is important, but it is different from QA.

Sometimes deployment is done outside of this regular process, primarily to provide urgent or relatively minor changes, without requiring a full release. This may consist of a single patch, a large service pack, or a small hotfix.

Environments can be of very different sizes: development is typically an individual developer's workstation (though there may be thousands of developers), while production may be many geographically distributed machines; test and QC may be small or large, depending on the resources devoted to these, and staging can range from a single machine (similar to canary) to an exact duplicate of production.

Environments

The table below describes a finely-divided list of tiers[citation needed].

Environment / Tier Name Description
Local Developer's desktop/workstation
Development / Trunk Development server acting as a sandbox where unit testing may be performed by the developer
Integration CI build target, or for developer testing of side effects
Testing / Test / QC / Internal acceptance The environment where interface testing is performed. A quality control team ensures that the new code will not have any impact on the existing functionality and tests major functionalities of the system after deploying the new code in the test environment.
Staging / Stage / Model / Pre-production / External-client acceptance / Demo Mirror of production environment
Production / Live Serves end-users/clients

Development

The development environment (dev) is the environment in which changes to software are developed, most simply an individual developer's workstation. This differs from the ultimate target environment in various ways – the target may not be a desktop computer (it may be a smartphone, embedded system, headless machine in a data center, etc.), and even if otherwise similar, the developer's environment will include development tools like a compiler, integrated development environment, different or additional versions of libraries and support software, etc., which are not present in a user's environment.

In the context of revision control, particularly with multiple developers, finer distinctions are drawn: a developer has a working copy of source code on their machine, and changes are submitted to the repository, being committed either to the trunk or a branch, depending on development methodology. The environment on an individual workstation, in which changes are worked on and tried out, may be referred to as the local environment or a sandbox. Building the repository's copy of the source code in a clean environment is a separate step, part of integration (integrating disparate changes), and this environment may be called the integration environment or the development environment; in continuous integration this is done frequently, as often as for every revision. The source code level concept of "committing a change to the repository", followed by building the trunk or branch, corresponds to pushing to release from local (individual developer's environment) to integration (clean build); a bad release at this step means a change broke the build, and rolling back the release corresponds to either rolling back all changes from that point onward, or undoing just the breaking change, if possible.

Testing

The purpose of the test environment is to allow human testers to exercise new and changed code via either automated checks or non-automated techniques. After the developer accepts the new code and configurations through unit testing in the development environment, the items are moved to one or more test environments.[3] Upon test failure, the test environment can remove the faulty code from the test platforms, contact the responsible developer, and provide detailed test and result logs. If all tests pass, the test environment or a continuous integration framework controlling the tests can automatically promote the code to the next deployment environment.

Different types of testing suggest different types of test environments, some or all of which may be virtualized[4] to allow rapid, parallel testing to take place. For example, automated user interface tests[5] may occur across several virtual operating systems and displays (real or virtual). Performance tests may require a normalized physical baseline hardware configuration, so that performance test results can be compared over time. Availability or durability testing may depend on failure simulators in virtual hardware and virtual networks.

Tests may be serial (one after the other) or parallel (some or all at once) depending on the sophistication of the test environment. A significant goal for agile and other high-productivity software development practices is reducing the time from software design or specification to delivery in production.[6] Highly automated and parallelized test environments are important contributors to rapid software development.

Staging

A stage, staging or pre-production environment is an environment for testing that exactly resembles a production environment.[7] It seeks to mirror an actual production environment as closely as possible and may connect to other production services and data, such as databases. For example, servers will be run on remote machines, rather than locally (as on a developer's workstation during dev, or on a single test machine during the test), which tests the effects of networking on the system.

The primary use of a staging environment is to test all the installation/configuration/migration scripts and procedures before they're applied to a production environment. This ensures all major and minor upgrades to a production environment are completed reliably, without errors, and in a minimum of time.

Another important use of staging is performance testing, particularly load testing, as this is often sensitive to the environment.

Staging is also used by some organizations to preview new features to select customers or to validate integrations with live versions of external dependencies.

Production

The production environment is also known as live, particularly for servers, as it is the environment that users directly interact with.

Deploying to production is the most sensitive step; it may be done by deploying new code directly (overwriting old code, so only one copy is present at a time), or by deploying a configuration change. This can take various forms: deploying a parallel installation of a new version of code, and switching between them with a configuration change; deploying a new version of code with the old behavior and a feature flag, and switching to the new behavior with a configuration change that performs a flag flip; or by deploying separate servers (one running the old code, one the new) and redirecting traffic from old to new with a configuration change at the traffic routing level. These in turn may be done all at once or gradually, in phases.

Deploying a new release generally requires a restart, unless hot swapping is possible, and thus requires either an interruption in service (usual for user software, where applications are restarted), or redundancy – either restarting instances slowly behind a load balancer, or starting up new servers ahead of time and then simply redirecting traffic to the new servers.

When deploying a new release to production, rather than immediately deploying to all instances or users, it may be deployed to a single instance or fraction of users first, and then either deployed to all or gradually deployed in phases, in order to catch any last-minute problems. This is similar to staging, except actually done in production, and is referred to as a canary release, by analogy with coal mining. This adds complexity due to multiple releases being run simultaneously, and is thus usually over quickly, to avoid compatibility problems.

Frameworks integration

Development, Staging and Production are known and documented environment variables in ASP.NET Core. Depending on the defined variable, different code is executed and content rendered, and different security and debug settings are applied.[8]

See also

References

  1. ^ "Traditional Development/Integration/Staging/Production Practice for Software Development". Disruptive Library Technology Jester. December 4, 2006.
  2. ^ "Development Sandboxes: An Agile 'Best Practice'". www.agiledata.org.
  3. ^ Ellison, Richard (2016-06-20). "Software Testing Environments Best Practices". Software Testing Magazine. Martinig & Associates. Retrieved 2016-12-02. Once the developer performs the unit test cases, the code will be moved into QA to start testing. Often you will have a few environments for testing. For example you will have one set up for system testing and another that is used for performance testing and yet another that is used for user acceptance testing (UAT). This is caused by the unique needs for each type of testing.
  4. ^ Dubie, Denise (2008-01-17). "How to keep virtual test environments in check". Network World, Inc. IDG. Retrieved 2016-12-02. Virtual server technology makes it easy for enterprise companies to set up and tear down test environments in which they can ensure applications will run up to par on production servers and client machines.
  5. ^ "Use UI Automation To Test Your Code". Microsoft.com. Microsoft. Retrieved 2016-12-02. Automated tests that drive your application through its user interface (UI) are known as coded UI tests (CUITs). These tests include functional testing of the UI controls. They let you verify that the whole application, including its user interface, is functioning correctly. Coded UI Tests are particularly useful where there is validation or other logic in the user interface, for example in a web page.
  6. ^ Heusser, Matthew (2015-07-07). "Are you over-testing your software?". CIO.com. IDG. Archived from the original on 2017-06-03. Retrieved 2016-12-03. Release candidate testing takes too long. For many agile teams, this is the single biggest challenge. Legacy applications start with a test window longer than the sprint.
  7. ^ Sharma, Anurag (2018). Test Environment Management. ITSM Press. p. 11. ISBN 9781912651269.
  8. ^ "Use multiple environments in ASP.NET Core". docs.microsoft.com. Retrieved 2019-04-05.

Read other articles:

画像提供依頼: 劇場内観(客席側からステージ見下ろし) 劇場内観(ステージ側から客席見上げ)等 の画像提供をお願いします。(2018年12月) 青山円形劇場Aoyama Round Theatre 青山円形劇場が存在したこどもの城情報開館 1985年閉館 2015年1月11日最終公演 高円宮妃久子作『夢の国のちびっこバク』客席数 376席運営 公益財団法人児童育成協会所在地 〒150-0001東京都渋谷区神宮…

Artikel ini bukan mengenai Rumapea. Keduanya merupakan marga yang berbeda tanpa hubungan kekerabatan. Untuk marga Hutapea keturunan Hutatoruan, lihat Hutapea (Si Opat Pisoran).HutapeaTugu Ompu Raja Hutapea di Laguboti.Aksara Batakᯂᯮᯖᯇᯩᯀ (Surat Batak Toba)Nama margaHutapeaSilsilahJarakgenerasi denganSiraja Batak1Si Raja Batak2Raja Isumbaon3Tuan Sorimangaraja4Tuan Sorbadibanua (Nai Suanon)5Sipaettua6Puraja Laguboti (Pardungdang)7HutapeaNama lengkaptokohOmpu Raja HutapeaNama istriboru S…

10 LugarUbicación Cuenca de Pamplona, Comunidad Foral de NavarraÁrea abastecida Pamplona OrcoyenDescripciónTipo Autobús urbanoSistema Transporte Urbano Comarcal de PamplonaInauguración 1953Ampliación 4 de septiembre de 2017Depósitos EzcabaCaracterísticas técnicasLongitud 18,4 kmParadas 21 / 20Características Elevación 443 mVelocidad máxima 50 km/hExplotaciónEstado En servicioN.º de autobuses 2-3Empleados 2-3Pasajeros 733 556 (2019)Frecuencia 30'-35'Velocidad media 15,7 km/hOperador…

1926 American silent romantic film Bardelys the MagnificentTheatrical release posterDirected byKing VidorWritten byDorothy FarnumMarian Ainslee (titles)Based onBardelys the Magnificentby Rafael SabatiniStarring John Gilbert Eleanor Boardman CinematographyWilliam H. DanielsMusic byWilliam AxtDistributed byMetro-Goldwyn-MayerRelease date September 30, 1926 (1926-09-30) Running time90 minutesCountryUnited StatesLanguageSilent (English intertitles) Bardelys the Magnificent is a 1926 A…

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: 熊本県道30号大津植木線 – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2018年10月) 主要地方道 熊本県道30号 大津植木

Der Titel dieses Artikels ist mehrdeutig. Weitere Bedeutungen sind unter Jardin (Begriffsklärung) aufgeführt. Jardin Jardin (Frankreich) Staat Frankreich Region Auvergne-Rhône-Alpes Département (Nr.) Isère (38) Arrondissement Vienne Kanton Vienne-2 Gemeindeverband Vienne Condrieu Koordinaten 45° 30′ N, 4° 55′ O45.4972222222224.9088888888889Koordinaten: 45° 30′ N, 4° 55′ O Höhe 194–407 m Fläche 9,25 km² Einwohner 2.171 (1. Ja…

Sobreposta ao ombro, a platina com a insígnia de Aspirante a Oficial, e na extremidade da gola, o distintivo de Bombeiro Militar. No Brasil, a hierarquia é a base da organização da Polícia Militar (PM) e dos Corpos de Bombeiros Militares (CBM), compondo a cadeia de comando a ser seguida por seus integrantes. Na estrutura hierárquica dessas corporações, os diversos níveis são representados por insígnias, usadas sobrepostas aos uniformes. Sobre Na PM e nos CBM dos Estados, assim como na…

Bistum Mende Karte Bistum Mende Basisdaten Staat Frankreich Kirchenprovinz Montpellier Metropolitanbistum Erzbistum Montpellier Diözesanbischof Benoît Bertrand Fläche 5180 km² Pfarreien 135 (2019 / AP 2020) Einwohner 76.300 (2019 / AP 2020) Katholiken 55.000 (2019 / AP 2020) Anteil 72,1 % Diözesanpriester 59 (2019 / AP 2020) Ordenspriester 1 (2019 / AP 2020) Katholiken je Priester 917 Ständige Diakone 4 (2019 / AP 2020) Ordensbrüder 4 (2019 / AP 2020) Ordensschwestern 83 (2019 / AP 2…

Mountain range on the South Island in New Zealand For other uses, see Southern Alps (disambiguation). Southern Alps / Kā Tiritiri o te MoanaSnow highlights the mountain range in this satellite imageHighest pointPeakAoraki / Mount CookElevation3,724 m (12,218 ft)Coordinates43°35′44.69″S 170°8′27.75″E / 43.5957472°S 170.1410417°E / -43.5957472; 170.1410417DimensionsLength500 km (310 mi)GeographyLocationSouth Island, New ZealandRange coo…

Administrative region of the Philippines Region in Luzon, PhilippinesSouthwestern Tagalog Region MimaropaRegion Clockwise from the top: El Nido, Palawan, Mount Guiting-Guiting, Tamaraw Falls, Boac Cathedral, Coron IslandLocation in the PhilippinesOpenStreetMapCoordinates: 10°40′N 119°30′E / 10.67°N 119.5°E / 10.67; 119.5Country PhilippinesIsland groupLuzonRegional centerCalapan (Oriental Mindoro)Largest cityPuerto PrincesaArea • Total29,620.90…

2010 studio album by Buju BantonBefore the DawnStudio album by Buju BantonReleasedSeptember 28, 2010GenreReggaeLabelGargamelBuju Banton chronology Rasta Got Soul(2009) Before the Dawn(2010) Upside Down 2020(2020) Professional ratingsReview scoresSourceRatingAllMusic[1] Before the Dawn is reggae and dancehall artist Buju Banton's tenth studio album. It was released on September 28, 2010. This album was recorded at the artist's own Gargamel Music studio in Kingston, Jamaica. The al…

Destroyer of the French Navy For other ships with the same name, see French ship Bouclier. Bouclier underway History France NameBouclier NamesakeShield BuilderChantiers et Ateliers Augustin Normand, Le Havre Laid down1909 Launched29 June 1911 Completed1911 Stricken15 February 1933 General characteristics Class and typeBouclier-class destroyer Displacement692 t (681 long tons) Length72.32 m (237 ft 3 in) (o/a) Beam7.6–8 m (24 ft 11 in – 26 ft 3…

This article lists various team and individual football records in relation to the Belgium national team (The Red Devils).[A] The page currently shows the records as of 20 June 2023. Team records See also: Belgium national football team results [5] Wins Largest win 10–1 vs  San Marino on 28 February 2001 9–0 vs Zambia on 4 June 1994 9–0 vs  Gibraltar on 31 August 2017 9–0 vs  San Marino on 10 October 2019 Largest away win 6–0 vs  Luxembourg on 14 Oct…

Sinema GeorgiaBioskop Rustaveli, TbilisiJumlah layar24 (2011)[1] • Per kapita0.6 per 100,000 (2011)[1]Distributor utamaFox (London) 25.0%Buesta Vista Song Pictures 19.0%Warner Bros 13.0%[2]Film fitur yang diproduksi (2011)[3]Fiksi12 (85.7%)Animasi-Dokumenter2 (14.3%)Jumlah admisi (2010)[4]Total144,039Film nasional66,200 (46.0%)Keuntungan Box Office (2010)[4]TotalGEL 1.25 jutaFilm nasionalGEL 626,000 (50.1%) Bagian da…

Roger Capatinta Mamani Consejero regional del Cuscopor Canas 1 de enero de 2015-31 de diciembre de 2018Gobernador Edwin Licona LiconaPredecesor Valerio Pacuala HuillcaSucesor Tomás Mamani Quispe Alcalde distrital de Layo 1 de enero de 2003-31 de diciembre de 2006Predecesor Eriberto Machaca HuayllaniSucesor Daniel Quispe Alanocca Información personalNombre completo Roger Aníbal Capatinta MamaniNacimiento 30 de octubre de 1972 (51 años)Layo, Perú PerúNacionalidad PeruanaFamiliaPadres Ig…

American diplomat Uzra ZeyaUnder Secretary of State for Civilian Security, Democracy, and Human RightsIncumbentAssumed office July 14, 2021PresidentJoe BidenPreceded byLisa J. Peterson Personal detailsBornChapel Hill, North Carolina, U.S.EducationGeorgetown University (BA) Uzra Zeya is an American diplomat who has served as the Under Secretary of State for Civilian Security, Democracy, and Human Rights in the Biden Administration since July 2021.[1] Early life and education Zeya was …

Japanese television series Netflix title format Atelier (アンダーウェア, Andāwea, meaning Underwear) is a 2015 Japanese streaming television drama developed by Fuji Television for Netflix.[1][2][3] It is a coming of age drama set in a small high-class lingerie design house called Emotion, which is based in Tokyo's Ginza district. The drama centres around Mayuko Tokita, a new employee, and her struggle to find her place at Emotion.[4][5] Central to …

1991 video gameBahamut SenkiDeveloper(s)SegaPublisher(s)SegaPlatform(s)Sega Mega DriveVirtual ConsoleReleaseMega DriveJP: March 8, 1991Virtual ConsoleJP: April 24, 2007[1]Genre(s)Tactical role-playingMode(s)Single-player, multiplayer Bahamut Senki (バハムート戦記, lit. War Chronicles of Bahamut) is a tactical role-playing game developed by Sega for the Sega Mega Drive in 1991. It was only released in Japan. The game offers a unique soundtrack for each of the many playable races in…

Italian composer (born 1955) This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This biography of a living person relies too much on references to primary sources. Please help by adding secondary or tertiary sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately, especially if potentially libelous or harmful.Find sources: Gigi Mas…

Roman governor of Judaea and condemner of Jesus Pilate redirects here. For other uses, see Pilate (disambiguation). Pontius PilatePontius PilatusEcce Homo (Behold the Man), Antonio Ciseri's depiction of Pilate presenting a scourged Jesus to the people of Jerusalem5th Prefect of JudaeaIn officec. 26 AD – 36 ADAppointed byTiberiusPreceded byValerius GratusSucceeded byMarcellus Personal detailsNationalityRomanSpouseUnknown[a]Known forPilate's court Pontius Pilate[b&…

Kembali kehalaman sebelumnya

Lokasi Pengunjung: 3.15.141.250