Resilience: UweFriedrichsen

CS@Worcester
 

CS-343
 

Week-2

Why I chose this post

Considering the experience of the author, Uwe Friedrichsen, who is a CTO at codecentric along with years of experience. I was intrigued why he would write a blog series on the topic of resilience in software design. I figured that this would be a key concept in designing software and therefore I decided to read the blog. As I read through the blog the author mentioned concepts that we would be covering in class such as API and other new concepts such as service meshes which motivated me to read more.

Summary of the post

The author begins by defining what resilience is. He defines it as keeping correct operation in the face of unexpected events or at least recovering from them in a timely manner, while offering a gracefully degraded service in the interim. He then goes into a quick run through of how the matter of resilience was left to the operations teams in the past.

Developers would develop software with an apporach that it was running a single process on a single machine that will never fail. Nowadays, container schedulers are making sure a specified number of replicas are active, service meshes offering timeout and monitoring automatic retries along with API gateways taking care of rate limiting and failover showing that the concept is still prevalent.

Friedrichsen then shows how distributed systems came to change the whole mentality of “running a single process on a single machine that will never fail”. He explains this With an example of how batch processes took the place of data typists and eventually became overtaken due to the internet and remote procedure calls (RPC). He goes on futher to show that the increase of the number of devices in the Iot has led to an increased number of peers on the systems leading to further implementation of distributed systems. He concludes by speaking about how softwares are running 24/7 which puts more need on the dependance of distributed systems.

Reflections and application

Being the first part of the blog series, the author introduces the importance of distributed systems and shows its growth through history well. I personally learnt how important distributed systems are in running most of the softwares that we run today, conisering that fridges can now be part of the internet. As we begin the process of learning how to design software I will keep this principle in the back of my mind that resilience is important in software construction.

From the blog De Arrow's Webpage by Samuel Njuguna and used with permission of the author. All other rights reserved by the author.

Third time’s the charm… (or not?)

My previous two attempts at getting my blog aggregated to the CS@Worcester blog have failed for one reason or another! (I assume). I must, however attempt posting once more and hope that through divine intervention, the aggregator decides to pick it up this time.

This situation reminds me of a quote by the famous pirate war-lord Vaas Montenegro: “The definition of insanity is doing the same thing over and over and expecting different results.”

From the blog Zed's Blog by Lord Zed and used with permission of the author. All other rights reserved by the author.

Welcome To Sovi’s Glass Case

This marks the first post of hopefully many blogs, Hello World.

From the blog CS WSU – Sovibol's Glass Case by Sovibol Keo and used with permission of the author. All other rights reserved by the author.

Introductory Blog

Hello, im Marel Beqo, this will be where I share my progress with the rest of you as well as the helpful things that I learn along the way.

From the blog cs@worcester – Marels Blog by mbeqo and used with permission of the author. All other rights reserved by the author.

What’s glued for the goose

Hello there. This is a blog about the sticky things that keep stuff together.

Recently I had the chance to reapply a layer of GRUB, which is a kind of glue called a boot loader. When GRUB stays sticky, it will hold your hardware and software mess in a neat little bundle. But when this glue comes unstuck, the surfaces just don’t fit together the same.

GRUB is glue

My mess was quite unstuck. Turning on the hardware just kept bringing me back to the BIOS.

How is a fan of glues to restick what’s unstuck?

First, you can make a bootable USB of your flavor of operating system. When you plug it in and turn on your hardware, I recommend pressing all of the keys at the same time as fast as you can: this is the only guaranteed way to find the hidden BIOS button. After you’ve taken matters into your own hands or your computer has otherwise dropped you into the BIOS, you may have to move this little USB device higher in the boot priority.

When our hardware succumbs to the live USB, we can take a look at what partitions we have access to.

lsblk

In my case, I had a root directory partition called nvme0n1p2, and an EFI partition named nvme0n1p1. As a user of Arch Linux (no applause is necessary), the next step let me hop on over to my unbootable-from root directory.

mount /dev/nvme0n1p2 /mnt
arch-chroot /mnt

And then all that’s left to apply the glue is to mount the EFI partition and set GRUB back up.

mount /dev/nvme0n1p1 /boot/efi
grub-install --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg

Of course, no two surfaces are the same, so your journey back to the land of Adhesion may require a slightly different gluing process.

The charm of GRUB is its malleability. It’s hard to appreciate life without a few glues that fail just often enough to keep you on your toes.

From the blog CS@Worcester – Tasteful Glues by tastefulglues and used with permission of the author. All other rights reserved by the author.

Why Blogger and not WordPress

WordPress put a bunch of numbers on my “website” and wouldn’t allow me to remove it. How dare they not give me exactly what I want completely free of charge.

From the blog Zed's Blog by Lord Zed and used with permission of the author. All other rights reserved by the author.

Welcome

Welcome to my new blog. Here, I will be sharing my research and opinions on any articles on new technologies that I come across in the future.

From the blog CS@Worcester – Noelan Chabot's Blog by nchabot1 and used with permission of the author. All other rights reserved by the author.

First Post

From the blog CS@Worcester – Ryan Klenk's Blog by Ryan Klenk and used with permission of the author. All other rights reserved by the author.

Hello? This thing on?

Testing, testing! I hope this thing works!

Anyways, this is my blog! Although I have a few ideas on what I want to do with this thing, I’m a bit unsure still! Hopefully over the course of the next few weeks, I’ll find an interesting topic to run along with! For a few reasons, I’ll mostly focus on coding, but in the future, maybe I’ll explore other things outside of the computer science field!

From the blog CS@Worcester – Bored Coding by iisbor and used with permission of the author. All other rights reserved by the author.

The Start of a Beautiful Friendship

Being able to optimize software development is very important but the practice of optimizing can be a constant battle when attempting to create good software. The last class I took prior to CS-343 was CS-373, an Operating Systems course. The final project of that course had us create our own phone applications, and while it was exciting to finally work on such a project, it turned out to be very difficult in some aspects. I had the idea of creating a finance app. It was supposed to record ones spending habits throughout the coming months and weeks- planning out a minimum amount they should spend and save. I thought it was going to be very easy to implement and I wrote down ideas that the application software was going to include such as a credential screen, a colorful UI, a splash screen with the logo, etc. The idea of implementing a way of connecting actual bank accounts to gather information was also in play. Unfortunately due to my lack of experience It was hard for me to complete my vision and at the end of the day, I was only able to submit an unfinished application.

There were many reasons for such results, first off, the code was a mess. I would write countless lines of code, and the program, for being a simple finance application, took ages to write. I had to implement over 1000 lines of code just to record information like user spending and budget analytics. It was a nightmare because my only priority was to get my code to work but how the code was organized would stop me in my tracks. I would sit in front of my computer screen for hours looking for compiler errors or logic errors. It made development very frustrating. I’ve taken classes such as CS-348 which served the purpose of explaining how to completely avoid similar issues that I was having, but this project being my first big project, it proved to be a lot more difficult to make a habit of those practices than anticipated. With that being said, the purpose of this blog will be to record my software development process. Whether it be a new technique I’ve learned, a new technology that has really helped me, and whatnot.

From the blog cs-wsu – FindKelvin by Kelvin Nina and used with permission of the author. All other rights reserved by the author.