Editor's Note: This article was originally published by Digital Journal, Author Tim Sandle, on January 23rd, 2019
With Google Docs leading the way to an ‘open’ approach to cloud-native software, software development could be moving completely into the cloud. There are other factors, however, influencing 2019’s trends as Aurimas Adomavicius explains.
A business going cloud-native is a major leap. Challenges include tackling the tools and software development methodologies that have existed in different formats outside of and before the cloud. Furthermore, software developers express concerns about developing to a particular cloud and then discovering that their software becomes locked to that one cloud provider.
Digital Journal: What are the main trends in software?
Aurimas Adomavicius: Looking back on 2018, there was a lot of buzz when it came to blockchain and AI, but entering 2019 there are actually very few practical applications that have emerged. If you take a look at how the Global 2000 enterprises are investing their money across the portfolio, it’s primarily falling into software as a product, research, and design. Organizations are now embracing software as a means of generating revenue by designing and building in-house software products.
Another trend is mobile applications gaining mainstream adoption in the business-to-business workflow. Mobile is no longer just a consumer-facing platform, but it’s also used pretty actively in the B2B sector.
Data access strategy and microservices adoption is another trend in the enterprise. This is important because the introduction of microservices and establishing good data design allows organizations to move away from legacy software. The modernization of legacy software is the next area of investment. Enterprises are moving away from legacy, rebuilding, refactoring and transitioning away from on-premises, to the cloud for a much more modular architecture of the software. This lowers maintenance and upkeep costs, as well as allows the organizations to address customer needs to respond to market quickly, maintain things better, and so on and so forth.
Finally, there's a lot of custom software that continues to be built to further improve workflows at organizations. So, a very large theme that we see is organizations leveraging software as a means to increase the productivity of the staff that they have to be able to accomplish more or handle higher volumes.
DJ: How successful has Google Docs been, in terms of being cloud-based?
Adomavicius: Google Docs is probably the largest contender in productivity management, compared to other leaders like Microsoft. Considering half of the public education in the United States is being run on Google Docs, it's a tremendously successful platform. The software-as-a-service (SaaS) model is extremely valuable in this context because an inexpensive piece of hardware simply has to have the ability to run a browser, and then the browser connects to the to the application that's sitting in the cloud.
Organizations can relatively inexpensively enable their workforces with the capacity to be more productive by using cloud-based document editing spreadsheets and so on.
DJ: Will software development move completely into the cloud in 2019?
Adomavicius: It’s important to remember the cloud is simply distributed infrastructure. It is in no way different than on-premises infrastructure except that it is distributed. When software is created, it's created for the cloud because there's a capability that the cloud offers.
So, if you're building a mobile application, you're never going to build a mobile application that is cloud only because a mobile application needs to sit on a phone. However, SaaS products will all be almost one hundred percent cloud-based because it allows extensibility and scalability that is offered by a distributed infrastructure.
Most organizations will be leveraging the cloud in 2019 where it is applicable. There are still instances where on-premise software is preferable because there's a security consideration, a geographical implication, or resiliency requirement that can be better met through physical hardware in a specific location.
DJ: What obstacles are there for pre-cloud software becoming cloud enabled?
Adomavicius: There are two ways for software to become cloud-enabled; there's virtualization where you create a virtual machine that mimics your on-premises machine, or there is a way where you build software to natively leverage the benefits of being a cloud-based application.
Oftentimes, legacy software cannot be easily transitioned to the cloud in the purest sense — meaning transformed into cloud-native software — because it would require a complete rewrite of that software. So, organizations are moving into a containerized environment where physical on-premises infrastructure is mimicked on distributed infrastructure through virtualized machines. While it addresses part of the problem, it actually doesn't give users very many benefits because these unique virtual machines still need to be maintained.
DJ: Does software need to be configured for a particular cloud provider?
Adomavicius: It really depends. Again, there's a way to write cloud-native software if you leverage database-as-a-service, where a service actually manages and runs your data versus accessing simply a virtualized database server in the cloud.
If you are using native-cloud offerings, then yes there are certain things that need to be configured, or unique for the select provider that you choose whether it's Amazon, Google Microsoft or anyone else.
DJ: Does the cloud provider matter, in terms of the service?
Adomavicius: Generally, the capabilities are more or less the same. However, the price fluctuates slightly between the main players. Some capabilities differ so the selection of the provider should really be based more on the capabilities of the software and the fit of the software to the provider, rather than the reverse.
DJ: What tips can you provide for dev teams preparing cloud-based software?
Adomavicius: Be familiar with what cloud-native services are being offered by the different providers, and recognize what strengths are available within each. In terms of processing, queue management database-as-a-service. Look at what your product needs, then select the provider. In most instances, you will see benefits from doing cloud-native development where you're leveraging these services versus using virtualized environments because there's that additive benefit of environment maintenance if you're running virtualized environments.