Cloud computing today is much different than it was nine years ago. Not only is the cloud different, but the developers who author code for this environment are different. Nine years ago, if someone came to you and said “make me a website”, there were only a few ideal ways to do it. Today, they are many ways to do it. In fact, in the cloud alone, there are five ways to do the same thing. With Azure, the limit of scale of your system will not be Azure, the limit of scale will be you. It will be the choices you made in the design process that affect the scalability of your system.
Scalability is important for a cloud application, and it almost always relates to cost-elasticity and resiliency. The original golden-dream of cloud computing was elasticity, but existing applications do not simply get deployed into the cloud and suddenly have these types of characteristics. They need review and change. An effective type of review exercise which originated from the Microsoft Trustworthy Computing Group, is Azure FMA, or Failure Mode Analysis. This exercise incorporates failure design thinking into the team’s development process to find vulnerabilities before going live.
Knowing which frameworks to use during development is also important. Older, more experienced developers recall having to build everything from scratch a decade ago, and now, many accelerators and microframeworks exist which have altered the culture of development mindset. Newer developers are more comfortable without a “big bang” approach, which coincidentally lends itself to more rapid development. Given the rate of innovation of frameworks and patterns, combined with modularity entering the market, many times a part of the system can be replaced and should be replaced by something (in the market) which already performs the function. In other words, sometimes it helps to have a mindset that parts of the system are disposable, and instead the effort should be spent on building a flexible architecture of parts. This solves both the “big bang” mentality and forces a cloud-first design of microservices and microframeworks.
According to Gartner, over half of global companies using the cloud right now will move to an all-up cloud strategy within three years. This means cloud native and elastic architectures will be needed. Development teams familiar with agile development of microservice architectures with microframeworks will be used to build these systems. Resilience modelling and other analysis will be required. Remember, the limit of scale will be you, because of the choices you make: nobody calls you at 3am to tell you your application (which was incorrectly built for the cloud) is amazing.