1. Куча / Говнокод #25396

    0

    1. 1
    Хостинг

    Запостил: syoma, 22 Февраля 2019

    Комментарии (104) RSS

    • Тред digitalocean (потерт с ру): http://govnokod.xyz/_23816/
      Ответить
    • Какие сейчас есть дешевые виртуалки не с оплатой на год вперед?
      Ответить
      • у AWS есть Free Tier который год бесплатно дает, а дальше у них очень гибкая политика
        например t3.small стоит 15 бксов в мсц

        Кстати, я теку от AWS потому что там охулион сервисов, всё очень хорошо интегрировано и настраивать можно через скрипты или декларативное описание
        Ответить
        • Мне подойдет любая дешевая виртуалка.
          Ответить
    • Пятиминутка рекламы AWS.

      У AWS есть регионы по всему миру (например eu-west-1 это Ирландия).
      Внутри региона есть availability zones: разные ДЦ внутри одной страны. Можно создать две виртуалки в разных AZ, и даже отвал целого БЦ не оставит тебя без виртуалки.

      В качестве диска там используется Elastic Block Device (блочное устройство) которое тоже живет в AZ, и можно ёбнуть виртуалку и переподключить EBS к другой. Сервис виртуалок называется EC2 (elastic cloud computing).

      Виртуалки создаются по образам -- AMI (amazon managed image). Есть образы прыщей спецально от AMAZON (на основе yum/rpm, переделка centos) тн amazon linux.

      Можно создать пару ключей, и публичный ключ автоматом попадет в authorized_keys у виртуалки чтобы ходить туда по ключам по ssh.

      Виртуалки создаются на основе шаблонов (launch configurations, launch templates) так что пересоздать виртуалку просто, подключить EBS к виртуалке тоже просто.

      Можно выдать виртуалке внешний IP, можно даже взять Elastic IP и тогда IP будет независим от виртуалки: его можно переносить к другим виртуалкам.Можно даже перенести сетевую карту целиком (elastic NIC).

      виртуалки создаются в VPC (virtual private cloud). У VPC есть сеть. У виртуалок приватные IP, а на роутере full cone nat. Это все software defined network, так что можно настроить маршрутизацию и сказать какая виртуалка с какой 0бщается. Есть файрвол (security group).
      Ответить
      • Кроме того есть DNS (Route53) который реплицируется на весь амазон, есть scalability group это когда система созадет виртуалки по launch configuration если они случайно умерли, если Elastic Load Balancer (ELB) это HTTP фронт на котором терминируетсмя HTTPS (серты бесплатны как и настройка шифров). Он следит за healt (ждет что виртуалка отдает 200) и роутит траффик туда. Можно создать по одной его ноде в AZ, и тогда смерть виртуалки из ивсего AZ (тоесть всего ДЦ) просто приведет к перенаправлению траффа на другую AZ и другую виртуалку.

        Есть CDN cloudfront, есть возможность разворачивать докерконтейнеры на виртуалках (elastic contatiner service -- ECS) или даже вовсе без виртуалок (fargate).
        Есть serverlsess когда к запросу на ELB тыпривязываешь свою лямбду на Python (она исполняется на каждый запрос а о сервере ты вовсе не думаешь)

        есть также SES (это MTA) чтобы слать почту, е5сть cloud watch чтобы зырить логи и привязывать лямбду к каждой записи (например выполнять питоновый скрипт на каждый 404) и еще примерно 49 разных сервисов>
        Ответить
        • все это можно дрочить через веб, через REST, с консоли, через teraform (HCL) или через yaml или json от AWS: cloud foundation. Написал скрипт -- применил его -- и у тебя целая пачка серверов создалась с сетевыми подключениями

          Есть СУБД (RDS) которая сама реплица в разные AZ, там есть и постгрес и мускуль и MSQL. Есть пермишенны (AWS IAM), можно сказать что кому можно делать.

          Есть S3 для хранения статики, там тоже есть ип ермишены и репликация
          Ответить
          • и снапшоты есть
            у EBS и RDS снапшоты берутся в один клик и кладутся на S3 (simple storage service)_.
            можно получить снапшот и запустить с него другую виртуалку.
            Есть реалтайм репликация в R/O инстанс RDS (логи репляциа). СУБД умерла -- автоматом переключились на другую со последними даннымию


            и все это интегрировано. Допустим, умер ДЦ. ELB автоматом перенаправляет траффик на другой AZ, и сам правит Route53.

            Люди в Европе начинают получать другой IP по тому же доменному имени (там другой ДЦ в Ирландии) а люди в Японии получают IP ДЦ в Японии (чтобы быстрее работало)

            А тебе в Slack приходит уведомление о смерти ДЦ потому что у тебя лямбда на питоне натсроена

            Короче, devopsы текут и программисты тоже влажные от этого
            Ответить
            • Спасибо что выслушали

              мне стало легче
              Ответить
              • В «PHP» ничего из перечисленного нет. Именно поэтому я за «PHP».
                Ответить
      • AWS — это неприлично дорогой хостинг, даже дороже DO. И ещё они любят разные сорта vender lock-in. Из плюсов: там можно всю инфраструктуру декларативно описать, хоть и проклянёшь весь мир три раза.
        Ответить
        • Ещё там куча херни, которая вроде работает, но если её использовать, отвалится жопа. К примеру, замечательные EBS снэпшоты, которые при ресторе просаживают IO latency до секунд. Или кинезис с латентностью в 60ms.
          Ответить
        • > неприлично дорогой
          А из-за автоматического масштабирования и непредсказуемо дорогой?
          Ответить
          • Несколько лет читал забавную заметку — умники забили в гуглотаблицу (которая «Google Docs») туеву хучу копий особо тяжёлого изображения с сайта, хостящегося на «AWS». В результате в конце месяца владелец получил счёт за трафик в районе двадцати тысяч вечнозелёных…
            Та история, кстати, закончилась хорошо — на волне хайпа Амазон долг простили.
            Ответить
          • Ну да. Строишь логику на "AWS Lambda" @ Офигеваешь от счёта. Поэтому я за "on premise".
            Ответить
            • подымаешь свои сервера у себя в ДЦ, делаешь VPN Gateway к VPC и крутишь на них
              Ответить
    • Гиганты, удерживающие мир, рухнули, и удар за звездами заморозил все лицо земли, когда открылись врата, и сейсмические волны сбросили живых в реки подземного мира.

      Плавающие в ваших собственных фекалиях!
      Это существо, которое было образом их бога?

      Это выжженные ступени человечества - руины!
      Это пародия жизни - руины!

      Они слишком слабы, чтобы быть богоподобными!
      Они слишком слабы, чтобы даже дать отпор, если у них есть шанс сделать это!

      Вот человеческая агония во всей красе
      Разве это не то, чего вы так долго ждали?
      Разве это не то, что вы пытались предвидеть?
      До тех пор, пока вы жили

      Это выжженные ступени человечества - руины!
      Это пародия жизни - руины!

      Готовы ли вы съесть мясо своего ближнего, если нет... Вы должны ползти и умереть!

      В яму ... Вы должны ползти...
      Плоть будет гнилой...
      Кости превратятся в пыль...

      Гиганты, удерживающие этот мир, рухнули, и удар за звездами заморозил все лицо земли
      Это выжженные ступени человечества - руины!
      Это пародия жизни - руины!
      Ответить
    • Хуз перешел на beget.com, если что. (Информация для тех, кто собирается переходить на "PHP")
      Ответить
      • Сколько серверов использует xyz?
        Ответить
      • Какой beget )))
        Ответить
      • Все равно задержка между запросом страницы и началом отдачи, на ру ее нет.
        Ответить
        • Перечитывает посты с гк в момент запроса?
          Ответить
        • Создай пустой блог на "WordPress" и увидь, как любая страница загружается не быстрее чем за 200мс (+- рандом при работе с базой). Просто include всего объёма "PHP"-кода занимает нихуёво так времени.

          Я предлагал переписать на "C++".
          Ответить
          • Кэш опкодов (opcache, xcache, apc) есть?
            Ответить
          • а он каждый раз физически инклюдит файлы?????

            пиздец вы гиббоны в своем ПХП
            Ответить
            • http://farm5.static.flickr.com/4085/5197179899_dfdfe44d9a_b.jpg

              такие, да?
              Ответить
            • Угу. Есть даже рекомендация собирать фреймворки в один файл (вручную подставляя вместо каждой директивы include содержимое включаемого файла).

              Но такое поведение только если нет кэша опкодов. Если включить кэш опкодов (просто подключить одно из расширений, перечисленных в моём предыдущем комментарии), то он один раз заинклюдит и закэширует в оперативке уже распарсенное содержимое.
              Ответить
              • я не понимаю почему он не может держать это в памяти?
                там же FastCGI? fpm или там оно

                Всмысле нахуй каждый раз файл-то читать с диска как в CGI в 99м году?
                Ответить
                • FastCGI держит в памяти только бинарник интерпретатора php. Весь контекст после каждого запроса полностью умирает и на новый запрос рождается заново с нуля. И все файлы тоже читаются заново.

                  Ну это примерно как ты будешь держать в памяти «Word» и то и дело выбирать «Открыть файл», «Закрыть файл». На времени старта «Ворда» ты сэкономишь, но читать документ будешь каждый раз полностью.

                  Т. е. фактически всё работает, как в CGI.

                  К счастью, как я уже написал, можно включить кэш опкодов. Он будет висеть в оперативке и не будет очищаться после каждого запроса.
                  Ответить
                  • хорошо что у нас в гуникорне не так

                    а в джаве и C#пе вообще таких проблем нет

                    пхпшники, зачем вы пхпшники?
                    зачем вы едите говно, нахуя???
                    Ответить
            • А ты правда не знал, что память в пхп не шарится, и на каждый запрос заново запускается? По-моему это каждый петух знает.

              Именно поэтому пхпшники за пхп.
              Ответить
          • На wordpress.com ответ приходит быстро.
            Ответить
      • Какой багор )))
        Ответить
      • Сейчас синк с РУ не работает.
        Разбираюсь.
        Ответить

    Добавить комментарий