The New Era of Full Stack Development Intoduction of Cloud and It’s Impacts

—This is a concise study of the evolution of the full stack development due to advancement of technology and the introduction of cloud. It helps give you a better understanding of what full stack development was and how full stack development evolved, it shows a take on the fact that full stack development is not dead and has just evolved to better accommodate the user's needs. (VLAN), Uniform Resource Locator Client Uniform Resource Locator (cURL),


INTRODUCTION
Full stack development is a part of web development which broadly refers to the tasks associated with developing websites for hosting via intranet or internet. It is the development of a complete application both the front end, which we refer to as the client-side, and back-end the server-side. Due to the introduction of cloud computing there have been drastic changes in the field of Full Stack Development and how it has affected the development. Cloud Computing consists of various services and has many advantages.

II. WEB DEVELOPMENT
Web Development is the process of building websites for the internet or for a private network which is also known as the Intranet. The web development process includes web design, web content development, client-side/server-side scripting and network security configuration, among other tasks. It could involve the development of static webpages to various applications for a website.

A. Front-end Development
Front-end development is how design gets implemented on the web. The pages of a website are a sum of layers-structure, data, design, content, and functionality. In other words, Frontend is the part of the website where users can see and interact with the graphical user interface (GUI) and the command line which includes the design, navigation menus, texts, images, videos, etc.
Some of the Front-end Languages include HTML, CSS, JavaScript, etc. and some of the Front-end Frameworks and Libraries include AngularJS, React.js, jQuery, SASS, etc. [1] B

. Back-end Development
Back-end Development refers to server-side development. It is the term used for the behind-the-scenes activities that occur when performing any action on a website. In other words, it is the portion of software that does not come in direct contact with the users. Users indirectly access the parts developed by Back-end designers through a Front-end application. Activities, like writing APIs, creating libraries and working with system components without user interfaces are some examples of Back-end development.
Some of the Back-end Languages include PHP, Java, C++, Python, JavaScript, Node.js, etc., And some of the Back-end Frameworks include Express, Django, Rails, Laravel, Spring, etc. Some more commonly Back-end program/scripting languages are C\#, Ruby, REST, GO etc. [2] III. NETWORKING MODELS Networking models are communication models and it is necessary to understand the construction and architecture of these models. They establish a connection between the sender and the receiver that helps in transmission of data. When the protocols and the functions are competent communication occurs. In networking models, we refer to the individual pieces of the assembly as layers and the collection as a stack.

A. Protocol Model
This model closely matches the structure of a particular protocol suite. A protocol suite includes the set of related protocols that typically provide all the functionality required for people to communicate with the data network. The TCP/IP model is a protocol model because it describes the functions that occur at each layer of protocols within the TCP/IP suite.

B. Reference Model
This type of model describes the functions that must be completed at a particular layer but does not specify precisely how a function should be accomplished. A reference model is not intended to provide a sufficient level of detail to define precisely how each protocol should work at each layer. The primary purpose of a reference model is to aid in a clearer understanding of the functions and processes necessary for network communications.

C. TCP/IP Model
The first layered model for communications within a network was created in the early 1970s and is referred to as the Internet model. The TCP/IP model describes a set of general design guidelines and implementations of specific networking protocols to enable computers to communicate over a network. TCP/IP provides end-to-end connectivity specifying how data should be formatted, addressed, transmitted, routed and received at the destination. [3] 1) Layers of TCP/IP model i.
Application Layer: Represents data to the user, plus encoding and dialogue control.
ii. Transport Layer: Supports communication between across diverse networks. iii.
Internet: Determines the best path through the network.
iv. Network Access: Controls the hardware devices and media that make up the network.

