What is infrastructure ?
Infrastructure is all the software and hardware that supports applications . It mainly includes :
What is cloud native architecture ?
The evolution of cloud primordial
Physical servers
In the early days of the Internet , Web Infrastructure starts with physical servers , Early servers were large 、 It's noisy and expensive , And it requires a lot of power and manpower to maintain operation .
also , Physical servers can lead to waste , When the same server maximizes the use of multiple applications , Software conflicts 、 Network routing and user access have become more complex .
And then there was
Hardware virtualization .
virtualization
Is virtualization the simulation of physical server hardware in software , Virtual servers can be created as needed , It can be programmed in software , As long as you can simulate hardware , It will never be out of date . Using virtualization can increase the portability of programs .
The problem of virtualization is virtual machines (VM) Hardware is required to run , Companies still need the people and processes needed to run physical servers , But now capacity planning becomes more difficult , and VM You must also consider the cost .
IaaS
Infrastructure as a service (IaaS) Provides the original network 、 Storage and Computing , Customers can consume according to their needs . It also includes support services , Such as identity and access management (IAM), Supply and inventory system .
This approach allows companies to get rid of all hardware , Rent from cloud providers VM Or physical servers , Save labor and maintenance costs . This managed infrastructure also provides customers with usable HTTP Application programming interface (API), For creating and managing infrastructure based on requirements .
It is worth noting that , Running your infrastructure in the cloud does not make your infrastructure a native cloud .IaaS Infrastructure management is still needed .
PaaS
Platform as a service (PaaS) Hide the operating system from the application ,PaaS The infrastructure is managed by the platform provider . This way reduces the application development cycle , And it can be effectively managed on the platform .
However ,PaaS The platform is not enough to meet all business needs , Sometimes it is necessary to restrict the language running environment 、 Libraries and features .
Cloud native infrastructure
As mentioned above , In the traditional design environment , You connect the database to the module , These modules will work with API or Web Application connection , Then we can contact the consumers .

But as the company changes , The application has also changed . Every small change to the module will have a chain reaction to everything else . as time goes on , The whole project is so complicated , So that no one ( Including you ) Really understand it .

“ Cloud native ” Is an abused word , Cloud native infrastructure is the infrastructure hidden behind useful abstractions , also API control , Managed by software , The goal is to run the application . Use these features to run the basic implementation , Is to use extensible 、 A new model for managing infrastructure in an efficient way .
The cloud's native infrastructure needs to abstract the underlying IaaS Products form a layer of abstraction , The new layer is responsible for controlling the IaaS, And show yourself API Let users control .
Cloud native components
Use cloud native architecture , Your design will consist of many small parts that work together . You can change 、 Add or replace a , Without destroying the whole system . Cloud native architecture components include :

Containers
It's a standard software unit , It packages the code and all its dependencies , So that applications can run quickly and reliably from one computing environment to another . Docker Container mirroring is a lightweight 、 independent 、 Executable packages , Including everything you need to run your application : Code 、 Runtime 、 System tools 、 System library and settings .
Microservices
Divide clear functions into smaller Services , And let each service iterate independently . Using microservices makes it easier to change the agility of applications as needed . Each microservice can be managed by different teams , Write... In the right language , Adjust independently according to needs .
Service Grid
(Service Mesh) It is a dedicated infrastructure layer for handling communication between services . It is responsible for delivering requests reliably through a complex service topology that includes modern cloud native applications . actually , Service grid is usually implemented through a set of lightweight network agents , These agents are deployed with the application code , Without having to be aware of the application itself . —— Willian Morgan Buoyant CEO
The term service grid is often used to describe the microservice networks that make up these applications and the interactions between applications . As scale and complexity grow , Service grid is becoming more and more difficult to understand and manage .
Immutable infrastructure
Inside “ immutable ” Very similar to... In programming “ immutable ” Concept . In programming , Immutable variable (Immutable Variable) That is, you can't change it after the assignment , You can only create new ones to replace the old ones as a whole . Because of this feature, this variable can be used safely in concurrent environment . For the immutability of infrastructure , Basically, it refers to the server running the service after deployment , No more changes .
declarative API
Just submit a defined API Object to “ Statement ”( This YAML Documents are actually a kind of “ Statement ”), Indicates the desired final state .
Advantages and disadvantages of cloud native architecture
Cloud native architecture
advantage
Include :
The cost is low .
Build in a standard environment , Your system must always be open to serve customers . Select cloud , You can turn your attention to new features and products .
As the analyst explained , If the traditional system fails , You will connect with customers . Select cloud , You can save money and reputation by improving flexibility and preventing disruption .
Speed .
In an agile workplace , You must always test 、 Move and improve . If every change you make could damage your system , Then it's hard to do .
Build for the cloud , You will create a system built for continuous change . It's easier to enhance and launch applications in the cloud .
Cloud native architecture
shortcoming
Include :
Difficult to debug .
Finding problems in traditional system architecture means following a linear plan . In cloud native design , Containers can interact and connect . But the road may not always be clear . Some problems are rooted in one or more containers , Finding problems is not always easy .
Security .
Relying on third-party cloud operators means giving up control over data and access . Sometimes , These companies are not as careful about data as you are .
Knowledge barrier .
Writing in a cloud native way is a bit like learning a new language . You must master the concept and perfect your method , A small mistake can lead to catastrophic problems .
Reference link :
Cloud-Native Architecture: A Guide, Definitions, Types & More
原网站版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/201/202207182328468494.html