@spbpython

Страница 297 из 785
Serge
22.02.2017
23:03:11
Ансиблом и поднимал, только это давно было. А теперь не очень понятно, как, например, 3 старых удалить, а 5 новых создать. По описанию тераформа примерно такое позволяет легко сделать.
ну, терраформ более декларативный, да, но это Хашикорп, а это гаратния странных отношений с головой. с ансиблом можно писать плейбуки, типа "ensure absent". т.е. типа писать отдельное определение, что тебе чего-то не нужно. более ansible way — сносить всё и всё заново поднимать;) ну по возможности, например через blue/green deployment

Если на одном, то какие альтернативы? Конкретно - DO
Ну, DO так-то для тыкания мышкой в их няшках же. гуйка для хипстеров. вот и весь вендор лок;)

Aleksandr
22.02.2017
23:05:39
@lig11 а как ты rolling update сделаешь-то таким образом?

Я про ensure.

Google
Serge
22.02.2017
23:06:30
ну, терраформ более декларативный, да, но это Хашикорп, а это гаратния странных отношений с головой. с ансиблом можно писать плейбуки, типа "ensure absent". т.е. типа писать отдельное определение, что тебе чего-то не нужно. более ansible way — сносить всё и всё заново поднимать;) ну по возможности, например через blue/green deployment
т.е. вот у тебя есть окружение "G", которое ты поднимал раньше. и есть окружение "B" - то что ты хочешь получить. и переключалка между ними. сейчас переключаешь с G на B, в следующий раз поднимаешь новый G и потом переключаешь на него

Я про ensure.
я потому и написал "по возможности";)

blue/green можно делать плавно. от конкретики зависит.

blue/green можно делать плавно. от конкретики зависит.
это собственно и есть rolling update, по сути;)

Sergey
22.02.2017
23:49:21
*106M* Feb 15 19:30 terraform 106 метров? оно меня не съест?

Aleksandr
23.02.2017
00:44:24
@lig11 не совсем. В blue/green переключается трафик махом на новые реплики, в rolling update постепенно, в зависимости от настроек.

Поэтому rolling update не всегда людям подходит.

https://youtu.be/-Ci4vd4rh4M к примеру про blue/green велосипед в kubernetes, потому что людям не подошел ru

Cyril
23.02.2017
01:44:14
Привет, а тут есть кто-нибудь из WG/Lesta?

I
23.02.2017
04:46:11
меня не взяли туда года два назад на actionscript(

Dmitry
23.02.2017
05:09:21
Привет, а тут есть кто-нибудь из WG/Lesta?
пара человек, но пусть сами отзовутся)

Google
GNU/Docker
23.02.2017
07:12:57
Я писал некоторую поддержку терраформа нашим облаком. Прикольная штука

Евгений
23.02.2017
07:20:34
http://pastebin.com/46N0jQ28
грёбаннный стыд. что за жесть? зачем???

[root@localhost ~]#
23.02.2017
07:23:09
грёбаннный стыд. что за жесть? зачем???
что бы меньше ибаста с настройкой

да скрипт ещё очень сырой и корявый

Aleksandr
23.02.2017
07:38:15
Хотя бы делал один write массиву строк :)

[root@localhost ~]#
23.02.2017
07:41:23
это грубый не оптимизированный набросок

Aleksandr
23.02.2017
08:27:32
Понятно. Просто я набрасываю сразу без копи-пасты где мог бы допустить ошибку

Serge
23.02.2017
09:15:26
Хотя бы делал один write массиву строк :)
Да на хер там массив. Даже без jinja есть string.Template

Aleksandr
23.02.2017
09:16:05
Да это-то понятно. Я просто всегда удивляюсь почему люди любят делать копи-пасту :)

