Chapter 213 Project Arrangement
Chapter 213 Project Arrangement
At exactly nine o'clock, there was a knock on the office door. Fiona poked her head in: "Boss, would you like some coffee?"
"Two cups, black coffee," Ling Yun said.
Fiona brought in two white mugs, put them down, and left, closing the door behind her.
Ling Yunqi took a sip of his coffee, without sugar or milk. Eric also took a sip, then continued reviewing the technical documents.
"The development phase is divided into three stages," Ling Yun said, walking to the whiteboard and pointing to the blank schedule on the right. "The first stage, three months, is to develop the core framework. It will support basic HTTP request processing, static file services, and reach a target of 10,000 concurrent connections."
He wrote on his schedule:
Phase 1 (December 15 - March 15): Core Framework
- Event-driven model
- Basic HTTP parsing
- Static file module
- 1 and developed standards
"The second phase," Lingyun continued writing, "will take two months to perfect the functionality. We'll add reverse proxy, load balancing, and a logging module to reach 50,000 concurrent users."
Phase 2 (March 16 - May 15): Functionality complete
- Reverse proxy
- Load balancing
- Visit Log
- 5 and developed standards
"Phase three, one month: optimization and stabilization. Load testing, tuning, documentation, and preparation for release."
Phase 3 (May 16 - June 15): Optimized Release
- Performance tuning
- Stability Test
- Documentation
- Officially released
Eric looked at the schedule and frowned slightly: "Time is tight, especially for the first phase. We need to build the framework from scratch in three months and achieve 10,000 concurrent users. The event-driven model and HTTP parsing alone will take at least two months."
"So we need to hurry," Ling Yun said. "The project team has a flexible work schedule, but we may have to work evenings and weekends during the core period, which will be reflected in bonuses and stock options."
Eric did some calculations in his notebook: "If we calculate it at ten hours a day, six days a week... technically possible, but it would be very tiring."
"If it's tough, we'll work on it for three months," Ling Yun said. "If we succeed, this product will define the web server market for the next decade. If we fail, we might miss a critical window of opportunity."
Eric didn't argue further. He wrote down several key dates next to the schedule: 12/20 Team formation completed, 1/15 Prototype demonstration, 2/28 Phase 1 acceptance.
"Team composition," Ling Yun returned to his desk, opened his laptop, and pulled up an organizational chart. "Ten people in total. You are responsible for the overall architecture and core modules. The team is divided into four subgroups."
The projector lights up, and the screen displays:
Nexus Project Team (20 people)
├── Architecture Design (Eric+ 1)
├── Events and Networks Group (8 people)
├── HTTP and Modules Group (8 people)
├── Testing and Tools Team (2 people)
"The Events and Networks group is responsible for the event-driven model, TCP connection management, and memory pools," Lingyun pointed at the screen with a laser pen. "The HTTP group is responsible for protocol parsing, module interfaces, and reverse proxies. The Testing group writes load testing scripts, performs performance analysis, and assists with debugging."
Eric stared at the screen for a while: "Do you have any suggestions for personnel allocation?"
"Yes." Ling Yun switched the slides, displaying each person's name and background. "The incident team suggested that David's Russian engineer, Andrei, be in charge. He's written low-level network libraries. The HTTP team will get someone from the Star Language team; he's familiar with the protocol. The testing team will hire someone new."
Will David release them?
"We've already talked about it," Ling Yun said. "Andrei will be coming over next week."
Eric wrote down names in his notebook and grouped them next to them. When he finished, he looked up: "What about the development environment? What toolchain are we using?"
"We'll use GCC and C language uniformly," Lingyun said. "The coding style will follow the Linux kernel, with 4-space indentation and K&R style. We'll use CVS for version control, with automatic builds every day. The test server has already been ordered and will arrive next week; it has dual CPUs and 4GB of RAM, which should be enough for initial use."
"Document standards?"
"Each module must have a design document, with at least 30% of the content being commented. Interface documentation should be generated using Doxygen. User manuals should be written separately and must be understandable to operations and maintenance personnel."
Eric made a note of it. He turned to a new page in his notebook, drew a simple Gantt chart, filled in the start and end dates of the three phases, and then marked several key milestones.
"The risk points," he said as he drew, "are that the event-driven model has the greatest stability. If there's a bug in the event loop, the entire server will crash. Extensive testing is required."
"Therefore, the testing team needs to get involved as early as possible," Ling Yun said. "Have them write automated tests to cover boundary conditions, especially memory leaks and file descriptor exhaustion under high concurrency."
How do I perform performance tuning?
"Use oprofile for sampling to find hotspot functions. Use tcpdump to capture and analyze network I/O packets. The compiled code for critical paths needs to be reviewed."
Eric nodded and marked several performance test time points on the Gantt chart.
The office quieted down, with only the scratching of Eric's writing and the occasional sound of cars outside the window.
At 9:30, Fiona knocked on the door again: "Boss, you have a meeting at 10 o'clock, a conference call with Blizzard."
"Understood," Ling Yun said.
Eric closed his notebook and stood up: "I'll put out a detailed task breakdown this afternoon and send it to you tomorrow morning."
"Okay." Ling Yun stood up, picked up a USB drive from the table, and handed it to Eric. "There are more detailed design documents and some papers I've collected about event-driven and high-concurrency architectures in here. Take a look when you have time."
Eric took the USB drive and put it in his pocket.
"Also," Lingyun said, "we'll have a project launch meeting next Wednesday, with all members in attendance. You should prepare a technical presentation."
"clear."
Eric walked to the door, put his hand on the doorknob, then stopped and turned back: "Boss."
Lingyun looked up.
"This project," Eric said, "if it succeeds, Star System will have a place in the server market. But if it fails..."
"It won't fail," Ling Yun interrupted him.
Eric looked at him, nodded a few seconds later, opened the door and went out.
The office fell silent again. Ling Yun walked to the whiteboard and looked at the schedule. He picked up a red pen and drew a small asterisk next to "Officially Released".
Then he erased all the writing on the whiteboard, leaving only the asterisk.
The sunlight streamed in through the window, casting bright patches of light on the oak floor.
The 10 PM conference call is to discuss Battle.net expansion with Blizzard. They can't wait six months and may request a temporary solution first.
A temporary solution...maybe we can create a simplified version that only handles long-lived connections and get through these next few months.
He walked back to his desk, opened his laptop, and created a new document. Title: "Nexus Lite – Temporary Solution".
He placed his fingers on the keyboard, paused for a moment, and then began typing. He thought of the server that would later be called Nginx. In 1997, it hadn't even been born yet. Its author, Igor Sysoev, was probably still writing code at some company in Russia.
But we couldn't wait until 2004. The internet was developing faster than we remembered, and the demand was already emerging. Whoever solved the problem first would seize this crucial position.
He turned and walked back to the whiteboard, looking at the six development goals. Then he picked up a red pen and drew two horizontal lines under "High concurrency processing capability".
50,000 concurrent users is just the beginning.
In the future, the internet will see tens of millions of people simultaneously online shopping, hundreds of millions of concurrent message pushes, and real-time interactive global live broadcasts. That world needs new infrastructure.
What Xingchen needs to do is build it in advance.
He erased all the writing on the whiteboard, packed his things, and left the meeting room.
In the corridor, several engineers were gathered together discussing StarCraft tactics. When they saw him, they stopped to greet him.
"President Ling."
Ling Yun nodded, then paused as she walked past: "Is Eric in his office?"
"Yes, I just got back."
"Have him come to my office in half an hour. Bring people from the kernel team and the network team with him."
"OK."
Lingyun continued walking forward. As he passed the area where the Xingyu team was located, he heard someone complaining, "Apache crashed again. During the morning peak, two hundred connections were lost."
"What should I report in my journal?"
"Insufficient memory, fork failed."
"It needs to be restarted."
It's restarting.
The demand is there; it's real and urgent.
Now, we need to address this issue.
HCB