In recent years, the information technology market has undergone a great revolution, making new strategies and technologies such as Big Date, Artificial Intelligence, Machine Learning or Internet of Things available to companies. The development of these has been boosted thanks to the paradigm shift emerging from the cloud ecosystem.
At this stage of development in these technologies and after 14 years’ developing different roles in technological companies, now seems the right moment for me to stop and reflect on the cloud phenomenon from a double perspective, both personal and professional, to contemplate the transition of traditional solutions, also known as on-premise, to new cloud solutions and more particularly the emergence of the public cloud.
Today, almost everyone is familiar with the cloud concept (“nube” in Spanish) or SaaS (Software as a Service). Many professionals in the sector are also familiar with more advanced terms such as public cloud, IaaS (Infraestructure as a Service), PaaS (Platform as a Service) and managed services (or serverless technologies) which have emerged onto the scene fairly recently.
Personally, I include myself amongst those who, whilst being part of the “cloud world” since recently joining Keepler, have discovered a new realm of possibilities. In this article I will try to portray key concepts as clearly as possible and above all, to highlight how these solutions coexist at present and how in the future, they will surely converge.
Key concepts in the cloud environment
Before moving on, we will go over some concepts and terminology chronologically in order to be able to understand the article in more depth.#SaaS #IaaS #PaaS > Understanding key concepts in the #cloud environment Click To Tweet
On-premise: This refers to the software and platforms undertaken in locations that usually belong to the company using it, although these can also be externalised in Data Processing Centres, provided by companies who offer this service privately. Thus this software is usually installed within DPCs in servers, bought or hired, administered and maintained by company personnel. This type of technology has certain implications that cannot be ignored, such as:
- Infrastructure provision (physical space, network, energy, security).
- Software for servers to function (operating system, antivirus, patches).
- Business software you want to use (database servers, application servers, CRM, BI, ERP solutions).
As may be imagined, these tasks generate costs that might not have been anticipated and, as we will see later, that are different for cloud and on-premise solutions. This type of solution extends the use of the client-server architecture, where the server is installed in the aforementioned DPC and in user computers. Over time, these client roles have changed from being burdensome (software had to be installed and it was necessary to be connected to the server) to thin clients (accessed via the navigator) simplifying the administration process for this technology and allowing use of software via a simple Internet connection.
Hosted solutions: In recent years, many companies have demanded solutions without the need for installation and maintenance implications; therefore, software providers started to offer what could be considered an intermediate step to the cloud as we know it today. This involved installing servers that were maintained by software companies in their own or third party DPCs, initially accessed by users with remote desktop technology and streamlined according to the clients, with just an internet connection and a navigator (having first established security elements like validation of specific LPS and certain ports).
In terms of the way capabilities were adapted and mode of payment, this type of solution could be considered the first type of SaaS or cloud solution.
Saas cloud solutions: By ‘cloud solution’ I am referring to software solutions that have been designed with an architecture adapted to the cloud, unlike the previous “hosted” solutions.
This architecture usually consists of multiple layers, databases, firewalls, web servers, data integration and exportation. In turn, each of the layers will have different servers, generally virtualized or used concurrently by multiple clients.
This type of architecture is designed to share resources amongst multiple clients, “mutualising” the use of the platform to reduce the cost, whilst achieving certain economies of scale by buying more servers in line with growth and having an operations team to maintain the platform. This is also simplified considerably through the use of virtual servers, which also allow the software being used to be preconfigured.
Another basic characteristic of this type of solution is payment by susbcription, in other words a monthly payment for resources used or other metrics relative to the software licence. Thus we may find providers who charge by the amount of users, storage, messages sent, pages visited or stored and many other options.
However, the capabilities of this type of solution from an infrastructure perspective are very different, with frequent bottlenecks, or issues which present problems for the scale of architecture for which it has been designed.
Within the solutions found in the current market, we see that different providers are beginning to offer Business Intelligence, Analytics, CRM, HCM tools, including complex systems like ERPs in the cloud; and that many others are in the process of being able to offer them, a step that will surely position providers in the market in the coming years.
IaaS and PaaS: Dentro del cloud, además de SaaS, existen otras opciones a raíz de la aparición de proveedores como Amazon Web Services, Microsoft Azure y Google Cloud, como principales actores, que se están extendiendo cada vez más y dado su coste, permitiendo democratizar su uso.
- Infrastructure as a Service: Within the cloud, as well as SaaS, there are other options following the appearance of providers like Amazon Web Services, Microsoft Azure and Google Cloud as the main players, that are becoming increasingly widespread and given their cost, allowing democratization of use.
- Platform as a Service: This concept extends the previous one, offering infrastructure the software necessary for use, such as operating systems, application servers, databases, antivirus, patches. This therefore frees up businesses not only from use of hardware but also from the first level of software and support necessary.
Managed Services: Beyond Virtualized Servers
The major software providers are investing heavily in capacity from an infrastructure and operations perspective. They have managed to develop their platforms with new capacities and provide one of the most noteworthy managed services allowing a database object to be initiated in minutes, with a multitude of choice (e.g. relational database, NoSql, columnar database) without needing to specify server capacities, reserve disk space nor install and maintain database software.
Within this range of managed services there are many different services other than databases, such as storage services, data processing (ETL), machine learning services, BI solutions. These services are defining a new paradigm shift in the design and construction of software projects.
Consider a traditional BI project, for example. With on-premise solutions or other types of providers, it would be necessary to know which servers are needed, their characteristics, database type to be used for the application and which solutions are needed to carry out exploitation of data, licensing and installation. Yet by developing in the public cloud, all this complexity can be removed, omitting the server layer entirely, choosing the best managed service relative to the database, instantiating it in minutes and beginning to provision data with processing data for later exploitation This results in dramatic time savings given that the infrastructure is totally transparent and there is no need to licence or install any product.
But that’s not all, imagine that we have chosen the wrong database and instead of a traditional database we need a more efficient database with columnar storage. We would be able to instantiate the new database, migrate the data and “disconnect” the less efficient database. This process can be carried out in hours or at most days, whereas with on-premise solutions this would be practically impossible for technical as well as economic reasons (licences are normally purchased for minimum periods of a year and we would need at least one other server configured for the new database, whilst maintaining the old one, installing the new database before even beginning the migration process).#On-premise development vs. #cloud #tech development Click To Tweet
The versatility offered by public cloud platforms allows design not only to be improved and adapted to needs which arise during product development, but also for the time spent on analysis of the necessary infrastructure analysis to be reduced, enabling more time and resources to be dedicated to tasks of value, such as defining the functions of new KPIs or analysis. This would be impossible without the appropriate tools.
Adventages of developing in the public cloud
Other advantages associated with this type of technology are explained below:
Saving of time-to-market time and agilisation: All the aforementioned points allow great time savings in terms of installation, administration, resource provision. Although it seems obvious, many on-premise projects including infrastructure providers have been delayed by days or weeks due to not being able to access the infrastructure in time. In fact, projects are delayed more often than we would like due to infrastructure downtimes or because pilots cannot be run due to lack of availability of servers (examples of cases could be given for both points).
Cost savings: Time is money and the resources needed to maintain a platform are not cheap and furthermore, the cost of database experts, IT infrastructure experts can vary considerably. Licence costs can be fairly high in many cases, regardless of whether they are used or not, and have periods of validity, usually of a year.
Cost optimisation: The proposed model for this type of provider is based on pay per use and on economies of scale, both of which result in reduced costs. Moreover, it is not necessary to buy a very powerful server if the processing load is only going to use 90% of the resources for a fraction of the time as is usually the case; the service will be scaled and only the percentage of the processing used will be charged.
Fewer profiles needed for the organisation/projects: Many projects have failed due to the large range of job profiles needed to set them up, or through the use of profiles without the appropriate knowledge. In turn, many organisations have not been able to take on innovation projects due to not having certain profiles. This type of solution allows professionals to concentrate on added value activities rather than administrative work.
Agile evolution: Architecture that evolves with our requirements can be designed, which is not possible within the traditional framework, whereby even though they are not the best, many projects or solutions cannot be improved or replaced over time which has an impact on and opportunity cost for the business. Availability via APIs favours this type of development, allowing automation of many of the processes that traditionally have involved manual labour.
Greater error tolerance: Greater scalability, auto-recovery and automatic backup management are not only less likely to fail but will also mean data is more easily recoverable.
Simplified upgrading process: Upgrading is another of the inherent problems of on-premise solutions. Providers bring out new versions but the updating process for the solution is not always transparent, it is necessary to update the software and this sometimes brings additional needs, meaning that versions have not been updated for years and become obsolete. In the case of cloud solutions, the process is simplified and practically transparent if managed services are used.
Shorter release cycles: The software development process is easier because it is not necessary to develop different versions by the operating system or applications server, greatly streamlining development and tests. Time saved is reinvested in designing new capacities and functions, meaning that solutions evolve quicker than the traditional approach.Advantages of developing #software in the public #cloud #business #tech Click To Tweet
While this is a time when both cloud and on-premise paradigms still coexist and will do for a long time, it seems that there is a clear tendency towards migration to the cloud for most solutions and software projects. In accordance with this trend, many companies are making the most of the public cloud capacity to start projects that would not have been possible with traditional solutions, which in turn leads to the increasing introduction of these solutions in all types of businesses. On the other hand, the aforementioned capacities of the public cloud mean an accelerated return on project investment.
In more specific cases such as big data projects, many more companies are now able to tackle these projects, to include more data and analysis through much more affordable investment and to dedicate more time and resources to experimentation and less to infrastructure.
This paradigm shift also implies new challenges: reorganisation of project teams is necessary. New job profiles come about and/or the need for existing employees to acquire new knowledge and skill, which poses a real challenge for the organisation to find and/or retrain these employees.
Image: unsplash | alexander mils