Technical Highlights of Cloud-native Architecture
Cloud-native, harboring great advantages, announces the trend of the existing IT revolution. Reshuffle in IT enterprises is inevitable once the trend is not followed.
Every structural reform in the IT industry brings both enormous opportunities and tough reshuffles. The past 30 to 40 years have seen major IT reforms, such as the shift from mainframe to minicomputer in the 1970s and 1980s, the popularity of C/S architecture in the 1990s, and the rise of the Internet in the early 21st century. IT giants such as IBM, Cisco, Hewlett-Packard, Oracle, EMC, and SAP gradually came into being.
A common feature underlines all these reforms: Shakeup is doomed for any software or hardware enterprise that goes against the tide no matter how deep-rooted its monopoly was.
In 2006, Amazon distributed powerful computing power based on the distributed operating system to millions of ordinary users through the Internet. And this online computing service is dubbed cloud computing. Cloud computing delivers infrastructure (hardware/server), storage, database, and application services as demanded through the Internet. Simply put, powerful computing power that gathers distributed operating systems is distributed to households like what we do with water and electricity. Everyone is entitled to the efficient use of this necessity. Water comes as you turn on the tap; electricity appears as you turn on the switch.
The trend has given birth to many ten-billion-dollar star enterprises such as VMware, ServiceNow, Salesforce, Shopify, and countless unicorn companies. Now at this new historical turning point, what else will cloud native create? Will digital transformation relying solely on cloud-native become a key element of future changes? Keep these in mind and let’s open the door to a new world of NetX — a decentralized chain native ecosystem spanning the whole Internet.
Cloud-native is interpreted differently by different people and organizations. Pivotal, the creator of many cutting-edge technologies and the owner of Matt Stine, defines cloud-native as follows. “Cloud native is an approach to building and running applications that fully exploit the advantages of the cloud computing model.”
I think of cloud-native as a collective concept of design, development, deployment, operation and maintenance processes, technology stack, and cultural philosophies related to cloud-native applications. It advocates the following concepts:
- Isolation: Applications packaged in containers speed up the reuse of codes and components and simplify operations.
- No lock: Open-source software stack supports deployment on any public or private cloud or in a combined way.
- Infinite scaling: Optimized for scaling to tens of thousands of self-healed, multi-tenant-node modern distributed system environments.
- Flexibility and maintainability: Applications are divided into microservices with clearly stated dependencies.
- Enhanced efficiency and resource utilization: Maintenance and operation-related cost are reduced owing to the dynamic management and orchestration process of microservices scheduling.
- Application flexibility: Applied to handle the failure of a single container or even a data center and demands from different levels.
These concepts generate a complete set of systems, upon which cloud-native applications run. These applications are uniquely designed for cloud models. Fast construction and deployment by small, dedicated teams to platforms that scale easily and enable hardware decoupling to make organizations more nimble, flexible, and movable across clouds. They manifest the following features compared with traditional architecture applications:
- Predictable: Twelve-Factor Apps that conform to a framework or “contract” designed to maximize resilience through predictable behaviors. The highly automated, container-driven infrastructure improves the way software is written.
- OS abstraction: Developers operate on the platform and abstract from underlying infrastructure dependencies. Such that, infrastructure migration and application expansion are rendered simple and safe.
- Right-sized capacity: Dynamic allocation and reallocation of resources during deployment as applications continuously require. Application lifecycle management is optimized, downtime is minimized, and expansion capability is strengthened.
- Collaborative: Cloud-native empowers DevOps, a combination of people, processes, and tools. Close collaboration between development and operation functions reduces internal conflicts and puts programmed application codes into production quickly and smoothly.
- Continuous delivery: Individual software is updated and ready for release once the IT team is all set. Fast-releasing software organizations enjoy a compact feedback loop and respond to customer needs more effectively. Corporations become more competitive as their income increases.
- Independent: Microservices architecture decomposes applications into small, loosely coupled independently operating services. These services map to smaller, independent development teams and make possible frequent, independent updates, scaling, and failover/restart without impacting other services.
- Automated scalability: Downtime incurred by human error is avoided as a large scale of infrastructure turns automated. Automation instills simplicity into the construction and operation of easily manageable applications as the same rule sets are applied for the deployment of various scales.
- Rapid recovery: The container runtime and orchestrator provides a dynamic, high-density virtualization overlay on top of a VM, ideally matched to hosting microservices. Orchestration dynamically manages the placement of containers across a cluster of VMs to provide elastic scaling and recovery/restart in the event of failure.