Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
rajp152k committed Aug 20, 2024
1 parent 74c18d9 commit 2ec06aa
Show file tree
Hide file tree
Showing 13 changed files with 174 additions and 31 deletions.
1 change: 1 addition & 0 deletions Content/20230717162224-concurrency.org
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@

* Major Flavors
- [[id:3b44673f-5e7c-4b96-8ef2-1d68f5131173][Actor-Model Computation]]
- [[id:0458f827-5634-41e0-b261-dfc5cb2d2389][CSP: Communicating Sequential Processes]]
5 changes: 5 additions & 0 deletions Content/20230717162257-parallelism.org
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,8 @@
#+title: Parallelism
#+filetags: :programming:

Parallelism implies the simultaneous execution of multiple independent processes.

[[id:618d0535-411d-4c36-b176-84413ec8bfc1][Concurrency]] describes the composition of independently executing processes : not saying anything regarding when these will be executed.

Concurrency is not parallelism.
1 change: 1 addition & 0 deletions Content/20230815212630-questions.org
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@

** [[id:cb550473-6804-4066-b492-0f007e6c2dd1][What is worth Learning?]]
** [[id:20231112T081124.213227][What-would-X-read?]]
** Why is fun not an eternal pursuit but something that comes up on and off?
28 changes: 22 additions & 6 deletions Content/20231227155636-development.org
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,33 @@
#+title: Software Engineering
#+filetags: :meta:programming:

* Misc Concepts
** Application Dependencies
- conceptual generalizable example in the case of python
- https://www.fullstackpython.com/application-dependencies.html
* Misc Index
** Dependencies
:PROPERTIES:
:ID: 4a17f01a-8000-40d0-bf4d-46da6cdacc1d
:END:
Given a Dependency [[id:179b5b39-234a-4d0c-afde-c3b81409760c][Relationship]], like:
- A -> B -> C
#+begin_src lisp
(depends-on A
(depends-on B
C))
#+end_src
- with "->" signifying "depends on" ..
- upstream and downstream helps relatively address dependencies.
- A is an upstream dependency of B
- B is an upstream dependency of C
- A is a [[id:40f40ce6-c25f-4076-ac32-b69dbb5a3b4a][transitive]] upstream dependency of C
- A (C) is the most (least) upstream dependency
- C (A) is the most (least) downstream dependency
** [[id:038e3720-0307-41d8-bcb1-e77b75a161df][Version Control]]
** [[id:54978664-78a5-4c2c-ae33-c4e6a14d6bb0][Microservices]]
* Practical Aspects
** Environments
- Development
- [[id:17d78466-2fcc-47aa-af20-9b74d94c96bb][Testing]]
- Production
* Methodologies
** The Twelve Factor App
:PROPERTIES:
:ID: 7a450c24-000e-4262-8632-b07f8a4d1df9
:END:
- https://12factor.net/
14 changes: 10 additions & 4 deletions Content/20240205171209-go.org
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@
#+title: Golang
#+filetags: :golang:

* Basics
** Project Setup
*** Modules
* Stream
** 0x22AB
- finished "Let's Go"
- will do "Let's Go Further sometime down the lane"
- getting into "Cloud Native Go" now though
- will soon start with open source contribs in the CNCF landscape
- The concurrency model of golang :[[id:0458f827-5634-41e0-b261-dfc5cb2d2389][CSP-Concurrency]]

** 0x2273
- another book : software engineering in golang
- another book : let's go
Expand All @@ -19,7 +23,9 @@
** 0x21E7
- starting out with go to get into cloud native applications and rewriting a product
* Resources
** BOOK: building an orchestrator in golang
** BOOK: Building an orchestrator in golang
:PROPERTIES:
:ID: 3af62b5f-3c13-40c8-a912-18a94b7cb175
:END:

** BOOK: Cloud Native Go
56 changes: 50 additions & 6 deletions Content/20240219144517-system_design.org
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,6 @@
#+title: System Design
#+filetags: :cs:

