Когда вы начинаете блог со своим собственным доменным именем, ваша первая публикация должна быть немного более важной, чтобы быть достойным доменного имени за 4 доллара. Будучи техническим практиком в течение десяти лет, после десяти лет скитаний я обнаружил, что есть некоторые знания, которые мне нужно прочитать по всему миру, чтобы найти ключ к разгадке. Позвольте мне систематически объяснить это, шаг за шагом, с самого начала. Может ли небольшой веб-сайт с тысячами посетителей или небольшой веб-сайт с одним или двумя миллионами посетителей в день пройти этот этап гладко, без каких-либо присущих ему технологических недостатков. Эта статья написана для некоторых технических специалистов, а также для предпринимателей, которые этого не делают? понять технологию кто.
У каждого, кто знает Интернет, есть свои идеи, а некоторые люди реализуют свои идеи на практике, создают веб-сайт и начинают его эксплуатировать. Фактически, с точки зрения чисто веб-технологий, благодаря развитию модели с открытым исходным кодом, теперь очень легко и дешево создать небольшой веб-сайт. Когда количество посещений достигает определенного уровня, стоимость начинает стремительно расти, и начинают появляться проблемы. Увеличение затрат, вызванное увеличением пропускной способности, расширением аппаратного обеспечения и расширением персонала, очевидно, и немалая часть затрат связана с реконструкцией кода, реконструкцией архитектуры и даже заменой базового языка разработки. Самая большая проблема — потеря данных. После нескольких лет упорной работы вы можете в одночасье вернуться к тому, что было до того, как вы начали свой бизнес.
Снижение затрат означает увеличение прибыли. Вначале мы можем избежать многих вещей. Заложив сначала хороший фундамент, мы можем сэкономить много энергии и избежать беспокойства в будущем.
Предположим, вы технический человек, занимающийся открытием бизнеса, и на данный момент у вас нет средств. Вам приходится все делать самому и платить за это самостоятельно. Вам нужны сотни тысяч первоначальных средств для создания сайта с не особо сложным приложением. вам следует обратить внимание на следующие моменты:
1. Язык разработки
Вообще говоря, когда технические специалисты (программисты) начинают свой бизнес, они выбирают язык, с которым они наиболее знакомы, исходя из своего технического образования. Однако, учитывая, что вы не всегда можете писать программы в одиночку, об этом нужно тщательно подумать. Независимо от того, какой язык используется, конечное качество кода зависит от руководства, поэтому мы должны быть практичными, начиная с уровня чистого языка. Популярные Java, PHP, .net, Python и Ruby имеют свои преимущества и недостатки. Для Python и Ruby по-прежнему относительно сложно набирать персонал, а оптимизация производительности потребует некоторых усилий. позволить себе сервер Windows. Java и 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. Серверное оборудование
Не завидуйте крупным клиентам и богатым людям. Взгляните на торговую зону компьютерного зала. Один только сервер поддерживает бесчисленное количество веб-сайтов. Если у вас достаточно средств, рекомендуется иметь как минимум три стандартные конфигурации для веб-обработки, базы данных и резервного копирования. Веб-серверу требуется минимум 8Гб памяти и двойной SATA RAID1. Если экономия немного слабая или много статических файлов или картинок, то 15к sas RAID1+0. База данных должна иметь как минимум 16 ГБ памяти и 15 КБ sas RAID 1+0. Лучше всего настроить сервер резервного копирования с той же конфигурацией, что и сервер базы данных. Что касается аппаратного обеспечения, вы можете купить шасси своей собственной марки, то есть шасси оснащено материнской платой и корпусом для жесткого диска, и вы можете самостоятельно подобрать процессор, память и жесткий диск. Вы также можете купить полный комплект. брендов, или он может быть совместим с машиной. Рыночная цена трех машин составляет от 60 000 до 70 000 юаней.
Веб-сервер может запускать программы и служить кэшем памяти, в то время как сервер базы данных запускает только основную базу данных (если это MySQL). Сервер резервного копирования выполняет относительно большую работу. Конфигурация веб-сайта, конфигурация кэша и конфигурация базы данных должны быть согласованными. с предыдущими двумя. Таким образом, если есть проблемы с WEB или базой данных, измените IP-адрес резервного сервера и переключитесь на него. Стратегией резервного копирования может быть drbd, rsync или множество других решений резервного копирования с открытым исходным кодом на выбор. rsync — самый простой, просто поместите его в cron и запустите самостоятельно. Для резервного копирования и переключения рекомендуется проводить больше тестов, выбирать наиболее безопасные и подходящие для бизнеса и максимально выполнять резервное копирование в удаленных хранилищах.
4. Компьютерный зал
Старайтесь не выбирать три типа компьютерных залов: компьютерные залы China Unicom с чрезвычайно медленным доступом к China Unicom, компьютерные залы China Unicom с чрезвычайно медленным доступом к China Telecom и компьютерные залы China Mobile или China Railcom с чрезвычайно медленным доступом к China Unicom. А как насчет компьютерного зала Netcom? Уважаемый, China Netcom и China Unicom давно объединились и были переименованы в China Unicom. Много ищите, посещайте места, много тестируйте и спрашивайте разными способами. В крупных городах-узлах, таких как Пекин, Шанхай и Гуанчжоу, все еще есть много высококачественных компьютерных залов. Найдите компьютерный зал с хорошим качеством сети и сетью. строгое управление. В частности, руководство должно быть строгим. Невозможно получить доступ к веб-сайту. После телефонного звонка вы узнаете, что кто-то другой отключил ваш сетевой кабель во время обслуживания. Это больше головная боль, чем DOS. Если вы протянете несколько оптических волокон самостоятельно, это называется компьютерным залом. Это зависит от вашей толерантности к риску и психологических качеств. Можно сказать, что компьютерный зал очень важен. Он напрямую связан со скоростью доступа к веб-сайту. Скорость доступа к веб-сайту напрямую связана с пользовательским опытом. Я могу перелезть через стену, чтобы увидеть пейзаж, но это сложно купить. VPN для онлайн-игр, позволяющий открыть ваш малоизвестный веб-сайт. Возможно, Ajax вашего сайта превосходен, но документ никогда не готов, а некоторые коды всегда изолированы от пользователей.
5. Структура
Первоначальная архитектура, как правило, относительно проста и состоит из балансировки веб-нагрузки + главной-подчиненной базы данных + кэша + распределенного хранилища + очереди. В общем, действительно есть только эти несколько вещей. Что касается деталей, их повторили бесчисленные статьи. В будущем будет больше N WEB, больше N отношений master-slave, больше N кэшей и еще N. xxx конструкции Все базовые решения готовы. Да, но что делает вас лучше других, так это то, что ваша конструкция учитывает лавинный эффект при сбое кэша, согласованность данных и разницу во времени синхронизации master-slave, стабильность. очереди и стратегии повторных попыток после сбоя, эффективности хранения файлов и методов резервного копирования и других непредвиденных ситуаций. Кэш однажды выйдет из строя, репликация базы данных однажды прервется, очередь однажды не сможет выполнять запись, а источник питания однажды перегорит. Согласно закону Мерфи, если вы не примете это во внимание, веб-сайт рано или поздно превратится в журнальный столик.
6. Серверное программное обеспечение
Linux, nginx, php и mysql почти стандартны. Помимо названия, нам еще нужно выбрать версию. Существует множество дистрибутивов Linux. Если нет особых требований, выберите тот, у которого больше всего пользователей, самое активное сообщество, самая удобная конфигурация и самые полные и новейшие пакеты программного обеспечения, такие как Debian и Ubuntu. Что касается RHEL и тому подобного, используете ли вы программное обеспечение, которое может работать только на RHEL? Что касается остальных nginx, php, mysql, activemq, других и т. д., если вы не меняли это программное обеспечение или ваша программа действительно не совместима с новой версией, попробуйте использовать более новую версию, чем новая версия, тем больше новых функций. и уменьшение ошибок, увеличение производительности. Всегда найдутся люди, которые понаслышке скажут вам, что старая версия стабильна. Так называемая стабильность относится к специальному бизнесу. Что касается веб-сайта, написанного на PHP, большинство людей не меняют исходный код серверного программного обеспечения. В большинстве случаев его можно плавно обновить до новой версии. Как и в случае с jdk5 на jdk6 и с python2 на python3, обновления с относительно большими изменениями все еще относительно редки. Посмотрите журнал изменений, просмотрите инструкции по обновлению и оцените их, исходя из вашей собственной ситуации. Чем раньше вы обновитесь, тем лучше. Другие используют php6 для написания программ, а мы все еще используем php4. Обновление отличных программ с открытым исходным кодом по-прежнему очень ответственно. Обратите внимание на документацию и не бойтесь.
Вышеупомянутые шесть пунктов подготовлены. Теперь, когда у нас есть операционная среда, базовый скелет архитектуры, а также план резервного копирования и коммутации, мы должны приступить к проектированию и разработке. В разработке находится бесчисленное множество вещей, и в следующей статье сначала поговорим о некоторых ключевых моментах.
Исходный адрес: http://zhiyi.us/internet/thinking-twice-before-building-your-site-one.html.
Пожалуйста, укажите источник перепечатки: zhiyi.us.