Pull to refresh
15
0
Send message

И соглашусь с Вами, и не соглашусь. Потому что в реальности "эталона" нет. Всё зависит от условий вокруг задачи, от времени и других "локальных" особенностей. Где-то настроить сеть на Mikrotik это экзотика, где-то норма. Да и что такое "норма"? Только опенсорс, только проверенные вендоры или только то, чем умеет пользоваться трудовой рынок вокруг нас? А что если мы в деревне Иванушки и там никто кроме Windows XP не умеет? Фрю пинают за то что она белая ворона всю историю её существования. Да, безусловно не стоит её использовать в проде без должных знаний.


Но я вам скажу, что произвольный человек который вам скажет что умеет фрю, скорей всего будет более квалифицированый специалист в общем, чем человек который скажет, что умеет линукс. Просто потому что линукс "умеет" каждый эникейщик в наши дни. И тут уже встает другой вопрос: гонимся за количеством или качеством.


А еще мою инфру тоже так сносили как вы пишете, и вместо неё ставили "нормальный виндоус стек". И там нет "правы или не правы", там скорее контекст "что нам важнее".

Не совсем понятно, что именно вы находите "антипаттерном". То, что применяется не мейнстримный инструмент? Ну так пройдет пару лет, и мейнстримные инструменты поменяются. А вот во фре как то всё консервативно, всё работает неизменно годами.


Как вам нравится iptables например? читабельно? вот мне не очень. зачем использовать его если есть более человеческие инструменты.


Контейнеры? Докеры и рядом не стоят по удобству поддержки в проде с клетками. Да и докеры это как циско в контексте vendor-lock: далеко не все кто умеют докеры, умеют\понимают системное администрирование. И этот инструмент этому не способствует, ввиду овер-абстракции.


Но это всё холиварные споры. Я использую как FreeBSD так и решения на базе Linux. Не вижу причин быть радикалом.


всё это клёво, не сомневаюсь что это будет работать, обслуживать какой-то пет проджект и vpn, но в условиях промышленной эксплуатации это точно антипаттерн.

Ну у меня за спиной с десяток инфраструктур на BSD, где как минимум половина "промышленные". Netflix там всякие тоже на фре контент раздают. Да нет плохого инструмента, есть плохой подход. Хотите что бы инфра легко передавалась из рук в руки — пишите доки, планы восстановления и проводите обучение персонала. Это необходимо в любом случае, несмотря на то что вы используете.

Всё что описано легко автоматизируется всякими Ansible, как на уровне хоста, так и на уровне виртуалок. Это предельно легко обновлять и поддерживать — всё крайне прозрачно и лайтово. В конце концов вся система со всеми инструментами (из коробки) виртуализации — чуть более 2Гб софта. Вот и во время эксплуатации сказывается "отсутствие лишнего". Но мне сложно сказать что одно лучше другого, это просто немного разные инструменты и они оба хороши.


Кстати, proxmox/ovirt разве умеют контейнеры?

Да, но удобнее подцепляться по SSH, чем подключаться через Java-апплеты разные которые тормозят. Тем более с SSH это намного проще автоматизировать (например что б расшифровку производила система мониторинга)

Описанный сервер он несколько импровизирован, но вот вывод с сервера похожей конфигурации (там правда не зеркало а zraid-1)


gpart list
Geom name: ada0
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 937703047
first: 40
entries: 152
scheme: GPT
Providers:
1. Name: ada0p1
   Mediasize: 241664 (236K)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r0w0e0
   efimedia: HD(1,GPT,5d0cd8a8-1fb5-11e9-9496-a4bf0125fcfb,0x28,0x1d8)
   rawuuid: 5d0cd8a8-1fb5-11e9-9496-a4bf0125fcfb
   rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
   label: (null)
   length: 241664
   offset: 20480
   type: freebsd-boot
   index: 1
   end: 511
   start: 40