D. OSI Network Model
The OSI model is a conceptual model which has been developed by ISO, in the year 1984.It aids in understanding what is occurring within a networking system; in this system, data is transferred to and fro within adjacent layers. The OSI Model consists of 7 Layers, and they are typically described from the top layer down. OSI stands for Open Systems Interconnection. The OSI Model consists of 7 Layers, and they are typically described from the top layer down. It aids in understanding what is occurring within a networking system; in this system, data is transferred to and fro within adjacent layers. [4]  7 -Application Layer: This This layer provides the networking protocols to the end-user like HTTP and HTTPS.
 6 -Presentation Layer: Converts data from one form to another and evaluates the syntax.
 4 -Transport Layer: Transmission of data to different network connections speed, amount, etc. Implemented using TCP and UDP.
 3 -Network Layer: Routes the data, sends it to the correct destination by checking each piece of data, also maps the destination address to the physical address achieved by the ARP.
 2 -Data Link Layer: It is Complex and Checks for faults in transmission from the physical layer and then converts the data into data frames, which is of 4 parts. Physical addressing occurs constitutes of MAC and LLC.
 1 -Physical Layer: This layer usually consists of network cables, ports, repeaters, transmitters, etc. Here digital data bits are either received or transferred by the respective physical layer devices. It can be of the form mechanical, electrical or radio.

E. Differences between TCP/IP and OSI Network Model
OSI follows a vertical approach, whereas TCP/IP follows a horizontal approach. In the OSI model, the transport layer, is only connection-oriented, whereas in the TCP/IP model it is both connection-oriented and connectionless.

IV. WEB STACK
A web stack, also called a web application stack, is a compilation of a software setup especially for implementing websites and web applications. The collection of layers is known as a stack. The term, 'stack', refers to the fact that the system's components are built upon one another. The basic requirements necessary to construct a web stack include an operating system, a web server, a database, and a script interpreter. Together with the proper server hardware, this bundle of components ensures that necessary information about similar web projects is forwarded to requesting clients which is generally the internet browser. [5] A

. A few types of Web Stacks
A LAMP Stack is one of the examples of a web stack, it is a set of open-source software that can be used to create websites and web applications. The LAMP stack was the first followed by various other stacks. Due to the steadily increasing progress of this technology and the development of new freeware, different variations of LAMP stacks have arisen. Some famous examples include: 1. WAMP (Windows as an operating system) 2. MAMP (Mac OS X as an operating system) 3. XAMPP (any operating system, Perl and PHP as script interpreters; platform-independent FTP server) XAMPP is the most commonly used web stack. Linux supported a MySQL database and has now shifted to MariaDB, which does not support SQL Injection attacks via DVWA.
V. THE NEW ERA OF WEB 2.0

A. Before the new era
Initially companies usually preferred a full-stack developer and not specialist. A full-stack developer is the one who is both fluent in Front-end and Back-end development. A specialization would mean the person is either impeccable in developing the Front-end or the Back-end. Companies usually went for full-stack development, but the time taken by the specialists would be lesser than that of a team consisting of only full-stack developers. To back this statement up let us consider the productivity to be 1 unit for one instance of time for a Full Stack Developer now consider the total productivity required is four units, then it would require four instances of time. Whereas for a specialist, let us consider two units of productivity per instance then to reach four units, it would take a less amount of time and hence is more efficient. In case any discrepancies occur while the connection of the Back-end to the front you could add another instance which would still be faster. Therefore, the efficiency, η, and approximate the time taken to finish the project, Tp are defined by the following models

B. After the new era
Due to the introduction of AJAX support, a new era began the WEB 2.0 consisting of XMLHttpRequest which refers to data transfer between a web server and a browser. [7] It involved much tedious work, and no single developer could know everything there is to be known, the introduction of new technology involved drastic changes in terms of designing and the concepts involved in web development. As several changes were being introduced in both the fields of Front-end and Back-end, as a result, it became difficult 6 for individuals to expertise oneself in all these fields. Thus full-stack developers are no longer present as it is very laborious, hence companies usually hire a team of specialists. Here each team member must be efficient in more than two layers of web development. The one having multiple skills are usually assigned to lead. [8] VI. CLOUD COMPUTING In former times there was only one option to store, manage and process the data that was via maintaining local servers or personal computers. However, due to modern advancement in computing techniques, we are now able to manipulate data over the internet. This tradition of storing, processing and managing data over the internet is called cloud computing. [9] Some of the famous companies that provide cloud computing services include

