What does it mean to become Cloud Native, can you only achieve this status if you (or your organization) were born after 2004, as an equivalent to the so-called digital native? Can you apply cloud native patterns only in CI/CD? Coining the term Cloud Native mostly for systems who adhere to the 12 factor app philosophy can create a bit of a tunnel vision for organizations, especially during heated debates while selecting tooling for cloud, automation and decisions about ownership.
Born into cloud, created with cloud in mind. Defining something as created for the cloud, benefiting of cloud, should at least adhere to the most important aspects of cloud. You can argue that if a service does not check the boxes for NIST cloud aspects, it might not be Cloud and it might also not be very Cloud Native. So lets review the NIST cloud aspects and see how Cloud Native could be described, also in a way that it does not exclude everything except CI/CD and containers.
What does the native look like..
Characteristics of a cloud native:
- Orchestrated vs Automated - This is an important requirement for fulfilling the On-demand aspect of cloud, it is also necessary to automate the Per-use insight for accounting.
- Declarative vs Imperative - This way of defining how cloud consumers interact with the cloud service is important when dealing with shared resource, which can easily provide for multiple use-cases without customizing the service itself for each use case.
- Desired state vs prescribed state - This can be applied to the mechanism supporting (auto-)scaling, to provide for a more robust system which can adjust itself to fulfill the desired outcome.
Not only CI/CD
As you might have noticed, I haven't mentioned CI/CD, pipelines or developers once in what Cloud Native looks like. Cloud native is currently used a lot in CI/CD context, mainly because most driving forces in the Cloud Native industry are found in that general area of interest. Data and more importantly data analytics is a rapidly growing field, which is becoming more Cloud Native at a much higher impact and rate than the aforementioned CI/CD. Most of this happens just out of sight of the traditional CI/CD Cloud Native work field. Other use cases of Cloud Native outside of CI/CD involve low-code (although some work is done integrating Function as a Service or Serverless into CI/D Cloud Native.), B2B integration of services and delivery of COTS software. A lot of traditional companies like Oracle, SAP and more specialized software builders are embracing Cloud Native as a way forward to not only deliver their public SaaS, but also to deliver their software in a cloud-like fashion on the customers own emerging Cloud Native platforms.
Convergence of Cloud Native, Hybrid Cloud and Digital Transformation
All of the organizations I connected with in the past years have some functionality running in the public cloud. The level of how well they can make use of the cloud, in a more cloud native way, also determines the way your IT can actually provide the means and the way of working for a real digital transformation. This involves a lot of control, but not the stateful, static, change averse kind of control. Instead it involves smart controls, which provide declarative interfaces, where you state the desired outcome as opposed to describing how to get there step-by-step. To only apply this to a CI/CD pipeline would be a loss for all the other fields of work where fast delivery, repeatable process steps and more predictable outcome are becoming game changers. One of the best examples is of course data analytics, a field of work which has always benefited of automation and in which a lot of processes for mining, cleaning and analyzing data, have been automated. Now that the tools and data sets are becoming widely available it's important to have an IT strategy ready which makes use of cloud native delivery models of IT functionality.
Working at high speed and large scale
When you're not able to scale-up fast enough this can become a real world bottleneck in business performance. Simple examples of scaling call centers during add-campaigns or the degrading responsiveness of customer registration systems during such peaks, can make or break a successful add-campaign. While targeting your potential customers, you do want run all the simulations and analysis you need to make campaigns more focused and deliver a conversion potentially factors higher. This depends in most cases on your ability to easily scale and adept. Not just on the web-front-end performance side, where a lot of the Cloud Native traditionally focused on, but also on data analytics and back-end performance side, which were traditionally already the fields where automation and repeatability were applied at scale.