2. Name: ada0p2
   Mediasize: 4294967296 (4.0G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   efimedia: HD(2,GPT,5d0e68bb-1fb5-11e9-9496-a4bf0125fcfb,0x200,0x800000)
   rawuuid: 5d0e68bb-1fb5-11e9-9496-a4bf0125fcfb
   rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 4294967296
   offset: 262144
   type: freebsd-swap
   index: 2
   end: 8389119
   start: 512
3. Name: ada0p3
   Mediasize: 32212254720 (30G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   efimedia: HD(3,GPT,5d10dd9c-1fb5-11e9-9496-a4bf0125fcfb,0x800200,0x3c00000)
   rawuuid: 5d10dd9c-1fb5-11e9-9496-a4bf0125fcfb
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 32212254720
   offset: 4295229440
   type: freebsd-zfs
   index: 3
   end: 71303679
   start: 8389120
4. Name: ada0p4
   Mediasize: 443589591040 (413G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   efimedia: HD(4,GPT,416dcfbe-1fbb-11e9-8a4c-a4bf0125fcfb,0x4400200,0x33a40000)
   rawuuid: 416dcfbe-1fbb-11e9-8a4c-a4bf0125fcfb
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 443589591040
   offset: 36507484160
   type: freebsd-zfs
   index: 4
   end: 937689599
   start: 71303680
Consumers:
1. Name: ada0
   Mediasize: 480103981056 (447G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r3w3e6

Geom name: ada1
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 937703047
first: 40
entries: 152
scheme: GPT
Providers:
1. Name: ada1p1
   Mediasize: 241664 (236K)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r0w0e0
   efimedia: HD(1,GPT,5dc493e6-1fb5-11e9-9496-a4bf0125fcfb,0x28,0x1d8)
   rawuuid: 5dc493e6-1fb5-11e9-9496-a4bf0125fcfb
   rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
   label: (null)
   length: 241664
   offset: 20480
   type: freebsd-boot
   index: 1
   end: 511
   start: 40
2. Name: ada1p2
   Mediasize: 4294967296 (4.0G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r0w0e0
   efimedia: HD(2,GPT,5dc62498-1fb5-11e9-9496-a4bf0125fcfb,0x200,0x800000)
   rawuuid: 5dc62498-1fb5-11e9-9496-a4bf0125fcfb
   rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 4294967296
   offset: 262144
   type: freebsd-swap
   index: 2
   end: 8389119
   start: 512
3. Name: ada1p3
   Mediasize: 32212254720 (30G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   efimedia: HD(3,GPT,5dc8bfbf-1fb5-11e9-9496-a4bf0125fcfb,0x800200,0x3c00000)
   rawuuid: 5dc8bfbf-1fb5-11e9-9496-a4bf0125fcfb
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 32212254720
   offset: 4295229440
   type: freebsd-zfs
   index: 3
   end: 71303679
   start: 8389120
4. Name: ada1p4
   Mediasize: 443589591040 (413G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   efimedia: HD(4,GPT,4a29e21c-1fbb-11e9-8a4c-a4bf0125fcfb,0x4400200,0x33a40000)
   rawuuid: 4a29e21c-1fbb-11e9-8a4c-a4bf0125fcfb
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 443589591040
   offset: 36507484160
   type: freebsd-zfs
   index: 4
   end: 937689599
   start: 71303680
Consumers:
1. Name: ada1
   Mediasize: 480103981056 (447G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r2w2e4

Geom name: ada2
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 937703047
first: 40
entries: 152
scheme: GPT
Providers:
1. Name: ada2p1
   Mediasize: 241664 (236K)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r0w0e0
   efimedia: HD(1,GPT,5e74fdff-1fb5-11e9-9496-a4bf0125fcfb,0x28,0x1d8)
   rawuuid: 5e74fdff-1fb5-11e9-9496-a4bf0125fcfb
   rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
   label: (null)
   length: 241664
   offset: 20480
   type: freebsd-boot
   index: 1
   end: 511
   start: 40
2. Name: ada2p2
   Mediasize: 4294967296 (4.0G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r0w0e0
   efimedia: HD(2,GPT,5e76c749-1fb5-11e9-9496-a4bf0125fcfb,0x200,0x800000)
   rawuuid: 5e76c749-1fb5-11e9-9496-a4bf0125fcfb
   rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 4294967296
   offset: 262144
   type: freebsd-swap
   index: 2
   end: 8389119
   start: 512
3. Name: ada2p3
   Mediasize: 32212254720 (30G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   efimedia: HD(3,GPT,5e79ca75-1fb5-11e9-9496-a4bf0125fcfb,0x800200,0x3c00000)
   rawuuid: 5e79ca75-1fb5-11e9-9496-a4bf0125fcfb
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 32212254720
   offset: 4295229440
   type: freebsd-zfs
   index: 3
   end: 71303679
   start: 8389120
4. Name: ada2p4
   Mediasize: 443589591040 (413G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   efimedia: HD(4,GPT,4ad9203c-1fbb-11e9-8a4c-a4bf0125fcfb,0x4400200,0x33a40000)
   rawuuid: 4ad9203c-1fbb-11e9-8a4c-a4bf0125fcfb
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 443589591040
   offset: 36507484160
   type: freebsd-zfs
   index: 4
   end: 937689599
   start: 71303680
Consumers:
1. Name: ada2
   Mediasize: 480103981056 (447G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r2w2e4

gpart show
=>       40  937703008  ada0  GPT  (447G)
         40        472     1  freebsd-boot  (236K)
        512    8388608     2  freebsd-swap  (4.0G)
    8389120   62914560     3  freebsd-zfs  (30G)
   71303680  866385920     4  freebsd-zfs  (413G)
  937689600      13448        - free -  (6.6M)

=>       40  937703008  ada1  GPT  (447G)
         40        472     1  freebsd-boot  (236K)
        512    8388608     2  freebsd-swap  (4.0G)
    8389120   62914560     3  freebsd-zfs  (30G)
   71303680  866385920     4  freebsd-zfs  (413G)
  937689600      13448        - free -  (6.6M)

=>       40  937703008  ada2  GPT  (447G)
         40        472     1  freebsd-boot  (236K)
        512    8388608     2  freebsd-swap  (4.0G)
    8389120   62914560     3  freebsd-zfs  (30G)
   71303680  866385920     4  freebsd-zfs  (413G)
  937689600      13448        - free -  (6.6M)

Ставится grub-imageboot и скачивается нужный ISO (MfsBSD).

Вот читал я про этот приём, но на практике не применял. Для ширпотреба и хостерские образы идут, я для прода как то везло с хостерами и всегда удавалось скормить .iso с локального диска.


Также прошу учесть рекомендации и использовать вместо py36-certbot — acme.sh, вместо polipo — 3proxy и ProxyChains-NG для простого использования нужного прокси для конкретного приложения.

Про acme.sh слыхал краем уха, видимо надо пристальнее посмотреть, а вот за последние два отдельное спасибо.

Поднять может и может любой, но вот понимать что там происходит в этом докере к сожалению спешит не каждый из тех кто поднял. А когда софт который поднят непосредственно может повлиять на денежный баланс, то понимание приходит довольно быстро. А когда еще нужно отвечать за содержание этих самых контейнеров, следить за актуальностью версий хоста… одним подниманием мир не заканчивается. Докер это прекрасный инструмент для разработки — «быстро поднял, поигрался, быстро опустил». Но я сомневаюсь в его прекрасности для более широкого применения. Но судить не могу, слишком мало пользовался.
Ага. Ну а биткойн в заголовке упомянут потому, что в содержании в примерах поднимается никому не нужный биткойн ;)
Что-то мне подсказывает, что битлокер далёк от настоящего интрумента шифрования. Как то читал, что с использованием битлокера агрейды с перезапуском системы проходят без ввода пароля шифрования. А это намекает на какие-то мастер ключи итп итд.

п.с. виндой не пользуюсь, свечку не держал
По-моему, Ваш пост хорошо символизирует, что подобная экономия, в довольно обозримые сроки, приводит к еще более узкому разделению ответственности, что в свою очередь порождает совсем не экономный подход «один пишет, другой приносит ручку, третий думает». И это сказывается, в конечном итоге, на качестве и эффективности, что так же является неотъемлемой частью любого бизнеса.
И лишь недавно на рынке стала оформляться и принимать кое-какие конкретные очертания профессия FinOps.


И лишь недавно, на рынке стали появляться чуднЫе профессии вроде DevOps, FinOps, DockerOps и прочие «зачем понимать, когда можно просто творить» — которые знают либо как завести конкретное приложение, либо как посчитать бюджет на инфраструктуру. А ведь когда трава была зеленее, этим всем занимался один толковый админ в маленьком «стартапе» или отдел инфраструктуры в компании побольше. И как то было кого спросить, почему порты БД открыты наружу, а не «ой, в образе из докерхаба по умолчанию так было».
Для этого нужно найти владельца бота (если мой бот был бы для криминала, я бы не писал о нём статьи, а кроме этого никаких намёков что он мой нет). А еще нужно что бы Телеграм слил данные, а он вроде как «приватный мессенджер». Что бы не узнали кто хостит Lightning ноду и кто подключается к Телеграму — есть луковички, их видно на диаграме. Но в любом случае Ваш пример из каких то страшилок и имеет почти никакое отношение к контексту чат-бота в телеграме. на мой взгляд :) А у Lightning на уровне протокола всё прекрасно (я бы сказал даже лучше чем on-chain) с приватностью.
Я думаю, что «грамы» будут соего рода кошельком с глубокой интеграцией в аккаунт Телеграма, что в свою очередь сделает очень удобным использование именно этого кошелька при разработке чат-ботов вроде моего или других приложений с платежами внутри — не надо «всякие биткойны» изучать, все из коробки. И наверняка грамы легко будет обменять на биткойн и обратно.
Да, всё верно понимаете. Казус может произойти, если разработчики раздолбаи или злодеи. Впрочем, стоит отметить, что такое возможно в любом банке, в т.ч. в том, что Вы используете, а так же с любой биржей или финансовым сервисом вроде PayPal. В отличии от упомянутых, предоставляя услугу биткойн-счёта\кошелька технически возможно (и это совсем не сложно) хранить ключи «на стороне клиента», но, к сожалению, большинство пользователей либо не умеют безопасно хранить поный доступ к «очередному кошельку» либо не хотят это делать. Поэтому приходится о сохранности их средств заботится в случаях как чат-бот разработчикам. Но неужели пользователь в здравом уме будет хранить все свои сбережения на балансе чат-бота в телеграме? Для этого есть специализированные кошельки с многослойной защитой. Тут скорее вопрос к пользователю, а не разработчику.
Все несколько проще:

1) Я не использую ни в случае с Lightning, ни в случае с on-chain платежами напрямую инструменты касающиеся криптографии — не вижу смысла, за меня это сделало много умных людей. Если это on-chain то чаще всего использую Electrum CLI с собственным Electrum сервером (можно и без второго обойтись, просто у меня был спортивный интерес). Он все делает за меня, я лишь командую — подпиши, сделай бродкаст итп. И обычно я использую один seed на приложение, а пользователя привязываю уже конкретные адреса из общего кошелька. Иногда в такой привязке есть смысл, иногда и она не нужна. В случае с Lightning по сути все так же, только в роли кошелька — lightning-cli. Но в этом случае уже логика другая — каждый платеж это свой «инвойс», которые выступают в роли адресов и они одноразовые по протоколу.
2) именно «сиды» пользователей есть смысл хранить если есть необходимость под пользователя выделить отдельный кошелек (условно бесконечное идентифицируемое множество адресов) или делать таким образом, что бы у разработчика небыло совсем доступа к средствам на балансе пользователя. Но в подавляющем большинстве случаев пользователя это не интересует, а с доступом к балансу проще решать возникшие проблемы.
Я сейчас, конечно, ляпну в стиле параноида, о том, что крайне маловероятно, но тем не менее:

Попробуйте погреть феном пломбу и аккуратно отклеить, а затем приклеить обратно. 9 из 10 пломб с которыми довелось столнуться проваливают этот тест на безопасность.

А вообще, годный пример использования пломб на карту, не приходило в голову такое.
Hyper-V, а на нём уже по инструкции выше
Один из видов процессинга криптовалют является таким, что провайдер предоставляет всего лишь техническое решение, при этом не контролируя сами ключи к средствам, благо технология позволяет. Это уже ключевое отличие. Пример: pay.zatoshi.com (описание — zatoshi.com/index.php/payment). Причем система основана на проекте с открытым исходным кодом — BTCPay

Справедливости ради нужно отметить, что в таком случае теряется возможность автоматически конвертировать платежи в фиат, это нужно делать на стороне клиента.
Поправлю написанное выше (похоже у меня нет прав на редактирование) — WaveCrest Limited не отказались, VISA отказалась от сотрудничества с ними, и, вроде, фин. лицензию у них отобрали, а всё это изза наплевательского отношения к процедурам AML/KYC.

Как говорится «в семье не без урода». Тоже самое относится и к миру криптовалют, 70% происходящего там — чернуха. Но всё это потому, что есть огромное кол-во людей, желающих ажится нахаляву на волне хайпа, а таких «клиентов» особенно любят мошенники.
Не соглашусь с Вами, что Биткойн не имеет отношения к технологии. Да и блокчейн это не технология а структура данных. Биткойн это технология обмена ценностью — «transport of value», которая использует структуру данных типа распределенного блокчейна. Эфир это технология умных контрактов, так же использующая ту же структуру данных.

Да, как показало последнее падения и как указал комментатор выше — пузырь это скорее курс биткойна, но благодаря сбалансированности экосистемы биткойна, его стоймость рано или поздно возвращается к той цене, которую нельзя считать «переоцененной»
1

Information

Rating
Does not participate
Registered
Activity