Dmitriy
23.02.2017
09:16:05
"""

Aleksandr
23.02.2017
09:16:24
foo(a) foo(b) foo(c) foo(d) Почему for + tuple не сделать ?

@zaz600 опасно так :) var = “””a = 1 b = 2 c = 3 d = 4 Выравнял случайно и поломал все :)

Serge
23.02.2017
09:27:43
http://pca.st/Ax5X

http://pca.st/Ax5X
Guido on Talk Python

Sergey
23.02.2017
09:33:20
есть документы в mongodb с полем timestamp 1) фильтрую "$match": {timestamp: {$ne:null}} 2) преобразую timestamp в дату, группирую по дням в консоли mongo всё отлично, а pymongo выдаёт первый результ с "_id": { "datetime": null } это фича такая?

Serge
23.02.2017
09:34:54
да скрипт ещё очень сырой и корявый
И не решает задачу. Поддерживать его сложнее, чем ходить на целевые машины и делать всё руками в кофигах

Dmitry
23.02.2017
10:10:33
Stepan
23.02.2017
10:52:40
Можно я сюда пожалуюсь, что asyncio это провал и я жалею, что вобще с ним связался?

Google
Dmitry
23.02.2017
10:53:30
можно :)

только мы ж хотим подробностей, Степан

Stepan
23.02.2017
10:54:49
короче я в свое время написал и поддерживаю https://github.com/szastupov/aiotg

по началу было прикольно, типа async/await, никакого callback hell, все просто

потом стало понятно, что пользователям библиотеки тяжело понять как asyncio работает - они постоянно забывали эвэйтить корутины, но в прочем Armin про это уже писал http://lucumr.pocoo.org/2016/10/30/i-dont-understand-asyncio/

в разных библиотеках для asyncio разныее inconsistencies, например где-то можно прокинуть вверх корутину и не юзать await, а где-то встроенная в библиотеку магия это ломала (python-socketio например)

в итоге я психанул с того, что aiohttp скоро сломает старый api (aiohttp.get, aiohttp.post) и нужно переходить на aiohttp.ClientSession который без async with нормально юзать не получается, а я же не буду API ломать

и aiohttp не одни такие, все сейчас экспосят __aenter__ __aexit__ типа юзайте

код вы итоге получается в ехал async через await через async with и тд

короче, приходишь к мысли, что это не Python way, что нафига так жить если проще уже на ноде писать

Sergey
23.02.2017
11:04:58
Звучит замечательно :D

Stepan
23.02.2017
11:05:54
ну и Promise в javacsript более удобная концепция - это не Future, промис представляет из себя уже запущенный процесс, тебе не нужно явно регистрировтаь его в лупе, не нужно эвэйтить, он и так выполнится (есть исключения конечно, если промис не зарелзолвили но на практике обернутый в промис код делает)

Stepan
23.02.2017
11:06:44
и async/await в javascript работает поверх промисов и целиком совместим: async function foo (bar) { return bar + ' baz' } foo('test').then(console.log)

Stepan
23.02.2017
11:10:50
так если ты делаешь run_in_executor - оно работает точно так же
я использую run_in_executor для того чтобы юзать не asyncio код, например либу которая юзает requests или boto3

Stepan
23.02.2017
11:11:16
наверное ты имел в виду loop.create_task

Nikolay
23.02.2017
11:11:26
либо чтобы в отдельном процессе стартовать отдельный луп

наверное ты имел в виду loop.create_task
loop.create_task - это же корутина все равно

Google
Nikolay
23.02.2017
11:11:58
а ты пишешь, что хочешь что-то, что не надо await’ить

Stepan
23.02.2017
11:12:47
нет

loop.create_task() вернет корутину и точно добавит ее в луп

те можно сделать create_task и забить и не эвэйтить

но не будешь же так постоянно делать

Nikolay
23.02.2017
11:17:30
ну, ты можешь обернуть функции в декоратор, чтобы они сами добавлялись, например

Stepan
23.02.2017
11:17:43
костыли костылики

Nikolay
23.02.2017
11:17:57
почему? нет

Admin
ERROR: S client not available

Nikolay
23.02.2017
11:18:01
а чего ты хотел

если работаешь с корутинами - то либо так, либо await

третьего особо не дано

Stepan
23.02.2017
11:19:03
ну да в общем

но не удобно же

Nikolay
23.02.2017
11:20:29
явное лучше неявного

что неудобно?

Stepan
23.02.2017
11:20:47
явное лучше неявного
особенно когда забыл корутину проэвэйтить

Nikolay
23.02.2017
11:21:02
особенно когда забыл корутину проэвэйтить
так для тебя даже эксепшен сделали специальный

Stepan
23.02.2017
11:21:06
слишком много явного это уже шум, хотел бы шума писал бы на го

Nikolay
23.02.2017
11:21:08
coroutine was never awaited

Google
Stepan
23.02.2017
11:21:40
я в свое время очень ругал ноду с ее callback hell, а спустя года их модель оказалась более устойчевой и эволюцианировала и выглядит более простой и элегантной

Nikolay
23.02.2017
11:22:21
“нода” и “элегантный” в одном предложении в питончате - это что-то :)

там нету ничего элегантного, да и async-await там только появился, причем он не сильно отличается от питоновского

ну, кроме момента, который ты выше упомянул, но и он легко решается

Nikolay
23.02.2017
11:23:58
Stepan
23.02.2017
11:25:39
ну лан, я не в брасыаю, я ж из опыта работы и с тем и с другим. просто мой совет сильно не обольщаться по поводу asyncio, не все там радужно и просто

Nikolay
23.02.2017
11:28:13
я вот дико рад, что в 3.6 асинхронные генераторы теперь есть

давно пора

Stepan
23.02.2017
11:29:42
а я грущу, что в javascript нет вокруг генераторов/итераторов экосистемы и нет list comprehensions вообще (

Nikolay
23.02.2017
11:37:55
я не грущу, потому что меня ни разу не вставляет javascript

и я желаю, чтобы он поскорее уступил место нормальным языкам)

но это вряд ли скоро произойдет

Dmitry
23.02.2017
11:39:06
js быстрее сам станет нормальным (и он уже неплох)

судя по движу

Nikolay
23.02.2017
11:42:13
не станет

его проблема - люди, которые на нем пишут

у них сами собой руки не исправятся

Dmitry
23.02.2017
11:42:39
это фраза про проблему языка php изначально была =)

главная проблема языка программирования php - люди, которые пишут на php

Страница 297 из 785