* Quick Links
** Latency numbers every programmer should know
:PROPERTIES:
:ID: 2dca77bf-c105-407f-8afc-289716ea79d5
:END:
- https://colin-scott.github.io/personal_website/research/interactive_latency.html
* Abstract

This node cluster references all the technicalities that go into designing a system - this should as a good rounded tour of the practical aspects of computer science.
Expand All @@ -18,3 +12,53 @@ An important aspect of system design is to be able to handle all the users that

System design is a problem oriented and not just limited to generical theoretical design patterns.

* Major Aspects
** Scalability
:PROPERTIES:
:ID: 56dbce77-b258-4fde-a6c7-f865e476c879
:END:
- the ability of a system to continue to behave as expected in the face of significant upward or downward changes in demand.
*** Types
**** Vertical Scaling
- altering the hardware resources already allocated to a server.
- straightforward but limited extensibility
**** Horizontal Scaling
- altering the number of servers serving the application
- more complex but greater flexibility
*** Enablement
- have services with their state management decoupled from the act of serving.
- see [[id:a3d0278d-d7b7-47d8-956d-838b79396da7][Distributed Compute]] i.e. distributing state between service replicas.

** Loose Coupling
:PROPERTIES:
:ID: adaf5bfa-48f9-415b-893e-7398b10f383e
:END:
- the system property and design strategy in which a system's components have minimal knowledge of any other components.
- internal changes to one don't demand changes in the other
- web servers and web browsers for instance are loosely coupled given both have certain guarantees.
*** Enablement
- Having a [[id:11d303f1-d337-4f51-b211-db435a9f2cd0][Protocol]] allows standardizing the input expectations and output assurances of a component.
- These may be addressed as [[id:11d303f1-d337-4f51-b211-db435a9f2cd0][Interfaces]] as well.
** Resilience
:PROPERTIES:
:ID: b24fb743-99bb-4e1a-b4a4-3b81c9677360
:END:
- see [[id:20240519T162542.805560][fault tolerence]]
- the measure of how well a system withstands and recovers from errors and faults

** Manageability
:PROPERTIES:
:ID: 2cd51b23-f253-40e2-8c5d-6f2924ca484d
:END:
- the ease with which a system's behaviour can be modified to keep it secure, running smoothly, and compliant with changing requirements.
** Observability
:PROPERTIES:
:ID: 3913909e-2b8d-465c-8303-5c634bd08f57
:END:
- the measure of how well a system's internal states can be inferred from knowledge of its external outputs.
* Quick Links
** Latency numbers every programmer should know
:PROPERTIES:
:ID: 2dca77bf-c105-407f-8afc-289716ea79d5
:END:
- https://colin-scott.github.io/personal_website/research/interactive_latency.html
1 change: 1 addition & 0 deletions Content/20240219151152-protocol.org
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
:PROPERTIES:
:ID: 11d303f1-d337-4f51-b211-db435a9f2cd0
:ROAM_ALIASES: Interface
:END:
#+title: Protocol
#+filetags: :meta:
Expand Down
8 changes: 8 additions & 0 deletions Content/20240501193140-client_server_architecture.org
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@
- Distributes the operation of an application in terms of the providers of the service i.e. [[id:bf1a5d71-d05c-4948-bf72-7991a1ed676c][Server]] (mostly a server farm) and the requesters of a service i.e. the clients (usually larger than the number of servers)
- the transfer of requests and responses is done over a [[id:a4e712e1-a233-4173-91fa-4e145bd68769][Computer Network]]
- Given the generic nature of the model described above, this gives rise to several abstractions needed to facilitate coms depending on several factors (scale, security, fault tolerance being some initial ones that come to mind)
* Basic Layers
** Presentation Tier
- end users operate via this
** Business Logic Tier
- Web + Application Servers go here
- These are clients to the Data Management tier
** Data Management Tier
- The [[id:2f67eca9-5076-4895-828f-de3655444ee2][Database]] Servers serve the business logic tier
* Relevant Abstractions and notes
- [[id:0d7c2dea-a250-4380-b826-ad4d2547d8d6][Load Balancing]]
- [[id:7bff6f16-de9c-4c0d-a9a1-b27e3da6725f][Reverse Proxy]]
Expand Down
44 changes: 29 additions & 15 deletions Content/20240726181733-cloud_native.org
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,20 @@ Cloud native refers to designing, developing, and operating applications that op

