Deployment and Production Process
The deployment process involves transitioning code from development to production, highlighting differences in running applications locally versus in a production environment. Development is an ongoing phase, requiring promotion through approval stages before deployment. Handling bugs, tests, documentation, and collaboration between development and production baselines are key steps in the process. A structured release promotion strategy ensures readiness for production deployment.
Uploaded on Apr 13, 2025 | 0 Views
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Production vs Dev When you run on your own PC it is NOT the same as running in Production Production is the official location to run applications. It will not have all the extra dev tools, debug modes etc. Everything has to run untouched e.g. running npmstart runs the Node internal webserver which is not robust enough to handle multiple users; AND it runs in debug mode to help you fix your code. Debug mode is more resource intensive and slower than production The closest you have seen is the CI
Development is not the end of the process So far, you deployed half of your application (or less) to the gitlab server using the CI (well, I deployed it using a script you ran the script) This is similar to how might deploy a simple webapp to the cloud But then there is the Database and the API services In the cloud, you might deploy to 3 different resources (servers) Your deployments may be on shared resources (shared servers) Deployments can be complex, but cloud platforms try to make it simple Partly to encourage more and more deployments (and hence fees)
Deployment takes (more) work Before you deploy You must build (what you have locally is not appropriate for final delivery) Your dev environment is your own, but the final application must be installed on a server that is NOT your own There is a process called release promotion that is typically followed in industry This takes a development baseline and advances it through stages of approval until it is deemed to be ready for production
Dev to Production Code Dev baseline Integration baseline Production Verify all required bugs fixed All required tests pass on a per-app basis Document issues for review Promote approved code to integration baseline Clean build, integration tests pass with all applications working together Any bugs found are fixed in dev baseline, and re-promoted to integration for validation Final/ clean build Build package created and handed off to IT for deployment IT deploys, tests, confirms operation Final caveats documented. If approved, production is announced Write up YOUR company s (group) process for doing this! In all cases, Process and Plans are critical!
Servers host web applications Whether you are deploying a backend application or a web site, the web-server handles the communication from the client Common web servers are Apache Nginx IIS LiteSpeed 6.5% Apache 38.7% of the top one million sites Nginx 32.1% Cloudflare Server 14.1% Microsoft-IIS 8.1% All these servers are capable of hosting multiple sites/ apps/ services (and this is what Cloud infrastructure does) We will have you use Apache (and some other things ) Other applications (non-web) can also reside on the server But we will focus on web apps and DBs What Is the Most Popular Web Server Application in 2024? (digitalintheround.com)
How does it work? All the needed files are stored in a directory structure that is well known (configured) For example, for a website, all hmtl, js, css, image files etc. will be placed in common folder root For Windows, it is usually under c:\inetpub\wwwroot For Unix servers it is highly variable depends on the particular web server Of course, You can install Unix web servers like Apache on Windows as well. When a request is made to the web server, (let s stick with IIS on Windows), IIS will check configuration and permissions on the file requested, and IF everything is ok, the file will be returned to the requestor Usually the browser for a web application Any piece of code can make the request, and in fact for applications, and HTTP request would trigger the web server response
The sequence 1. Http request received from client 1. Usually port 80 or 443 2. IF the firewall allows the request 3. IIS gets the request 1. Checks to see if path is valid, file permissions are correct, filetype is supported etc. 2. If it is just a file request and 1. If all is good, then the file is wrapped in an HTTP packet and returned 3. If is not a file request, it is forwarded to a handler, which will figure out what data to return (e.g. RESTful API call)
In between you have to pass security (like the airport TSA checks!) The client has a firewall The server will have a firewall The server will usually have a proxy (reverse proxy) as well (more on that later) You DO NOT want to leave a device open to the internet Bots are CONSTANTLY scanning for open devices and they WILL hack you We have you run local servers (via Node), but you should never leave them running and DO NOT open your PC to internet incoming traffic
Server Infrastructure: Proxies Proxies are intermediaries that sit between client and server Forward proxies intercept client requests from the client side Corporate environment often use forward proxies to limit access to sites they consider inappropriate or insecure Reverse proxies intercept requests to the server This one mechanism to allow multiple sites/ applications to be managed by a single server platform Details next
(Forward) Proxy Corporate Proxy Block or allow outgoing communications Personal proxy non corporate
Reverse Proxy Reverse Proxy sits in front of server(s) directs traffic and load balances