How has the Cloud changed the operating model (for APIs and developers) during the last five years?
In the past, developers who were writing large-scale applications needed special access to on premise compute, networking, and storage infrastructure to test and deploy applications. The cloud has given developers “press of a button” access to compute resources around the world. The cloud also provides much greater access to APIs and the cloud services associated with them. This greatly simplifies how developers can access APIs and empowers them innovate on top of them. The ease of use is incredible—offering developers an easier way to write apps and get them to scale quickly.
The power of the cloud also brings along many challenges and obstacles. The easy access to APIs and global scale deployment greatly exposes the attack surface of cloud applications and data, making security, privacy, and threat protection top concerns. Layer on top of that the varying data sovereignty regulations by country on where data can be stored and how it can be used. It’s no longer as simple as press of a button compute; you need to be really careful about how you architect and design your system so you can get maximum innovation in a way that matches these requirements.
"The cloud has given developers “press of a button” access to compute resources around the world"
Also, the operating model for cloud can be quite complex with public, private, and hybrid clouds. The reality is that when you’re writing an enterprise application, you need to develop it for a multi-cloud environment. Furthermore, business applications often touch a lot of data including customer information and proprietary details. Often times, you’re mixing information from customer and business databases.
To combat this, you need to sit down and understand the systems you have and the external systems you want to interact with. You need to think about what kind of information am I dealing with—what data is public and private and what data can be shared with whom? How do we handle mission critical business data and customer data? What are the performance requirements for accessing it and how quickly will it change? Once you understand this, you can work through how to design your cloud application and data architecture in a way that all the data and APIs can be accessed in the right way, taking security and performance considerations into account.
In the past, developers built monolithic applications meant to do one thing. But with the cloud, the real value comes in building and connecting services together. For example, when you’re looking at developing a building automation system, you don’t want to write a siloed application that just helps someone turn on the lights. Instead, you want to think about lighting control as one of many services along with physical security, HVAC, employee access, and network access. You can build a service which manages who your employees are, what areas of the building they have access to, and what systems they can interact with. The services will be reused for many applications instead of just one and this requires a shift in how you architect and develop your system.
Another shift is the move to DevOps. Previously, developers and IT operations were separate functions. Developers made applications but IT built the infrastructure and deployed the applications. In many cases, app developers didn’t have to worry about infrastructure. But now, developers can be building, deploying, continuously iterating and updating applications. This has been a difficult transition for many.
I’m really excited about the way the cloud is coming together with the Internet of Things (IoT). This is going to allow for new classes of experiences—going far beyond an app that just runs on a single computer or mobile device to applications that run in the cloud to experiences that interact with the things around you.
One example in the workplace is that when you walk into a room, it will give you access to all your services with the appropriate permissions and customization. The phone will automatically have your phone number and connect you to your next meeting without you having to dial into a call line and bring in the right people. The experiences will extend to your personal life as well. We all manage a lot of processes—getting from home to work, picking up kids, getting the family fed. When you’ve opened up APIs in your car for example, you can bring together the cloud and IoT and make all of these everyday tasks easier. I know these are very simple examples, but to me that is what makes it so interesting.
I’m the mother of a two year old. It’s very interesting to look at how technology has changed raising a child in the past few years, even in contrast to my friends that have kids that are five or ten years old. For instance, I have a white noise app on my phone that helps the baby sleep whereas my friends had to drive their babies in their cars or place their child in a car seat on top of the dryer to create that experience. I also can log in to see my child sleep in her bedroom when I’m on a business trip and I have access to video cameras at daycare in my child’s classroom—providing peace of mind throughout the day.
Technology changes the way we can get information and tackle problems. I have access to an infinite database of information on the internet and can use this to tackle any problem. Broader cloud access will connect more people to share experiences and build on them. I look forward to the cloud and IoT getting even more advanced to help us with our everyday tasks around how we live, work and play. It will also bring about new challenges in terms of access and security—but these problems can only be solved by the community coming together. In this way, technology both creates and solves the problem.