How Have Cloud-Based Apps Evolved?
The move to continuous delivery, automation, containers, and microservices.
Join the DZone community and get the full member experience.Join For Free
To gather insights for DZone's Cloud Research Guide, scheduled for release in April, 2016, we spoke to 28 executives, from 23 companies, who develop and deploy applications in the cloud for their own company or for their clients.
Here's who we talked to:
Neeraj Gupta, S.V.P. Product & Engineering, Apcera | Jad Naous, Product Lead, AppDynamics | Ez Natarajan, V.P. Head Cloud Services Business Unit, Beyondsoft | Alon Girmonsky, CEO and Founder, BlazeMeter | Kunal Bharati, Cloud Architect and Nishant Patel, CTO, Built.io | Sacha Labourey, CEO, Cloudbees | Deirdre Mahon, CMO and Fraser McKay, V.P. of Products, Cloud Cruiser | Flint Brenton, CEO, CollabNet | Ali Din, Senior V.P. and CMO and Walid Elemary, V.P. Product Development, dinCloud | Mike Masterson, Director of Strategic Business Development, Dynatrace | Gabe Monroy, CTO and Jasen Hansen, Chief Architect, Engine Yard | Fred Simon, Co-Founder and Chief Architect, JFrog | Jim Frey, V.P. of Products and Ian Pye, Co-Founder and Principal Engineer, Kentik | Johan den Haan, CTO, Mendix | Mounil Patel, V.P. Strategic Field Engagement, Mimecast | Faisal Memon, Product Manager, NGINX | Arvind Mehrotra, President and Global Business Head – Infrastructure Management Services, NIIT Technologies | Jens Eckels, Director, PaaS Business Group, Oracle | Pat Harper, SVP Operations, PGi | Joan Wrabetz, CTO, Quali | Partha Seetala, CTO, Robin Systems | Nick Kephart, Senior Director Product Marketing, ThousandEyes | Kiran Bondalapati, CTO and Co-Founder, ZeroStack.
When we asked these executives "How has development and deployment of cloud-based applications evolved?" here's what they told us:
- It’s been a revolution, not an evolution, driven by continuous delivery. Five to 10 years ago development and deployment was part of a waterfall methodology that took six to 12 months by people – the process was not automated. Now all processes and handoffs are automated. We are close to completing the process of committing code to running in production in an automated way. We’re a continuous delivery player providing the performance testing for the apps in the cloud.
- It started with unstructured applications then we started seeing more database applications because AWS provided an end point where data can be stopped.
- Since 2006, we’ve moved from rack and stack to AWS DMS in the cloud with more sophistication. The importance of virtual machines is declining while the importance of the container growing – cluster management provides a world view thereby referring responsibilities to other areas of the stack. It's been an evolution because all of the changes in infrastructure management developers only have to focus on apps. Disruptive technology with containers model has been adopted by Netflix. Shared environments and how to build them is very powerful. Once you have the building block, it makes sense to manage everything with a single host via distributed systems.
- There's a bifurcation where half of the developers know nothing about the cloud and the other half know all of the details. We used to only work with non-developers. In the last two years, there are new interfaces with anything including Python and APIs.
- Multi-tenancy has evolved. The first apps didn’t handle multi-tenancy. Everyone shared everything then everyone had their own space but shared the pipes. The evolution has been driven by security. People are still expecting a private cloud experience with regard to where their apps are going. IoT and containers are providing a pool of capabilities. You can find open source components and customize to fit your needs. Today, there are open source platforms with specialists adding vertical services applications, breaking apart different code and borrowing elements from different people, picking and choosing what works for them. Offer a platform to the customer with the scale they need making it as simple as possible. 15 to 20 years ago we didn’t discuss disaster recovery. Today you can mitigate disaster with a disaster prevention app that can move from one location to another with no downtime.
- Used to have monolithic architecture request from one app to the database. The scale has increased and has been broken down to service-oriented architecture with the cloud and micro services. It’s easier to manage the infrastructure and scale up and down with APIs. Since the cloud took off, people have gone from one-to-one mapping to accessing infrastructure APIs. Microservices and DevOps have increased production velocity of delivery. There’s a shift to micro services from the data center to the cloud. Now there’s a shift toward lightweight containers that can be spun up or down in second versus minutes. There are two tiers of companies: 1) the traditional enterprise is five to 10 years behind the leading/bleeding edge; and, 2) the leading edge like Google, Amazon, NetFlix and start-ups by people that have come from those companies.
- Three phases: 1) Virtualized servers lift and shift with more machines but less physical boxes. 2) Start of microservices create an API between the old and new and look at new functionality that can be leveraged – “de-componentization.” 3) As you start to scale or re-platform you drive software defined infrastructure and bring in the application logic in which the software is defined. Next is the Amazon Lambda framework where APIs serve as the gateway with the interface. They won’t be running on a server or container, everything will be driven by demand by writing an algorithm to run on a dataset – API as you go. Data at rest in the cloud to no limit to the type of apps without the underlying infrastructure. More connected devices and APIs only on when needed – capture, store, done. Data governance will look for exceptions, push data through APIs without needing more than an API call. Smart thinking about what’s needed to keep a small footprint. Understand what the end user is doing – end devices and edge devices. Device connects to the API in two or three seconds. What does it mean for measuring UX? How do you define a user session? Ultra reliable connection – no tolerance for failure. Same levels of need should be a forethought for a successful product company. Take the best practice from solving problems and make the software the smartest person in the room. Figure out how to measure in a uniform way.
- In 2010 less than 10% of apps were cloud-based. Today it’s 50/50 moving to 60/40 cloud/client-server. The cloud is more economical, scalable, has great customer service, and security advantages. Mobile devices are driving the cloud. In two years, 80% of apps will be in the cloud.
- 1) Thinking of the cloud as complex technology with a challenging model to leverage to the fullest. 2) Improve the UI/UX. 3) Cloud as a hosting model. Pure hosting model does not save time if not leveraging elasticity. Create uniform process across the board. Companies are not doing this – it’s part of a DevOps culture. Cloud technology doesn’t have the data model right. The social part of the structure of the database has been a failure trying to deal with unstructured data using a structured process. If you are dealing with social analytics look at a different infrastructure rather than using a structured process. When developing data models don’t just think of structured databases, think of unstructured as well. Don’t create multiple databases – this causes confusion and added costs.
- Puppet and Docker push out the state of images on 200 machines and only one person is needed to manage. We’re DevOps driven and do everything with a five-person DevOps team. We’re doing it out of self-defense. Automation is the only way to scale, be stable and reliable.
- We used a native platform without abstractions and ended up with hard coded app but when you tried to move to the cloud you had to re-engineer. People are looking for and creating abstractions making it easier to move from one cloud to the other. Don’t get locked into a single cloud.
- Availability of out of the box services like AWS and Azure for a developer-centric culture. Strong appreciation for a library of resources so you’re not always creating from scratch. Willingness to create useful out of the box services.
- What people used to do just transplanted into the cloud with no business logic doesn’t match up with the mentality of the cloud. Over the past six to 10 years, we’ve gone from transplanting to designing for the cloud first – flexibility and interconnectivity. You can’t have 99.9% uptime; you must design for failure to ensure the application is always available.
- Recently there are more mature cases and templates, response time and tool boxes have improved. Docker is helping to package things in an efficient manner. More layers, more mainstream make it possible for developers to have layers work together. There are many different ways to do things, create common knowledge, everyone has to learn. No one owns the truth.
- The decouple mentality – the frontend technology is decoupled from backend with an API first mentality. Flex to build whatever frontend you want. If you have APIs, you can build what you want. Have failover within the stack.
- App development for mobile and traditional. Feature functions have to be consistent but for different form factors. No app can be platform dependent.
- V1 is the cloud in 2007 everything was application as a service running on a virtual machine. V2 is the next level of automation and abstraction moving from virtual machines to containers. Isolation is important working with APIs of the underlying platform to become stateless in the case of crashes. Platform as a service (PaaS) = stateless. V3 are apps that are an aggregation of smaller micro services to form a solution. V4 is a developer developed cloud app based on microservices with more complex functionality with business people developing business processes on the platform. Legacy clouds companies like Oracle are at V1 moving to V2. Companies like Netflix, Uber, Twitter are moving from V2 to V3. V4, identified by Forrester as low-code platforms. In the Gartner hype cycle of technology, PaaS is in front of all others because it’s delivering business value. PaaS companies skipped some steps to deliver value faster. They are leading the new economy. LG insurance is co-creating a Mode 2 team (fast track innovation) to deliver new applications quickly. We can help if a company is completely committed to the process – the business team and the developers. BusDev with developers, not business development. Close, cross-functional teams that quickly iterate and deliver new value.
- Monolithic code bases to micro service. Do one thing and do it right – purpose built from start to protection to production to retirement with a DevOps team and platform team. You cannot have micro services without DevOps.
- For decades everything was more localized to the business group – strictly controlled and released. Applications changed everything to a much wider distribution with more frequent deployments in short timeframes with virtualization of the environment and more automation. We've gone from local to broader, faster, quicker.
- Pressure from customers and users to have new features and security has pushed the cloud – public and private. Tooling has improved for private clouds – software as a service. Rapid reaction to security demand. In an IT environment when they have a problem and solve it the customer will always ask for more.
- The cloud was a new concept when I started with SaaS. Over the last three years with Microsoft, the enterprise has been educated to take advantage of cloud-based services. A lot of drivers initially – cost savings and access anywhere.
- 1) Agile development methodologies for widespread deployment in software. 2) Cloud-based infrastructure (IaaS) becoming more common with AWS, Azure, and Rackspace. Within start-ups, the CTO determines the philosophy that will be followed.
- It's all still somewhat new of course, but we've seen quite a shift away from simple infrastructure providers and basic hosting of applications several years ago to a broader platform-based service model where an entire technology and software stack can be managed by vendors - and, of course, everything in between. The future is in the latter model of 'cloud-based everything' whereby development and deployment are all done in the cloud and designed to run in the cloud from day one. Organizations are increasingly offloading their whole stack to focus on their company value-add and not infrastructure idiosyncrasies. Notably, some industries and geographies have serious issues in terms of regulatory requirements and data residency requirements that take public cloud out of the equation.
What do you see as the greatest evolution of cloud-based apps?
Opinions expressed by DZone contributors are their own.