A. Advantages of Cloud Computing
Cloud computing solves significant problems in business. Obtaining many perks through cloud computing is becoming the new normal. [10] 1. You pay what you use: While using cloud computing services, you only pay for the services you use, which makes it more cost-efficient 2. Flexibility: As your business progresses the scale of the data to be handled increase or decreases cloud services provide to change your cloud capacity at anytime. 3. Backups/data recovery: For small scale businesses it is difficult to set up a data recovery systems but cloud computing provides data recovery option which avoids a substantial investment. 4. Mobile Connect: One of the essential features of cloud computing is you can work from anywhere. 5. Security: When it comes to data, security always comes under consideration as every user wants their data to be secure. The cloud service providers provide the security of data, and the data in the cloud is more secure compared to storing the data in hard drives because loss of sensitive data for small scale business having insufficient funds to secure data from hackers and breaches would be disastrous. 6. Website management: Cloud computing features include data management and analytics. It gives you the ability to manage DNS servers, web services etc. [11] B. Cloud Service Models 1. Software as a service (SaaS): In SaaS, cloud providers manage the infrastructures and platforms that run the cloud. There is no necessity to install the software in the user's system as the cloud provides everything. As the software is not running on the user's system there is no need to invest in hardware reducing the cost. 2. Platform as a service (PaaS): Here the user has control over applications and configuration settings for the application environment including network, servers, OS and storage. 3. Infrastructure as a service (IaaS): IaaS refers to an online service which provides high-level API. It also offers containerization which gives higher performance than virtualization as there is no hyper visor involved in it. The capacity of containers autoscales dynamically making you pay only for what you use. It also provides additional resources like firewalls, object storage, IP addresses, VLANs etc.

C. The advancement of Web development due to cloud
The development of technology allowed us to meet the user's needs better, and thus we turned to the cloud.
 Due to an increase in the number of concurrent users, load balancers were developed, they distribute application traffic amongst servers to prevent crashing. [12]  Physical servers were switched to cloud-based servers which provided much more flexibility, onthe-go payment approach, zero maintenance etc. Before we talk about cloud-based servers, one must understand cloud computing which is the availability of computer resources, both hardware and software on demand.  The application developed was now to be reached to a global scale for better profits, and this was made possible via data centers in several regions. However, now with the cloud, this is far easier as you do not have to set up your centers.  Schema's and Joins were not that adequate. Hence, key-value stores were used which are virtually databases consisting of an array of keys, each representing one value these are similar to dictionaries found in Python programming language.  In order to improve quality regression, test suites were developed which check if the application is still functioning after new changes have been applied to it. Regression test suites have become a necessity. [13] D. Some Cloud Services that led to optimization

