cloud native
Table of Contents
Cloud native refers to designing, developing, and operating applications that optimize cloud computing platforms' features and capabilities.
I plan to extensively explore the ecosystem and understand the potential trajectory of modern computing and its future:
The Projects sub-node in here hosts an index into tooling that I've enqueued for exploration.
All the major practical components of the cloud native landscape (as of 0x22AB) are being developed in Golang : initializing exploration of the same directed towards my intentions of contributing competently in the CNCF landscape.
1. The Path to Cloud Native
- The primary incentive so far pushing the evolution of computing services has been the pressure to scale.
- 1950s : about the mainframe computer with all the logic and data residing together as one monolith.
- 1980s : networks of personal computers encouraged some changes. Some application logic could be off-loaded to these PCs (partioning into the Client-Server Architecture) : the first major move towards decoupled services.
- 1990s : the dotcom rush led to explosion of (SaaS) Software as a Service. The associated logistics of operating (develop, deploy, maintain) such a service began to get complex. This further encouraged the decoupling of the business layer in the Client Server architecture into multiple Microservices.
- 2000s : AWS popularized (IaaS) Infrastructure as a Service : yielding the initiation of the term Cloud Computing.
2. Important Terms (checkout System Design)
2.1. Scalability
2.2. Loose Coupling
2.3. Resilience
2.4. Manageability
2.5. Observability
4. Cloud Native Patterns
- sourced from chapter 4 of BOOK: Cloud Native Go
4.1. context.Context
- read up : https://pkg.go.dev/context
- used to idiomatically convey, cancellation signals, deadline abstractions (timeouts), etc.
- context values are thread safe
- read up : https://dave.cheney.net/2017/01/26/context-is-for-cancelation
- also read up : https://dave.cheney.net/2017/08/20/context-isnt-for-cancellation