Geek Logbook

Tech sea log book

Introduction to AWS Identity and Access Management (IAM)

Theory Users must be authenticated before they can access AWS services and Resources.  AWS services can be accessed via You can create: By default, your users can’t access anything in your account. You need to granted permissions by creating a policy. Steps: IAM policies may also be assigned to an IAM Role. A role does

Understanding Distributed System – Maintainability

Introduction It’s widely recognized that the bulk of software costs arise after its initial development in maintenance tasks like bug fixes, feature additions, and day-to-day operation. Therefore, it’s crucial to build systems that are easy to modify, extend, and operate, ensuring they remain maintainable over time. Robust testing, including unit, integration, and end-to-end tests, is

Understanding Distributed System – Resiliency

Introduction Chapter 24 – Common Failure Causes Chapter 25 – Redundancy Redundancy, the replication of functionality or state, is a critical defense against failures. When replicated over multiple nodes, functionality or state can be maintained even if a node fails. This redundancy not only enhances availability but also enables horizontal scaling, as discussed in Part

Understanding Distributed System – Scalability

Introduction Scaling an application involves maintaining performance as load increases. The long-term solution for increasing capacity is to architect for horizontal scalability. In this section, we’ll explore scaling a simple CRUD web application called Cruder, consisting of a single-page JavaScript application communicating with an application server via a RESTful HTTP API. The server uses local

Understanding Distributed System – Coordination

Introduction Our ultimate goal is to build a distributed application consisting of a group of processes that gives its users the illusion they are interacting with one coherent node. While achieving a perfect illusion may not always be possible or desirable, some degree of coordination is always needed to build a distributed application. Chapter 6

Understanding Distributed System – Communication

Part I – Communication Introduction Interprocess communication (IPC) is fundamental to distributed systems, enabling processes to exchange data over networks. This communication relies on agreed-upon rules, which are specified by network protocols. Protocol Stack Network protocols are organized in a stack, with each layer building on the abstraction provided by the layer below. Lower layers

On Undertanding Programs – Dijkstra

In my life I have seen many programming courses that were essentially like the usual kind of driving lessons, in which one is taught how to handle a car instead of how to use a car to reach one’s destination. My point is that a program is never a goal in itself; the purpose of

Testing, Computers and society in Notes On Structured Programming

The computer scientist Dijkstra, has some strong opinions about tesing, the art of programming and the impact of the computer in the society. Let’s take a second to read the opinion he wrote in Notes on Structured programming My conclusion is that it is becoming most urgent to stop to consider programming primarily as the

Understanding Distributed Systems – Introduction

Chapter 1: Introduction In the realm of modern technology, the need for distributed systems has become increasingly apparent. But why invest time and resources in building such intricate infrastructures? Chapter 1 sets the stage by addressing this fundamental question—Why do we bother building distributed systems in the first place? 1.1 The Imperative of High Availability

FTP and SFTP – Running through a Container

Running an FTP server using docker is really easy. In fact, you can use it running the following image: atmoz/sftp – But, at the end we want to know what is and FTP and why is it worth to know a little about it. As Bhusahm said, the mail objective of the kind of protocol