По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Когда мы, разговаривая по IP телефону, слышим голос собеседника в трубке, или, используя систему видеоконференцсвязи, общаемся со своими коллегами и родственниками, то обмениваемся непрерывным потоком данных. При передаче потоковых данных, таких как голос и видео через пакетную сеть, очень важно использовать такие механизмы, которые решали бы следующие задачи: Устранение эффекта потери пакетов Восстановление порядка и контроль поступления пакетов Сглаживание эффекта задержки (джиттера) Именно для этих целей был разработан RTP (Real-time Transport Protocol) - протокол передачи в реальном времени, о котором пойдет речь в сегодняшней статье. Протокол разрабатывался в IETF группой Audio-Video Transport Working Group и описывается в рекомендации RFC 3550. Как правило, RTP работает поверх протокола UDP (User Datagram Protocol), так как при передаче мультимедийных данных очень важно обеспечить их своевременную доставку. RTP включает возможность определения типа полезной нагрузки и назначения последовательного номера пакета в потоке, а также применение временных меток. На передающей стороне каждый пакет помечается временной меткой, принимающая сторона получает ее и определяет суммарную задержку, после чего вычисляется разница в суммарных задержках и определяется джиттер. Таким образом, появляется возможность установить постоянную задержку выдачи пакетов и тем самым снизить влияние джиттера. Ещё одна функция RTP связана с возможными потерями пакетов при прохождении по IP сети, что выражается в появлении кратковременных пауз в разговоре. Внезапная тишина в телефонной трубке, как правило, очень негативно действует на слушателя, поэтому возможностями протокола RTP такие периоды тишины заполняются, так называемым,“комфортным шумом” RTP работает в связке с еще одним протоколом IETF, а именно RTCP (Real - time Transport Control Protocol), который описывается в RFC 3550. RTCP предназначен для сбора статистической информации, определения качества обслуживания QoS (Quality of Service), а также для синхронизации между медиа потоками RTP-сессии. Основная функция RTCP – установление обратной связи с приложением для отчета о качестве получаемой информации. Участники RTCP сессии обмениваются сведениями о числе полученных и утраченных пакетов, значении джиттера, задержке и т.д. На основе анализа этой информации принимается решение об изменении параметров передачи, например, для уменьшения коэффициента сжатия информации с целью улучшения качества ее передачи. Для выполнения этих функций RTCP передает специальные сообщения определенных типов: SR - Sender Report - отчёт источника со статистической информацией о RTP сессии RR - Receiver Report - отчёт получателя со статистической информацией о RTP сессии SDES - содержит описание параметров источника, включая cname (имя пользователя) BYE – Инициирует завершение участия в группе APP - Описание функций приложения RTP является протоколом однонаправленного действия, поэтому для организации двусторонней связи необходимо две RTP сессии, по одной с каждой стороны. RTP-сессия определяется IP адресами участников, а также парой незарезервированных UDP портов из диапазона 16384 - 32767. Кроме того, для организации обратной связи с приложением необходимо также установить двустороннюю RTCP сессию. Для RTCP сессии занимаются порты с номером на единицу большим чем RTP. Так например, если для RTP выбран 19554 порт, то RTCP сессия займет 19555 порт. Наглядно формирование RTP/RTCP сессии представлено на рисунке ниже. Стоит также отметить, что сам протокол RTP не имеет механизмов для самостоятельного установления сессии, эта задачу выполняют протоколы сигнализации, такие как SIP,H.323,SCCP , которые мы подробно рассматривали в предыдущих статьях.
img
В инфраструктуре любого предприятия есть очень много требующих внимания деталей. Например, места для серверов, среды разработки, безопасность, стеки программного обеспечения, обновления программного обеспечения, обслуживание оборудования, что все затраты на обслуживание платформы, как правило, огромны. Компаниям, которые разрабатывают и развертывают приложения, необходимо выделить много ресурсов для поддержания работы платформы - ресурсов, которые в противном случае можно было бы использовать для разработки программного обеспечения. Поэтому возникла необходимость в облачных платформах. Эти решения используют модель облачных вычислений, чтобы предоставить разработчикам все необходимое для выполнения их работы - от сред разработки на хостах и инструментов баз данных до полных возможностей управления приложениями. Разработчики, работающие в облачной платформе, имеют доступ ко всем ресурсам, необходимым для создания, развертывания и запуска программных приложений. Для больших компаний облачная платформа может обеспечить масштабируемую базу для новых приложений, которые необходимо предоставлять в короткие сроки. При использовании модели "плати по мере роста" нет необходимости в долгосрочных инвестициях в локальные платформы. Почему "опенсорс"? Теперь, когда мы заявили о преимуществах облачных вычислений перед традиционными платформами, следующий вопрос заключается в том, почему облачная платформа с открытым исходным кодом является лучшим вариантом, чем запатентованная облачные решения. Самый очевидный ответ - стоимость: лицензии на проприетарные решения всегда предполагают более затратные вложения. Еще одним важным преимуществом является гибкость и свобода выбора из самых разнообразных структур, облаков и услуг. Платные платформы, с другой стороны, могут привязать вас к инструментам и услугам, которыми они владеют. В обмен они предлагают определенные преимущества, такие как соблюдение соглашения об уровне обслуживания (SLA) и освобождение от препятствий, таких как тестирование и интеграция, но эти преимущества едва ли перевешивают преимущества открытости. Ниже представлен список облачных платформ с открытым исходным кодом для предприятий, которые сегодня пользуются популярностью на рынке. Cloud Foundry Созданный компанией VMWare затем приобретённый компанией Pivotal Software, Cloud Foundry отличается тем, что он доступен как автономное приложение с открытым исходным кодом, что делает его независимым от поставщика. Его можно развернуть в VMware vSphere или других облачных инфраструктурах, таких как HP Helion, Azure или AWS. Или даже можно самостоятельно разместить его на сервере OpenStack. Благодаря использованию пакетов сборки Cloud Foundry упрощает поддержку среды выполнения и инфраструктуры. При каждой компиляции приложения Cloud Foundry Application Runtime выбирает наиболее удобный для него пакет сборки. Затем buildpack занимается компиляцией приложения и подготовкой его к запуску. Cloud Foundry разработана для быстрой разработки и развертывания приложений с помощью высокомасштабируемой архитектуры и удобных для DevOps рабочих процессов. Эта технология наряду с другим языками так же, поддерживает языки, как Python, Ruby, PHP, Java и Go. Тем не менее, чтобы правильно вписаться в Cloud Foundry, рекомендуется, чтобы ваш проект соответствовал 12-факторному стандарту приложений - методологии, специально разработанной для разработки оптимальных приложений SaaS. WSO2 Если часто работаете над сервис-ориентированной архитектурой (SOA), то скорее всего у вас есть большое количество внутренних и внешних API. Это тот сценарий, когда WSO2 в большей степени проявляет себя благодаря своему API-менеджеру, способному обрабатывать весь цикл API от начала до конца. WSO2 обеспечивает соответствие большинству требований, которые могут быть выдвинуты клиентами, включая управление версиями, документацию API и разгрузку SSL. WSO2 использует концепцию магазина, в которой разработчики могут находить, пробовать и оценивать API. Развертывание является простым и простым, предоставляя множество опций для управления потоком API. Он также предоставляет функцию автоматического восстановления в случае приостановки работы конечной точки. Все эти качества направлены на сокращение времени вывода на рынок, упрощение управления затратами и, в целом, повышение гибкости бизнес-процессов. Большим плюсом WSO2 API Manager является его простая интеграция с WSO2 Identity Server - решением IAM (Identity and access manager), управляемым API. Эта интеграция предлагает удобную платформу для аутентификации в облачных средах. Cloudify Cloudify - это фреймворк оркестрации, предназначенная для моделирования приложений и услуг при автоматизации их жизненных циклов. Фреймворк включает в себя возможность развертывания в любой облачной среде или центре обработки данных. Он также предлагает инструменты для мониторинга всех аспектов развернутых приложений, определения условий отказа и их решения вручную или автоматически. Одной из наиболее заметных особенностей Cloudify является моделирование проекта на основе TOSCA. Это нововведение позволяет разработчикам использовать YAML для создания чертежей топологий приложения. YAML - считываемый человеком язык сериализации данных, используемый для написания определений на основе спецификации TOSCA, что даёт разработчикам стандартизированный способ описания взаимосвязей между приложениями, системами и компонентами облачной инфраструктуры. Облачная оркестрация Cloudify обеспечивает прочную базу для управления ИТ и обеспечения безопасности, позволяя пользователям применять ограничения доступа с различными ролями и уровнями разрешений. Для общения с внешними сервисами, такими как контейнеры Kubernetes, облачные сервисы (AWS, Azure, vSphere, OpenStack) и инструменты управления конфигурацией (Pucket, Anulable, Chef), Cloudify использует свой набор официальных плагинов, в то время как многие другие сервисы работают с существующими плагинами. OpenShift OpenShift - платформа на базе Kubernetes, с гибким и очень быстрым установщиком и поддержкой большого числа API, что позволяет разработчикам расширять платформу, исходя из своих потребностей. Он построен с учетом безопасности, что иллюстрируется примером: контейнеры должны запускаться от имени обычных пользователей, и когда это не так, OpenShift требует явного переопределения для запуска контейнера. Использование Kubernetes требует значительного количества серверов, и для его освоения требуется определенное обучение. Именно поэтому эта платформа не подходит для небольших проектов, если в ближайшем будущем она не превратится в более масштабный проект. Пользователи OpenShift подчеркивают возможность его быстрой установки и настройки, а также простоту обслуживания модулей и надстроек. Еще один плюс - факт наличия собственного Git репозитория. В противовес этому имеется некая сложность в чтении и интерпретации логов. В частности, когда происходит сбой при загрузке проекта, трудно понять, где проблема. Tsuru Rede Globo, вторая по величине коммерческая телесеть во всем мире, запустила Tsuru как продукт на базе Docker PaaS (платформа как сервис), способный организовывать и запускать приложения в производственной среде. Это платформа с открытым исходным кодом, поддерживающая сайты с миллионами пользователей, разработанная компанией Globo.com. Пользователи Tsuru утверждают, что это существенно улучшает время вывода на рынок, не отказываясь от простоты, высокой доступности, безопасности или стабильности. Его можно запускать на различных облачных инфраструктурах, будь то публичная или частная, при условии, что они поддерживаются Docker-машинами. Также он поддерживает практически все известные язык программирования, что даёт разработчикам свободу выбора в соответствии с их предпочтениями. С помощью Tsuru можно использовать различные хранилища данных, включая базы данных SQL или NoSQL, или альтернативы в памяти, такие как Memcached или Redis. Чтобы управлять приложением, вы можете выбрать один из своих предпочтений и подключить его к приложению. Чтобы управлять приложением, вы можете выбрать между использованием командной строки или веб-интерфейсом, а затем развернуть через Git. Инфраструктура Tsuru займется всеми рутинными делами. Stackato Stackato - это полиглотный продукт PaaS, основанный на Cloud Foundry и Docker, который работает поверх облачной инфраструктуры и служит платформой для запуска приложений. Пользователи Stackato говорят, что он предоставляет гибкую и надежную платформу приложений, которая помогает повысить производительность как администраторов облачных вычислений, так и разработчиков. Он хорошо подходит для развертывания корпоративных облачных сред, сочетая гибкость непосредственного доступа к виртуальной машине в облачной инфраструктуре с автоматизированной конфигурацией, обеспечиваемой полнофункциональной системой PaaS. Среди поддерживаемых облачных инфраструктур можно показать HP Cloud Services, Citrix XenServer, AWS, OpenStack, VMware. В Stackato у каждого приложения есть свой контейнер Linux (LXC), который гарантирует эффективное и безопасное совместное использование ресурсов. Его спектр услуг состоит из Helion Control Plane, который Stackato использует для связи с основным облаком и управления всем циклом услуг; Helion Service Manager - хранилище дополнительных служб, доступных для приложений; Helion Cloud Foundry - гибкая среда выполнения, предназначенная для упрощения хостинга и разработки приложений; Helion Code Engine, сервис непрерывной доставки, интегрированный с репозиториями Git, частными или публичными, и Helion Stackato Console, веб-интерфейс для управления всеми функциями Helion Cloud. Alibaba Хотя и сложно представить компанию Alibaba в числе облачных платформах с открытым исходным кодом и PaaS, бизнес Alibaba Cloud Computing растет быстрыми темпами. Она уже завоевала 50% китайского рынка облачных технологий, а также удачно обслуживает рынки за пределами Китая. Например, они начинают оказывать биллинговую поддержку в долларах США по 168 странам и разрабатывать услуги, специально предназначенные для зарубежных рынков. Сервисы облачных платформ, включенные в предложение Alibaba, включают множество бесплатных функций, включая контейнерные сервисы для Docker и Kubernetes, Container Registry, Auto Scaling и DataWorks, защищенную среду для разработки данных в автономном режиме. Его службы хорошо задокументированы и предоставляют все необходимое, чтобы сразу начать перенос приложений в облако, в том числе много обучающих видеороликов. Следуя нескольким простым шагам и не инвестируя ни цента, Alibaba обеспечивает развертывание приложения в кратчайшие сроки. Заключение К счастью для всех разработчиков, облачные технологии становятся более доступными. Пару лет назад, конкурируя за контейнерные технологии (Docker, Kubernetes, Mesos, Nomad, ECS, назовем несколько) угрожали разделить рынок на изолированные отсеки, создавая значительные риски всякий раз, когда нужно было выбрать платформу. Но, несмотря на то, что в наши дни на выбор предоставляются все больше платформ, различия между сегодняшними вариантами с открытым исходным кодом заключаются только в деталях: разных схемах затрат, разных инструментах управления, разных подходах к безопасности. Другими словами, если выбирали одну облачную платформу с открытым исходным кодом и вас она не устраивает, легко можете перейти к другой, не обременяя себя расходами. В зависимости от технической задачи вы можете выбрать платформу, которая лучше отвечает вашим потребностям и позволяет забыть о таких проблемах, как емкость сервера, промежуточное программное обеспечение, платформы, виртуальные машины, хранилища данных и т.д. После того, как вы освободитесь от всего этого, вы сможете вложить все свои ресурсы и все свое внимание в одно, что действительно важно для вас: как можно быстрее сделать доступным приложение пользователям.
img
Когда вы только начинаете свой путь в IT, естественно и правильно сфокусироваться на изучении языков программирования, стремиться к сертификатам и пополнению портфолио новыми проектами. Но быть выдающимся специалистом —  не значит только лишь блестяще владеть техническими навыками. Если вы хотите подняться на новую ступень карьерной лестницы, нужно продемонстрировать нечто большее, чем просто умение писать код. Исследования в области карьерного образования показывают, что работодатели признают важность софт-скиллов при приеме на работу. Но есть загвоздка: хоть большинство работодателей и согласны с важностью софт-скиллов, мало кто может ответить, какие именно из них критически важны.  Наличие софт-скиллов означает быть доступным, приятным, надежным и заслуживающим доверия – по сути, тем, с кем другим людям нравится работать и о котором они хотят узнать больше. Это открывает вам двери для новых возможностей. В этой статье перечислим 5 наиболее значимых софт скиллов для программистов, а также расскажем, на что обратить внимание при развитии этих навыков. Что такое софт-скиллы Софт-скиллы не связаны с прямыми трудовыми обязанностями сотрудника. В ИТ — это навыки, которые не имеют прямого отношения к разработке или тестированию, но все же необходимы для успешной работы в команде. Люди часто ошибочно приравнивают софт-скиллы к умению общаться, но это не всегда так. Вообще софт-скиллы делятся на две категории: общение (межличностное общение и эмоциональный интеллект) и постановка целей (лидерство, самоконтроль, управление временем). Зачем все это программисту, если его основная задача — написание кода? Самый минимум для каждого профи — это умение эффективно общаться с коллегами. Сегодня большинство продуктов создаются командами, поскольку в одиночку разработать успешный и прибыльный проект практически невозможно. Да, вы можете вложить свой талант, время и усилия, работая без посторонней помощи. Но шансы на успех будут намного выше, если вы будете работать с другими специалистами. ? Быть командным игроком без навыков межличностного общения (умения задавать вопросы, слушать и аргументировать свою точку зрения) практически невозможно. Программистам также нужны софт-скиллы, чтобы планировать свое время, ставить эффективные цели и управлять своими эмоциями.? ? Рано или поздно вы, вероятно, начнете думать о карьерном росте: с каждой новой ступенькой значение soft skills возрастает. Вы просто не сможете получить должность руководителя группы или менеджера без лидерских качеств, эмоционального интеллекта или навыков управления конфликтами.  У многих людей эти навыки не появятся сами по себе – их нужно начинать развивать уже сейчас. И к развитию софт-скиллов следует относиться не менее серьезно, чем к хард-скиллам. Итак, о каких именно навыках идет речь? Давайте разберемся. Коммуникация Программист — это, в первую очередь, технический специалист. Согласитесь, что без специальных знаний коллега без аналогичных знаний просто не поймет, чем вы занимаетесь. И здесь на сцену выходит коммуникативный навык — софт-скилл, который поможет успешно обсуждать свою работу с командой, менеджерами проектов и другими отделами.  Обмен идеями и фидбеком — естественная часть командной работы, но чтобы прийти к успеху в переговорах, вам нужно уметь формулировать свои идеи и относиться к коллегам с уважением. Два профессионала с противоположными идеями должны не спорить, а дискутировать, а для этого необходим эмоциональный интеллект. Коммуникация в рабочих вопросах требует непредвзятости и готовности слушать — в конце концов, чужая идея и правда может оказаться лучше вашей, и это нормально. Единственный способ понять это — переключиться с продвижения собственных предположений на поиск рабочего решения. В бизнесе это часто называют «политикой победы лучших идей» или громоздким термином « меритократия идей ».  Креативность На первый взгляд кажется, что креативность нужна лишь в работе творческих специалистов — художников, дизайнеров и контентщиков. Что тут может предложить программист? На самом деле дела обстоят так: работодатель нанимает вас как профи потому, что вы можете предложить компании что-то уникальное.  Какой бы шаблонной задачей вы не занимались, помните, что вы не просто AI, который может воспроизвести все решения, описанные в учебниках. Вы — классный специалист, который может усовершенствовать любую технологию и придумать нестандартный выход из самой сложной ситуации. Это и есть софт-скилл, который называется креативностью. Найдите возможность творить в своей сфере — и вы поймете, как этот навык повышает ваши шансы на должность мечты. Сотрудничество Расти в карьере — цель многих разработчиков, но важно соблюдать баланс между своими интересами и и интересами команды. Навык сотрудничества также связан с «политикой лучших идей», ведь открытый, дружелюбный специалист может стать той важной точкой, в которой, как в идеальном блюде, сойдутся мысли его команды, собственные идеи и конструктивная критика руководства. Да, в некоторых случаях это означает, что для реализации выберут не вашу идею или решение. Но глобально навыки общения и командной работы принесут только пользу вашей карьере. Если ваша цель — новые грейды и зарплата, роль руководителя может запросто стать вашим будущим. А это значит, что умение слушать, принимать чужую точку зрения и раскрывать сильные стороны своей команды — ключевые навыки. Эмпатия и эмоциональный интеллект Эмпатия — это умение понять, что другой человек чувствует в данный момент. Софт-скиллы программиста начинаются с понимания человеческих взаимодействий, а эмоциональный интеллект играет ключевую роль в этом процессе. Эмпатия, как и коммуникация, помогает понимать точку зрения людей, не связанных с разработкой, и совместно находить решения проблем. Разработчики также должны понимать нужды конечных пользователей, так как изменение требований является обычной практикой в Agile-разработке. Обладая высоким эмоциональным интеллектом, вы сможете: сохранять спокойствие, когда вы сталкиваетесь с непредвиденными обстоятельствами; сохранять фокус на достижении целей организации; понимать проблемы, с которыми могут столкнуться коллеги, и оказывать им помощь. 5. Тайм-менеджмент  Тайм-менеджмент — важнейший навык, когда дело касается работы в IT. Как правило, у программистов есть заинтересованные люди на разных сторонах проекта — и руководители, и заказчики, и конечные пользователи, и PM’ы — и всем важно увидеть результат в срок. Грамотная организация времени помогает сосредоточиться на важных целях и приоритетах, что сделает работу более целенаправленной и эффективной. Неочевидный бонус тайм-менеджмента состоит в том, что когда мы управляем своим временем эффективно, у нас есть больше свободы для отдыха, релаксации, хобби и личного развития — а это повышает качество жизни и хорошо влияет на работу. Что учесть при прокачке софт-скиллов Важно понимать, что софт-скиллы ничем не отличаются от любых других навыков. Вы должны практиковать их регулярно, если хотите прийти к совершенству, и может пройти некоторое время, прежде чем они начнут приносить свои плоды.  Первый шаг к самосовершенствованию — это оценка имеющихся у вас навыков и областей, в которых вы можете вырасти. Подумайте о своей эффективности на рабочем месте и составьте список способностей, которые вы хотите прокачать. Допустим, проблема в том, что вы не всегда четко излагаете свою позицию. В результате между вами и вашими коллегами часто возникают недопонимания, что замедляет совместную работу. Это может привести к срыву сроков, конфликтам и финансовым потерям. «Почему» ясно: вам нужно работать над этим навыком ради своей команды и своей компании. Беспристрастный взгляд коллеги или руководителя также поможет вам оценить ваш уровень софт-скиллов. Попросите кого-нибудь, с кем вы работаете, проанализировать вашу работу — и возьмите конструктивную критику на заметку. Помните, что активное применение новых навыков жизненно важно для достижения цели. Например, если вы хотите лучше решать проблемы, вы можете добровольно взять на себя управление сложным проектом. Если вы хотите лучше управлять своим временем, вы можете попрактиковаться в учете времени и понять, сколько времени вы тратите на каждую задачу.  Заключение  Поскольку IT — одна из самых высокооплачиваемых сфер, спрос на разработчиков программного обеспечения постоянно растут. По этой причине кандидаты должны обладать различными техническими и нетехническими навыками, которые следует учитывать в работе.  При выборе между двумя кандидатами с одинаковыми хард-скиллами предпочтение будет отдано кандидату, который также обладает уверенными софт-скиллами. Выгоднее брать на работу человека, который умеет брать на себя ответственность, любит проявлять инициативу, руководить процессом, умеет общаться с коллективом и хорошо распределять время.    
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59