The Projects sub-node in here hosts an index into tooling that I've enqueued for exploration.

* Canonical Layers to Cloud-Native
*** Provisioning
*** Runtime
*** Orchestration and Management
*** App Definition and Development
* Ancillary Pillars to Cloud-Native
*** Observability and Analysis
*** Platform
All the major practical components of the cloud native landscape (as of 0x22AB) are being developed in [[id:ad4ba668-b2ec-47b1-9214-2284aedaceba][Golang]] : initializing exploration of the same directed towards my intentions of contributing competently in the CNCF landscape.

* The Path to Cloud Native
- The primary incentive so far pushing the evolution of computing services has been the pressure to [[id:56dbce77-b258-4fde-a6c7-f865e476c879][scale]].
- 1950s : about the [[id:b72d3ca3-53fa-4a97-964f-cbc1a8d612a4][mainframe]] computer with all the [[id:a8cbf516-055a-4ef7-9afe-7a780bda52ab][logic]] and [[id:d45dae92-5148-4220-b8dd-e4da80674053][data]] residing together as one [[id:5be3075a-d718-4f44-b031-4df5547423a2][monolith]].
- 1980s : [[id:a4e712e1-a233-4173-91fa-4e145bd68769][networks]] of personal computers encouraged some changes. Some application logic could be off-loaded to these PCs (partioning into the [[id:e944d11b-ba53-4dc1-aee9-3793f59be8ac][Client-Server Architecture]]) : the first major move towards decoupled services.
- 1990s : the dotcom rush led to explosion of (SaaS) [[id:cbcb26f4-dd24-4f59-8003-25573a7cd034][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 [[id:54978664-78a5-4c2c-ae33-c4e6a14d6bb0][Microservices]].
- 2000s : AWS popularized (IaaS) [[id:de6e9e57-6ba8-4d37-8e62-1a2c2327b275][Infrastructure as a Service]] : yielding the initiation of the term [[id:bc1cc0cf-5e6a-4fee-b9a5-16533730020a][Cloud Computing]].
* Important Terms (checkout [[id:314236f7-81ae-48b7-b62b-dc822119180e][System Design]])
** [[id:56dbce77-b258-4fde-a6c7-f865e476c879][Scalability]]
** [[id:adaf5bfa-48f9-415b-893e-7398b10f383e][Loose Coupling]]
** [[id:b24fb743-99bb-4e1a-b4a4-3b81c9677360][Resilience]]
** [[id:2cd51b23-f253-40e2-8c5d-6f2924ca484d][Manageability]]
** [[id:3913909e-2b8d-465c-8303-5c634bd08f57][Observability]]
* CNCF (Cloud Native Computing Foundation)
:PROPERTIES:
:ID: 56e931a4-16af-4eba-bcd0-c8f0b9566153
Expand All @@ -35,8 +41,16 @@ The CNCF is a vendor-neutral open source community that fosters the adoption and

- [[id:58ea31e4-95ae-4c25-b475-c8686fe23817][Automated]]: Infrastructures and pipelines are managed declaratively and automated.

* Projects
** [[id:58ea31e4-95ae-4c25-b475-c8686fe23817][Devops]]
** Canonical Layers to Cloud-Native
**** Provisioning
**** Runtime
**** Orchestration and Management
**** App Definition and Development
** Ancillary Pillars to Cloud-Native
**** Observability and Analysis
**** Platform
** Projects
*** [[id:58ea31e4-95ae-4c25-b475-c8686fe23817][Devops]]
|------------+--------------------------|
| Project | Utility |
|------------+--------------------------|
Expand All @@ -46,22 +60,22 @@ The CNCF is a vendor-neutral open source community that fosters the adoption and
| [[id:c50c85ac-0b21-486f-99ac-00f325e2c43c][KEDA]] | AutoScaling |
| [[id:c2072565-787a-4cea-9894-60fad254f61d][Kubernetes]] | Orchestration |
|------------+--------------------------|
** Compute
*** Compute
|------------+-------------------|
| Project | Utility |
|------------+-------------------|
| [[id:2e953b92-6b7c-46ce-aa31-f278601ab005][Containerd]] | Container Runtime |
| [[id:320016f3-53be-4756-b9b8-3a89714ff1d9][cri-o]] | Container Runtime |
|------------+-------------------|
** Storage
*** Storage
|---------+---------------------------|
| Project | Utility |
|---------+---------------------------|
| [[id:204e8cda-5566-4828-9df8-ac362878ec3c][Rook]] | Storage |
| [[id:63dbe80a-9503-470f-94f7-af72190f35db][TiKV]] | distributed key-val store |
| [[id:731a8c2c-da51-419b-8224-774913c597e6][Vitess]] | Scalable Relational DB |
|---------+---------------------------|
** [[id:a4e712e1-a233-4173-91fa-4e145bd68769][Networking]]
*** [[id:a4e712e1-a233-4173-91fa-4e145bd68769][Networking]]
|---------+----------------------|
| Project | Utility |
|---------+----------------------|
Expand All @@ -72,7 +86,7 @@ The CNCF is a vendor-neutral open source community that fosters the adoption and
| [[id:2f89e95e-9bfa-4762-a5f1-b1caae1f364b][lstio]] | Service Mesh |
| [[id:bb7b9374-8773-45f5-992d-c969d7cbded2][LinkerD]] | Service Mesh |
|---------+----------------------|
** Security
*** Security
|-------------------+------------------------|
| Project | Utility |
|-------------------+------------------------|
Expand All @@ -82,7 +96,7 @@ The CNCF is a vendor-neutral open source community that fosters the adoption and
| [[id:c96bc90b-0f7e-4943-803e-916fcd036c19][Spire]] | Key Management |
| [[id:a1a26817-85fe-481b-b41e-659502094361][TUF]] | Update System Security |
|-------------------+------------------------|
** Meta
*** Meta
|------------+---------------------|
| Project | Utility |
|------------+---------------------|
Expand Down
5 changes: 5 additions & 0 deletions Content/20240819102721-mainframe.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
:PROPERTIES:
:ID: b72d3ca3-53fa-4a97-964f-cbc1a8d612a4
:END:
#+title: MainFrame
#+filetags: :computer:
5 changes: 5 additions & 0 deletions Content/20240819102849-monolith.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
:PROPERTIES:
:ID: 5be3075a-d718-4f44-b031-4df5547423a2
:END:
#+title: Monolith
#+filetags: :cs:
27 changes: 27 additions & 0 deletions Content/20240819105506-relationship.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
:PROPERTIES:
:ID: 179b5b39-234a-4d0c-afde-c3b81409760c
:END:
#+title: Relations
#+filetags: :math:

* Properties
** Transitivity
:PROPERTIES:
:ID: 40f40ce6-c25f-4076-ac32-b69dbb5a3b4a
:END:
** Associativity
:PROPERTIES:
:ID: 366f45b6-1942-431b-9e16-7951634ca39e
:END:
** Reflexivity
:PROPERTIES:
:ID: 0c0dbaf8-46aa-4dd6-890f-b14ea4b34b8d
:END:
** Symmetry
:PROPERTIES:
:ID: 66aded20-c17c-49d8-b30f-a08a8fce4ffd
:END:
** AntiSymmetry
:PROPERTIES:
:ID: 56422537-b8a0-4f45-8837-5698bd105c2a
:END:
10 changes: 10 additions & 0 deletions Content/20240819120650-csp_concurrency.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
:PROPERTIES:
:ID: 0458f827-5634-41e0-b261-dfc5cb2d2389
:ROAM_ALIASES: "Communicating Sequential Processes"
:END:
#+title: CSP-Concurrency
#+filetags: :golang:programming:

* Resources
- https://en.wikipedia.org/wiki/Communicating_sequential_processes
- http://www.usingcsp.com/cspbook.pdf

0 comments on commit 2ec06aa

Please sign in to comment.