Сообщения

Сообщения за май, 2020

Kotlin, базовый синтаксис: строковые шаблоны, условные выражения

Изображение
Строковые шаблоны var a = 1 // простое имя в шаблоне: val s1 = "a is $a" a = 2 // произвольное выражение в шаблоне: val s2 = "${s1.replace("is", "was")}, but now is $a" Условные выражения fun maxOf(a: Int, b: Int): Int { if (a > b) { return a } else { return b } } В Kotlin, if также можно использовать в качестве выражения: fun maxOf(a: Int, b: Int) = if (a > b) a else b Читайте также: Kotlin, базовый синтаксис: пакет, импорт, входная точка, функции Kotlin, базовый синтаксис: переменные Kotlin, базовый синтаксис: комментарии

Не устанавливайте Postgres. Docker pull Postgres

Изображение
С момента появления Docker нет необходимости непосредственно устанавливать программное обеспечение для разработки на локальном компьютере. Будь то серверы баз данных (например, Postgres), системы кеширования (например, Redis, Memcache) или системы обмена сообщениями (например, Kafka) - почти всегда можно найти или создать подходящий docker образ для использования во время разработки. Установить программное обеспечение сложно. И это не имеет ничего общего с вашим опытом в качестве разработчика. Все видели значительную долю столкновений версий, эзотерических сообщений об ошибках сборки и отсутствующих ошибок зависимостей каждый раз, когда приступали к задаче установки нового программного обеспечения для использования. Тратили бесчисленное количество часов, копируя фрагменты кода из Stack Overflow в терминал и выполняли их, надеясь, что один из них волшебным образом решит проблемы установки и заставит программное обеспечение работать. Результатом являются в основном отчаяние, разочарован

Kotlin, базовый синтаксис: комментарии

Изображение
Как и большинство современных языков, Kotlin поддерживает однострочные (или конец строки) и многострочные (блочные) комментарии. // Однострочный комментарий ​/* Блочный комментарий на несколько строк. */ Блок комментариев в Kotlin может быть вложенным. /* Комментрий начинается здесь /* содержит вложенный комментарий */ и заканчивается здесь. */ Читайте также: Kotlin, базовый синтаксис: пакет, импорт, входная точка, функции Kotlin, базовый синтаксис: переменные

Простое приложение с Docker: запуск сервиса, масштабирование приложения

Изображение
Запуск приложения с балансировкой нагрузки Прежде чем мы сможем использовать команду docker stack deploy, мы сначала запустим: docker swarm init Примечание. Описание docker swarm будет в последующих постах. Если вы не запустите docker swarm init, вы получите сообщение об ошибке “this node is not a swarm manager”. Теперь давайте запустим это. Вы должны дать своему приложению имя. Здесь установлено значение getstartedlab: docker stack deploy -c docker-compose.yml getstartedlab В нашем единственном стеке службы запущено 5 экземпляров нашего развернутого образа на одном хосте. Рассмотрим их подробней. Получите идентификатор службы (service ID) для одной службы в нашем приложении: docker service ls Ищите выходные данные для web службы, с добавлением имени вашего приложения. Если вы назвали его так же, как показано в этом примере, это имя getstartedlab_web. Также указывается идентификатор службы, а также количество реплик, имя образа и открытые порты. В качестве альт

Простое приложение с Docker: сервисы и файл docker-compose.yml

Изображение
В этом посте мы масштабируем наше приложение, созданное в предыдущих постах , и включим балансировку нагрузки. Чтобы сделать это, мы должны перейти на один уровень вверх в иерархии распределенного приложения: службы (services). Stack Services (в этом посте) Container (в посте ) О сервисах В распределенном приложении разные части приложения называются " сервисами " (службы). Например, если вы представляете сайт для обмена видео, он, вероятно, включает в себя сервис для хранения данных приложения в базе данных, сервис для транскодирования видео в фоновом режиме после того, как пользователь что-то загрузил, сервис для внешнего интерфейса и так далее. Сервисы на самом деле являются просто "контейнерами в производстве" (containers in production). Сервис запускает только образ, но он кодифицирует способ работы образа: какие порты он должен использовать, сколько реплик (экземпляров) контейнера должно работать, чтобы у службы была необходимая емкость, и т.д. Масшта

Простое приложение с Docker: публикация образа

Изображение
Чтобы продемонстрировать переносимость приложения в контейнере, которое мы создали в предыдущих постах , давайте загрузим наш собранный образ и запустим его где-нибудь еще. В конце концов, чтобы развертывать контейнеры в производственной среде, необходимо уметь передавать образы в реестры. Реестр (registry) - это набор репозиториев, а репозиторий - это набор образов, вроде репозитория GitHub, за исключением того, что код уже собран (пройден build этап). Учетная запись в реестре может создавать множество репозиториев. Интерфейс командной строки docker по умолчанию использует общедоступный реестр Docker. Примечание. Здесь мы используем общедоступный реестр Docker только потому, что он бесплатный и предварительно настроен, но есть из чего выбирать, и вы даже можете создать свой личный реестр с помощью Docker Trusted Registry. Войдите с вашим Docker ID Если у вас нет учетной записи Docker, зарегистрируйтесь на hub.docker.com . Запишите ваше имя пользователя. Войдите в публичный реест