REST APIs
APIs: It provides rules as to how programs should interact. REST: It is generally considered as a type of software architecture consisting of a set of rules to be followed when developing an API.
The primary purpose is to get a response from a specific destination when a request is made. When a URL is entered, we request for that page to appear. If the request is apt, we get the GUI as the response. A Request is a complex process which occurs within short amounts of time, and are also calculated in the form of Performance Problems. It consists of four parts.
a. Endpoint -It is the route through which you get a response. Starting with the root endpoint, which is the beginning of the URL, which points to the index and the path of the URL determines the response required. In the URL path, if there is a colon present, it refers to a variable that is to be changed accordingly. The final part of an endpoint is Query parameters which usually begin with a question mark and are written using SQL. Each parameter is separate by because spaces are invalid in an URL. Using Query Parameters SQL Injections are also performed. Although Query Parameters are technically not related to APIs, it is worth mentioning. In order to test endpoints command-line utilities are used there are several of them available, but the most common when coming to APIs is cURL.
Using endpoints repositories can be accessed easily. Repositories consist of packages. JSON is a scripting language which is used to send and request data using a REST API. b. Method -The method defines a type and gives meaning to the request there are five different types of methods the most common being POST. They perform operations like create, read, update and delete. i. Get -It returns the requested information as in 'read', it is also the default method. ii.
Post -It creates a new entry as in 'create'. iii.
Put -It updates an existing entry as in 'update'. iv.
Delete -It deletes an existing entry as in 'delete'. c. Headers -These are separated by a colon and tell where to find the JSON file. They are usually used in commands for the command line. d. Data -It consists of information to be retrieved from the server. [14] As the user's demand and interests peaked the UI began to develop, the interaction was improved to make it more user friendly, in order to achieve this specialized people in the respective fields were hired. Later mobile application versions were introduced for further convenience of the users.
Several developments were made to the programming languages itself.
a. HTML -Semantic web was added, which allowed the internet data to be machinereadable. [15] Service Workers were added, which helped in developing web applications offline. [16] b. CSS -It was updated to add transitions, animations and other features to improve interactivity. c. JavaScript -Various features like modularization, object-oriented classes, asynchronous functions and interoperability were added. d. HTTP -Better caching, security measures and tenacious sessions.

DevOps
DevOps is a process that is an amalgamation of 2 main processes which are software development (Dev) and technology operations (Ops). The main aim of the DevOps cycle is to shorten the software development life cycle while providing continuous delivery where the teams work in short intervals which ensures the software is being developed reliably in a way the delivery happens in a very smooth process. Another advantage of the DevOps cycle is the fact that it also maintains high software quality throughout the development cycle, which is evaluated on two parameters. The first parameter is the software's functional quality which checks if the functional requirements which were defined initially have

IJERTV9IS040016
(This work is licensed under a Creative Commons Attribution 4.0 International License.) www.ijert.org been followed or not. The next parameter is the software's structural quality which verifies if the non-functional requirements, which support the functional requirements, have been met or not. The DevOps operation has the following functionality modes or the more accurate term being "toolchains". The toolchains have been listed below. a. Coding -it involves code development and review of the code. b. Building -it involves continuous integration with tools provided by the project. c. Testing -it involves continuous testing of the project. d. Packaging -it involves application and predeployment procedures. e. Releasing -it involves application release automation. f. Configuring -it involves infrastructure as code tools. g. Monitoring -it involves discerning the changes at the application for the end users The most important parts of the DevOps toolchains are "continuous integration" and "infrastructure as a code" which occurs in the building and the configuration part of the code respectively. [17] 3. NoSQL NoSQL, also known as Not only SQL, is a cloud service that provides scalable storage, and data is stored in the form of non-relational databases. This service has replaced the primitive system of RDBMS wherein SQL queries were required to access the data, and this data was stored in a structured tabular form consisting of rows and columns. NoSQL varies in multiple aspects when compared to the traditional database management system in terms of performance, consistency, speed, ease of use, availability, flexibility, cost, etc. [18] Some of the Famous NoSQL databases include MongoDB, Amazon DynamoDB, Redis, CouchDB, etc.

Cloud Orchestration
Cloud orchestration is a service that is responsible for managing the interconnections among workloads on the cloud infrastructure. It combines automated tasks into a cohesive workflow to accomplish a goal, with permissions omission and policy enforcement. Cloud orchestration procures, deploys, and starts servers, it acquires and assigns storage capacity manages networking and can also be used to create virtual machines. [19] 5. CI/CD Cloud Integration is a collection of tools and technologies that connects different system and environments. It deals with exchanging and processing data in real-time. Continuous Delivery and Continuous Deployment are both uses for deployment where Continuous Delivery is manual and Continuous Development is automated.

VII. CONCLUSION
By incorporating all the parts, we can interpret what full stack was, how it has evolved and why has it evolved. The efficiency of workers can also be calculated and the approximation of time taken to complete a project, and finally people either see Full Sack Development to be dead or overrun. However, it can be seen from the pretext that it has been evolved and has been drastically optimized to meet the user's needs.