자신의 도메인 이름으로 블로그를 시작할 때 $4 도메인 이름에 걸맞게 첫 번째 게시물이 좀 더 중요해야 합니다. 10년 동안 기술 실무자로서 10년 동안 방황한 끝에 단서를 정리하려면 전 세계를 돌아다니며 읽어야 할 지식이 있다는 것을 처음부터 체계적으로 설명하겠습니다. 수천 명의 방문자가 방문하는 작은 웹사이트나 하루에 100만~200만 명의 방문자가 방문하는 작은 웹사이트가 기술적인 문제 없이 이 단계를 원활하게 통과할 수 있습니까? 기술을 이해하십시오.
인터넷을 아는 사람은 누구나 자신만의 생각이 있고, 어떤 사람은 그 생각을 실천에 옮겨 웹사이트를 구축하고 운영을 시작하기도 합니다. 사실, 순수한 웹사이트 기술적인 관점에서 볼 때, 오픈소스 모델의 발전으로 인해 이제 소규모 웹사이트를 구축하는 것이 매우 쉽고 저렴해졌습니다. 방문 횟수가 일정 수준에 도달하면 비용이 치솟기 시작하고 문제가 나타나기 시작합니다. 대역폭 증가, 하드웨어 확장, 인력 확장으로 인한 비용 증가는 명백하며, 비용의 상당 부분이 코드 재구성, 아키텍처 재구성, 심지어 기본 개발 언어의 교체로 인해 발생한다는 점입니다. 가장 큰 문제는 데이터 손실입니다. 몇 년 동안 열심히 일한 후 하룻밤 사이에 사업을 시작하기 전으로 돌아갈 수 있습니다.
비용을 줄이는 것은 이익을 늘리는 것을 의미합니다. 처음부터 좋은 기초를 다지면 앞으로 많은 에너지와 걱정을 줄일 수 있습니다.
당신이 사업을 시작하는 데 관여하는 기술 담당자이고 현재 파산했다고 가정해 보십시오. 모든 것을 스스로 해야 하고 비용을 직접 지불해야 하며 특별히 복잡하지 않은 응용 프로그램으로 웹 사이트를 구축하려면 수십만 달러의 초기 자금이 필요합니다. 다음 사항에 주의해야 합니다.
1. 개발 언어
일반적으로 기술자(프로그래머)가 사업을 시작할 때 기술적인 배경을 바탕으로 가장 익숙한 언어를 선택합니다. 그러나 항상 혼자서 프로그램을 작성할 수는 없다는 점을 고려하면 신중하게 생각해야 합니다. 어떤 언어를 사용하든 최종 코드 품질은 관리에 따라 달라지므로 순수한 언어 수준에서 실용적이어야 합니다. 인기 있는 java, php, .net, python, ruby는 모두 장점과 단점이 있습니다. python과 ruby의 경우 아직 인력 채용이 상대적으로 어렵고, 성능 최적화에는 약간의 노력이 필요합니다. Windows 서버를 구입할 여유가 있습니다. Java와 PHP가 여전히 가장 많이 사용됩니다. 초기 단계에서 거의 항상 프런트 엔드에서 애플리케이션을 지원하는 웹 사이트의 경우 PHP는 쉬운 진입, 단순한 디자인 패턴, 빠른 작성, 충분한 성능 등 약간 더 큰 장점을 가지고 있습니다. 그러나 디자인 패턴에 신경을 쓰지 않는 것도 PHP의 장점입니다. 단점이 있고, 되기 쉽습니다. 느슨하고, 숨겨진 버그가 많고, 유지 관리가 어렵습니다. Java의 장점은 전체 관리 프로세스가 많은 성숙한 도구의 지원을 받고 강력한 타이핑을 통해 정신 장애가 있는 일부 버그를 피할 수 있다는 것입니다. 대부분의 JAVA 프로그래머는 코드 형식이 실용적인지 여부에 관계없이 디자인 패턴에 더 많은 관심을 기울입니다. 아직도 좋아 보여요. 이는 또한 초보자가 패턴에 너무 집중하여 실제 요구사항을 해결하기 어려울 수 있다는 단점이기도 합니다.
프런트 엔드는 HTML과 CSS만이 아닙니다. 사용자와의 상호 작용을 담당하는 전체 부분은 핸들러를 포함하여 프런트 엔드입니다. 이러한 유형의 프로그램에는 여전히 PHP를 사용하는 것이 권장됩니다. 주된 이유는 개발 속도가 빠르고 실무자가 많기 때문입니다. 행동 분석, 은행 인터페이스, 비동기 메시지 처리 등과 같은 백엔드의 경우 어떤 프로그램을 사용하든 다양한 비즈니스 요구에 따라 다른 언어만 선택할 수 있습니다.
2. 코드 버전 관리
개발자 간 네트워크 속도가 비슷한 경우에는 SVN을 사용하고, 국가 간 등 더 분산된 경우에는 hg를 사용합니다. 대부분의 사람들은 여전히 svn을 사용합니다.
svn을 선택한다고 가정하면 몇 가지 고려 사항이 있습니다. 하나는 어떤 트리 구조를 사용할 것인가입니다. 초기 단계에서는 트렁크가 하나만 있을 수 있지만 나중에는 개발 브랜치, 온라인 브랜치 등의 브랜치를 구축해야 하며 나중에는 각 팀마다 하나의 브랜치가 있을 수 있습니다. 처음에는 사람이 적을 때 두 가지 브랜치를 선택하는 것이 좋습니다. 각 기능에 대한 로컬 테스트가 제대로 된 후 최종적으로 통합 테스트를 온라인 브랜치에 병합할 수 있습니다. 온라인. svn을 모바일 하드디스크로 사용하고 싶으면 조금만 써서 한번 커밋해도 상관없지만 병합할 때 좀 더 커지겠죠. 이런 분들은 브랜치나 심지어 로컬 코드 웨어하우스도 만들 수 있습니다. , 원하는 대로 자체 브랜치에 제출한 다음 개발 브랜치에 다시 커밋합니다.
배포는 수동 또는 자동으로 수행할 수 있습니다. 수동 배포는 상대적으로 간단합니다. 일반적으로 서버에서 직접 svn 업데이트를 수행하거나 새 디렉터리 svn checkout을 찾은 다음 웹 루트를 ln -s에 전달합니다. 응용 프로그램이 복잡할수록 배포가 복잡해집니다. 단지 ftp 업로드를 사용하지 마십시오. 둘째, 업로드 시 일관성 없는 파일 참조 오류율이 증가합니다. 온라인 버전과 일치하지 않아 원래 수정하고 싶었지만 결국 롤백된 오타가 발생했습니다. 서버가 여러 개인 경우에도 자동 배포를 권장합니다. 코드가 변경된 머신은 현재 서비스 풀에서 일시적으로 제거된 후 업데이트가 완료된 후 다시 합류합니다.
프로젝트가 아무리 작더라도 버전 관리를 사용하는 좋은 습관을 기르십시오. 최소한 백업으로 사용할 수 있습니다. 비록 내 http://zhiyi.us 는 WordPress일 뿐이지만 여전히 svn입니다. 하나 또는 두 개의 CSS, 그것은 괜찮습니다.
3. 서버 하드웨어
큰 고객과 부자를 부러워하지 마십시오. 컴퓨터 실의 소매 영역을 살펴보십시오. 서버 하나로 수많은 웹 사이트가 지원됩니다. 자금이 충분하다면 웹 처리, 데이터베이스, 백업을 위한 최소 3가지 표준 구성을 갖추는 것이 좋습니다. 웹 서버에는 최소 8G의 메모리와 듀얼 SATA raid1이 필요합니다. 경제가 조금 느슨하거나 정적 파일이나 사진이 많으면 15k sas raid1+0입니다. 데이터베이스에는 최소 16G 메모리와 15k sas raid 1+0이 있어야 합니다. 데이터베이스 서버와 동일한 구성으로 백업 서버를 구성하는 것이 가장 좋습니다. 하드웨어의 경우 자체 브랜드의 섀시를 구입할 수 있습니다. 즉, 섀시에는 마더보드와 하드 디스크 상자가 장착되어 있으며 CPU, 메모리 및 하드 디스크를 직접 구입할 수도 있습니다. 브랜드이거나 기계와 호환될 수 있습니다. 세 대의 기계를 사용하는 경우 시장 가격은 RMB 60,000 ~ RMB 70,000입니다.
웹 서버는 프로그램을 실행하고 메모리 캐시 역할을 할 수 있지만 데이터베이스 서버는 기본 데이터베이스(MySQL인 경우)만 실행합니다. 웹 구성, 캐시 구성 및 데이터베이스 구성은 일관되어야 합니다. 이 방법으로 웹이나 데이터베이스 중 하나에 문제가 있으면 백업 서버의 IP 주소를 변경하고 해당 서버로 전환하십시오. 백업 전략은 drbd, rsync 또는 기타 다양한 오픈 소스 백업 솔루션 중에서 선택할 수 있습니다. rsync는 가장 간단합니다. cron에 넣고 직접 실행하면 됩니다. 백업 및 전환의 경우 더 많은 테스트를 수행하고 비즈니스에 가장 안전하고 적합한 것을 선택하고 가능한 한 오프 사이트 위치에 백업하는 것이 좋습니다.
4. 컴퓨터실
세 가지 유형의 컴퓨터실을 선택하지 마십시오. China Unicom에 대한 액세스가 매우 느린 China Unicom 컴퓨터실, China Telecom 액세스가 매우 느린 China Unicom 컴퓨터실, China Unicom 액세스가 매우 느린 China Mobile 또는 China Railcom 컴퓨터실입니다. Netcom 컴퓨터실은 어떻습니까? 친애하는 귀하, China Netcom과 China Unicom은 오래 전에 합병되어 China Unicom으로 이름이 변경되었습니다. 많이 검색하고, 현장에 많이 방문하고, 많이 테스트하고, 문의해 보세요. 베이징, 상하이, 광저우 등 주요 거점 도시에는 여전히 고품질의 컴퓨터실이 많이 있습니다. 네트워크 품질이 좋은 컴퓨터실을 찾아보세요. 특히, 관리가 철저해야 합니다. 전화 통화 후, 유지 관리 중에 다른 사람이 네트워크 케이블을 떨어뜨렸다는 사실을 알게 되었습니다. 이것은 DOS보다 더 골치 아픈 일입니다. 광섬유 몇 개를 직접 뽑는다면 전산실이라고 부를 수 있습니다. 이는 위험 감수 능력과 심리적 특성에 따라 달라집니다. 컴퓨터실은 웹사이트 접속 속도와 직결된다고 할 수 있습니다. 웹사이트 접속 속도는 사용자 경험과 직결됩니다. 잘 알려지지 않은 웹사이트를 열 수 있는 온라인 게임 VPN입니다. 웹 사이트의 Ajax는 훌륭하지만 문서가 아직 준비되지 않았으며 일부 코드는 항상 사용자로부터 격리되어 있을 수 있습니다.
5. 구조
초기 아키텍처는 일반적으로 웹 로드 밸런싱 + 데이터베이스 마스터-슬레이브 + 캐시 + 분산 스토리지 + 대기열로 구성되어 상대적으로 간단합니다. 일반적인 방향에서는 실제로 이러한 몇 가지 사항이 있습니다. 세부적인 측면에서 수많은 기사가 이를 반복했습니다. 미래에 따르면 N개 더 많은 WEB, N개 더 많은 마스터-슬레이브 관계, N개 더 많은 캐시가 있을 것입니다. xxx 디자인은 모두 이미 준비되어 있습니다. 하지만 다른 솔루션보다 나은 점은 캐시 실패 시 눈사태 효과, 데이터 일관성 및 마스터-슬레이브 동기화 시간 차이를 고려한 디자인입니다. 대기열 및 실패 후 재시도 전략, 파일 저장 및 백업 방법의 효율성 및 기타 예상치 못한 상황. 어느 날 캐시가 실패하고, 데이터베이스 복제가 어느 날 중단되고, 대기열에 쓸 수 없게 되며, 어느 날 전원 공급 장치가 소진됩니다. 머피의 법칙에 따르면 이러한 사항을 고려하지 않으면 웹사이트는 조만간 커피 테이블이 될 것입니다.
6. 서버 소프트웨어
Linux, nginx, php, mysql은 이름을 보는 것 외에도 버전을 선택해야 합니다. 특별한 요구 사항이 없다면 Debian 및 Ubuntu와 같이 사용자가 가장 많고, 커뮤니티가 가장 활발하며, 구성이 가장 편리하고, 가장 완벽하고 최신 소프트웨어 패키지를 갖춘 배포판을 선택하십시오. RHEL 등의 경우 RHEL에서만 실행할 수 있는 소프트웨어를 사용하시나요? 나머지 nginx, php, mysql, activemq, 기타 등의 경우 이러한 소프트웨어를 변경했거나 프로그램이 실제로 새 버전과 호환되지 않는 한 최신 버전을 사용할수록 더 많은 새로운 기능이 제공됩니다. 버그 감소, 성능 향상. 소문을 통해 이전 버전이 안정적이라고 말하는 사람들이 항상 있습니다. 소위 안정성이란 특별한 비즈니스를 의미합니다. PHP로 작성된 웹사이트의 경우 대부분의 사람들은 서버 소프트웨어 소스 코드를 전혀 변경하지 않고 새 버전으로 원활하게 업그레이드할 수 있습니다. jdk5에서 jdk6으로, python2에서 python3으로, 상대적으로 큰 변화가 있는 업그레이드는 여전히 상대적으로 드뭅니다. ChangeLog를 살펴보고 업그레이드 지침을 살펴보고 자신의 상황에 따라 평가하십시오. 더 빨리 업그레이드할수록 더 좋습니다. 다른 사람들은 php6을 사용하여 프로그램을 작성하고 있지만 여기서는 여전히 php4를 사용하고 있습니다. 우수한 오픈 소스 프로그램을 업그레이드하는 것은 여전히 큰 책임입니다. 문서에 주의를 기울이고 두려워하지 마십시오.
위의 6가지 사항이 준비되었으므로 이제 운영 환경, 기본 아키텍처 뼈대, 백업 및 스위칭 계획이 준비되었으므로 설계 및 개발을 시작해야 합니다. 개발 중인 내용은 셀 수 없이 많으며, 다음 기사에서는 몇 가지 핵심 사항에 대해 먼저 이야기하겠습니다.
원래 주소: http://zhiyi.us/internet/thinking-twice-before-building-your-site-one.html
재인쇄 출처는 zhiyi.us임을 명시해 주세요.