You pull up your next task from the backlog. "Add an API call to the new widget micro service". Easy mode, you'll have it done before the end of the day. Confident in your solution, you run the program and time the response. Five seconds! That's going to kill our conversion rate! Could it be something on the network causing it? What's between my laptop and that API anyways?
I've always loved learning how systems worked and got an early start with systems administration and computer networking while I was still in college. I am putting together this blog series for folks that may have not been directly exposed to the topic like I have. Folks that are skilled programmers and software engineers, but consumed abstractions built by infrastructure and platform teams without having to engage with key networking concepts during their normal course of work.
The growth of cloud services and distributed systems has increased the complexity of networks and not having a basic understanding of what's happening can significantly impact someone's ability to understand their system's behavior.
Networking plays a key role in a number of spaces including performance, reliability, security, and scalability. As new systems are designed and implemented, it is important to understand how the network model of the application may impact it.
Enterprise networking adds a significant amount of scale and complexity. While your personal Wi-Fi network at home may only have 10-20 devices, enterprise networks easily number in the 10s of thousands if not larger. Think of building a network, not just for your home, but for a skyscraper, or maybe even a city block. It's likely not all those devices should talk to each other. Consider just some of the challenges this presents. At your company is there multiple physical sites (offices, branches, data centers, factories, etc) to consider? Does the company have a cloud presence? Are there SaaS services involved? Can users work remotely?
Are you ready to become a more well-rounded software engineer with networking superpowers? The next blog post will explore the network layers of the networking stack that power the APIs and interfaces you use every day such as IP, TCP, HTTPS, and DNS and we'll build on that knowledge in future posts.
Top comments (0)