Cloud-native applications are on the rise. In fact, the Cloud Native Computing Foundation recently released a report that found the use of cloud-native technologies in production increased more than 200 percent in the last couple of months. However, Justin Graham, senior manager of market strategy and ecosystem development for AWS, finds that the more a trend starts to get popular, the more it becomes a bit diluted in meaning.
Graham presented the keynote today at DevOps World | Jenkins World in San Francisco on how businesses can successfully transition traditional apps to modern and cloud-native applications.
The key principles that go into building a cloud-native app are that it must be container based, dynamically managed, and microservices oriented, Graham explained. Containers enable applications to be packaged, portable, reproducible, transparent, and isolated, which is really important when it comes to cloud native, according to Graham. Dynamic management is where container orchestration tools come in to make container-based apps possible, and microservices provide a different way of architecting apps.
In addition to containers, Graham noted cloud-native apps need the cloud and a different cultural mindset. While AWS is a cloud provider, Graham says even if you are not using AWS, the cloud provides many benefits over on-prem systems. Graham referenced the DORA report, which recently found that teams who adopt essential cloud characteristics are 23 times more likely to become elite performers.
To successfully transition to cloud native, Graham points out four principles.
- The ability to ship features faster without having to worry about collateral damage of failure or iteration. According to Graham, DevOps plays a significant role in the process and technology. The DORA report also revealed that companies that are able to move quickly through people, processes, technology and culture are more likely to deploy code frequently, get through commits to deploy faster, recover faster from downtime and have a lower change rate failure.
- Being able to pay for what you used last month, not guessing what you need next year. The cloud enables this because it enables an infinite amount of resources and the ability to only pay for the number of seconds or minutes you used, according to Graham. When you have data centers running on-premises you have key limitations, he explained, and eventually you will run out of resources and then have to worry about spending more money to accommodate your system.
- Providing self service, API-driven, automated services. Graham says teams need to be able to experiment and fail fast without worrying about significant investments. In the past, when a ticket was filed, operators had to wait days or weeks until they were able to address it. With a self-service system, they can make changes on demand within minutes, he explained. Self-service, APIs and tools should empower teams to move quicker, he added.
- Put microservices in place to reduce the blast radius. If and when something goes wrong, you want your teams to be able to reduce the risk. With a microservices design pattern, you can break down your application into small and isolated core components so that if one component fails, it doesn’t have an impact on other components and they can continue to operate, according to Graham.
Lastly, Graham touched on the importance of culture, which he says can be the most important thing. Quoting AWS VP of cloud architecture strategy Adrian Cockcroft, Graham said “You don’t add innovation to culture, you get out of its way.”
Businesses should hire and staff people that are creative, passionate, and care about customers. Citing Conway’s Law, Graham believes if software apps are a reflection of the the organizational structure that created them, then businesses should really think about how they are organizing their teams against the customer experience they want.
“Our job isn’t to feed the innovation. Our job is to provide the care…and get out of the way,” he stated.