The Journey From Idea to Practice in IT Can Be Short
This is the first post in a series on how important ideas end up becoming common practice in IT.
This is the first post in this series on how important ideas end up becoming common practice in IT. Not all ideas make this journey and not all do it quickly, but the powerful and timely ones make it and provide a fun journey for the participants to change along the way.
Web Hosting Came Along Just in Time
The international business of web hosting started up when organizations decided that they wanted to start using the World Wide Web but weren’t sure how to do that. Organizations looked to hire a provider with more experience than they had with facilities to handle the special needs of internet applications, such as web servers and application servers, load balancers, switches and firewalls.
These devices needed housing in a safe environment with some shared facilities like power and bandwidth so they could take advantage of the cost savings that comes with the volumes associated with many collective users. On top of the hardware, software and services were usually provided that maintained and managed the software stack, including security. Security management was always a major consideration as it is still today.
Over time, larger organizations got familiar with the technology, processes and pitfalls and decided to take some applications in house. There are many instances where IBM Z clients hosted their web applications and databases on Z using OS HTTP Server. With this server, you can run HTTP in any of three modes, with each offering advantages for handling web-based workloads:
- Stand-alone server (typically used for simple websites)
- Scalable server (typically used for interactive websites, where the traffic volume increases or declines dynamically)
- Multiple servers (combination of stand-alone and scalable servers)
Of course, it takes more than just HTTP server software to host a website, and Z supports a wide array of commercial and open-source products and tools.
Later, after Linux started to take off as an OS, organizations sought to optimize their servers through virtualization using Linux on IBM Z. There were many motivations as pointed out in this publication, including:
- Too many distributed physical servers with low utilization
- A lengthy provisioning process that delays the implementation of new applications
- Limitations in data center power and floor space
- High total cost of ownership
- Difficulty allocating processing power for a dynamic environment.
This IBM Redbooks publications solution guide provides technical planning and an example for IT organizations to migrate from their x86 environment to Linux on Z. Many of these environments are associated with web applications. Web hosting has not gone away or been replaced by cloud infrastructure and, organizations have benefited from consolidation to a more robust and cost effective IBM Z platform.
Web hosting developed from idea to robust and dynamic business in roughly five years. This fast growth gave the participants many challenges and rewards. Some providers generated $1 billion in annual revenue from the hardware, software and services they deployed.
An Alternative to the Monolith
An idea that has been slower to gain acceptance than web hosting but is still making strong gains is breaking up the monolith. “In software engineering, a monolithic application describes a single-tiered software application in which the user interface and data access code are combined into a single program from a single platform.” The monolithic application is challenging to change and adapt and architects and developers have pioneered a number of ways to address the challenges so change and integration can be continuous, not limited to infrequent change windows.
The application architecture that’s something like the opposite of the monolith is the microservice. The microservices architecture was born to address the problems that people saw in a monolithic application. Microservices are now widely used and some significant websites have already transformed their monolithic application to microservices.
Some benefits of using a microservices architecture have the biggest impact on developers. With microservices, developers work on a smaller codebase. When components of the application are loosely coupled, developers can more easily understand the source code and this speeds up development. With microservices, the responsibilities of the developers are more defined. Application team members can be assigned work by components or microservices of the application, making activities like code reviews faster. Code updates will be faster, and there’s no need to build and deploy everything, just what has changed.
There are other benefits, of course. With microservices, the application’s technology stack can differ and the application no longer needs to depend on one language or library. Microservices can leverage different programming languages as developers see fit when organizations can usefully adopt their use. It’s possible to have polyglot microservices, which can be quite useful.
Breaking up the monolith is growing in acceptance as new generations of architects and developers look to try different ways to develop and maintain applications. Microservices are not only being used with new applications but with new ways to use existing applications as with APIs based on Representational State Transfer and Simple Object Access Protocol.
What’s Next?
Next week, I’ll focus on computing architectures and the emergence of Linux.