"You often think that it's easier to do it yourself, if you want it done right. Or because it takes too long to explain what to do or it's just difficult to say: 'Go do this'."
- Igor Sysoev
Standing inside a multi-billion dollar market, he prefers to stay quiet about it. But nevertheless, his product is so well-known that more than half of the top 1,000 websites are using it.
Igor Sysoev is a programmer that involves and maintains the open-source Unix-based web and mail proxy server for large scale, fast paced and content heavy websites. Nginx is the product, and it has speed in mind straight from the start.
With the internet's speed becoming faster and more reliable, Nginx has become a choice by many people for more than often.
Igor Sysoev (Russian: Игорь Сысоев) was born on September 28th, 1970, in a small town in Kazakhstan. His father was in the military and when Sysoev was around 1, the family moved to Almaty (Alma-Ata) and lived there until Sysoev was 18.
In his early age, Sysoev never been at the forefront of technology. When he was 15 years old, his youth center had just gotten its first computer, which students were keen on exploring. Sysoev saw things differently. "I thought, why the hell do I need this? But nonetheless, I went and didn’t see anything particularly interesting."
He wasn't carried away, but he did eventually put his interest on computers when he ended up seeing a game that challenged the player to calculate a flight from the Moon to Earth in a magazine for teens.
"You chose the speed and direction, and then put it into the formula to get a few numbers on a single line display. That is your position in space. The challenge is not to lose your way. It was very interesting," explained Sysoev. Since then his future was chosen.
Sysoev first experience working with computers came at the end of high school. He went to Palace of Pioneers where they had Yamaha KYBT (MSX standard) computers. Sysoev started coding and created his first program.
He finished school in 1987 and tried to get into Bauman Higher Technical School, but didn’t succeed on the first try. Sysoev returned to Alma-Ata to work as a lab assistant in a branch of the Institute of Advanced Training of the ministry of Geology of the USSR. They had old "Iskra (spark)-226" computers. Using them, he started programming in BASIC.
At the same time, the magazine “Radio” had a series of articles about how to build DYI computer "Radio-86PK” and with those articles, Sysoev got a pretty decent understanding about how computers are put together and how they work.
Sysoev first independent program was antivirus "AV" which he created in 1989-1990. It was written completely in assembler and had about 100KB lines of code. It could detect some viruses because it had a built-in database with a few virus signatures that were popular at the time in the USSR. It spread around the country and was even used in a couple of factories. Sysoev got some feedback: people sent him envelopes with disks that had viruses on them. He kept supporting the AV program for a while, but around 1992, he lost interest and the program died.
Sysoev graduated from Bauman Moscow State Technical University in 1994, with a Bachelor on Computer Science. Since graduation he has lived in Moscow.
He started working as a system administrator for a year in a company that was in an oil trade market. He worked there for almost 7 years until deciding to leave in April of 2000. This was when NASDAQ crashed and the internet bubble burst. He decided to join the internet right at this time by working a half year for an e-commerce site xxl.ru and joined Rambler on November 13th, 2000.
The Idea For Nginx
During his time at Rambler, Igor Sysoev started programming in his spare time as it wasn't part of his responsibility in the company. He did it when he had time, and also because of his desires.
At first, he adapted a patch for compressing Apache responses. Unfortunately,
mod_gzip was already taken, so he called his own version of
mod_deflate ans saw it compatible with Apache 1.3. Then he was asked to take a look at the
mod_proxy module. After spending some time with it, He decided that it was going to be simpler to write something from scratch, rather than try to adapt the existing code.
This was when the
mod_accel module was created. This was in the spring of 2001. And in the fall of 2001, Sysoev got an idea about writing a lighter and better performing web server than Apache, because he wanted to solve the C10K Problem.
C10K is a problem which network sockets can't handle a large amount of clients at the same time. C10K means the problem to handle then thousand connections. Sysoev saw the problem of socket server optimization that involve a combination of operating system constraints and the limitation of web server software.
"In particular, the difficulties of handling many concurrent connections, reducing latency and offloading static content, SSL and persistent connections were my main interest."
In order to do a multi-process with multi-threading, a number of factors must be considered to allow a web server to support many clients.This involves considerations regarding memory management and strategies implied related to the very diverse aspects of the I/O management.
At the time, the internet was growing at a very fast pace. From 1990 to 2000, the number of users increased about 260 times. Add to that the increased activity of each of those users, many websites couldn't handle the load and programmers were puzzled about how to stop their websites from crashing.
Sysoev began development of Nginx (pronounced "engine x") in 2002. He designed Nginx from the ground up to use an asynchronous and non-blocking, event-driven connection handling algorithms. To handle large amount of request, Nginx uses worker processes with each having the ability to handle thousands of connections.
By implementing a fast looping mechanism, Nginx can continuously check and process events. Since each Nginx workers can work by itself, it only need a connection when an event has been triggered.
Nginx's modular event-driven architecture is able to provide more predictable performance under high loads. And its speed was also partially driven by the fact that it was developed to support websites that had dial-up users.
In 2003 people outside of Rambler found out about his project and more websites started using Nginx. The first one was an Estonian site Rate.ee, then followed by mamba.ru and zvuki.ru.
On that same year, Rambler started offering a foto.rambler.ru service and one of Sysoev's colleagues, Oleg Bunin, asked him to add proxy functionality so that it could be used for Rambler's photo service. Before then, the project was mostly academic.
"I was developing it slowly and perhaps it would have never been used in production. So, I added proxy functionality and sometime in the beginning of 2004 a proxy version was released and foto.rambler.ru was powered by nginx. On October 4th, 2004, on the anniversary of the first space satellite, I released the first public version: 0.1.0."
When it was officially released in 2004, Nginx was meant to fill the needs of websites. As for Rambler at that time, it was struggling to serve more than 500 requests per day.
During the first year, Nginx was mostly popular in Russia. Later on people outside the country found out about Nginx and some enthusiasts started using it on their own.
"My mailing list got an English version, various resources popped up that started describing it, and I started receiving wishes and comments from people. I started adding improvements and fixes and the product slowly gained popularity."
Sysoev was joined by two others and founded NGINX, Inc. in July 2011 to provide commercial products and support for the software. Sysoev who has years of experience in web server and technical roles, became its Chief Technology Officer and Principal Architect. Sysoev is also the main shareholder of the company.
Entering The Competition Against Apache
Nginx is frequently compared with Apache, another web server. Apache is able to distribute resources so as to simultaneously serve a lot of users. But after several years, websites that began to see huge amounts of traffic saw Apache alone was no longer enough. As a result, web owners bought new and more powerful servers.
Nginx uses much less memory than Apache, and can handle about many times more requests per second. This ability has a disadvantage: Nginx has a decreased flexibility and no built-in features to override systemwide access setting like Apache with
htaccess file. However, Nginx can be compiled with third-party modules.
Apache is still the most popular web server in the world, but Nginx is catching up very quickly.
Since Nginx excels in speed and efficiency, the web server is used by more than 50 percent of the top 1,000 websites in the world as of 2017. Nginx is followed by Apache, Google Servers, Microsoft-IIS and LiteSpeed.
Igor Sysoev is seen as a hero for many programmers for years. He saw Apache's limit in a close and personal way, but quite modest when comparing Nginx with Apache or any other web servers.
This is reflected from Sysoev character: he is more of an engineer than a salesman or a businessman. That is one of reason why he dislikes publicity. To many people, he is best described as the perfect opposite of the typical engaging and persuasive startup pioneers.
Before co-founding NGINX, Inc., Sysoev worked on his own with an ambitious goal. He prefer focusing on a problem and try to get the answer before venturing to other places. As he described it: "I rarely change my life direction: for example, [before] Rambler, I spent seven years working for a company, [and at] Rambler, I also worked for ten years. Change is hard for me."
Sysoev puts off starting a company until he realized that there was just too much work for him to do alone. Sysoev and his team are based in Russia despite having U.S. investors.
His modesty as a CTO is also because he realized that he didn't know how to lead people. Sysoev wants NGINX, Inc.to remain small. "To grow the company of several hundred people, we do not want."
Nginx is a fully functional free and open-source web server under the 2-clause BSD license. As a for-profit company, NGINX, Inc relies on selling commercial extensions that target companies that demand more commercial-grade features that aren't normally available in any existing open-source products. NGINX, Inc. is also targeting enterprise market as this type of customers often require both technical support and license payments, while fully appreciating the open source nature of the foundation product.
Sysoev is an adviser to Jelastic since October 2011.