По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Привет, сегодня расскажем что такое база данных и SQL. У современных баз данных куча нюансов - погнали разбираться. Представь - собираешь ты деньги на подарок корешу, и записываешь на бумажке, кто сколько скинул. Табличка с денежками организована, разделена по именам и сумме долга, и имеет удобную структуру - ну вот оно, это и есть база данных! Ага, теперь, перемещаемся в цифровое пространство и заводим целый эксель файл для этого дела. Стало удобнее, можно редактировать, сортировать и даже данные удалять! Круто! Но достаточно ли этого для роста этой базы данных? Нет. Со временем данных становится так много, что админам приходится связывать их друг с другом, а тут одним эксель файлом уже не обойтись. Представим, решили вы сделать свой аналог ютуба, как будете хранить инфу о пользователях? Список юзеров, там, каналы, кто на что подписан, лайки и вот это все. Сложить это все в одну таблицу? Будет неудобно и медленно работать. Очевидно, надо разделить сущности на несколько таблиц - юзеры, каналы и видосы: Теперь свяжем данные между собой и добавим информацию о том, кто создал канал, и на каком канале залили видео. Ага, получились связанные таблицы. Связанные, от слова связь. А связь, это по-английски relation. А в айти тусовке они так и называются - реляционные базы данных, и это один самых распространенных типов баз данных. Еще есть нереляционные базы данных, о них подробнее можно прочитать в этой статье про NoSQL. Уф, ну теперь с данными стало гораздо удобнее работать, и мы избежали большой таблицы с повторяющимися строчками, разбив все на несколько табличек. Такой процесс еще называется нормализацией, когда мы избавляемся от избыточных данных. Ну и как раз для этого мы ввели в каждой таблице специальное поле - ID, которое идентифицирует каждую запись. Этот айди называется Primary Key, он же “первичный ключ”. А в таблице которая будет на него ссылаться, он будет называться Foreign Key, или по-русски “внешний ключ”. Нырнем в детали и поговорим про типы связей между таблицами. Первый тип называется “Один-ко-многим” или “многие-к-одному” (One-to-Many или Many-to-One). В нашем примере, у каждого видео может быть только один канал, где оно выложено, но на одном канале может быть много видео, поэтому в двух последних строках ID канала у нас повторяется, верно? Отношения «один-ко-многим» также можно рассматривать как отношения «многие-к-одному», в зависимости от того, с какой стороны вы на это смотрите. Второй тип связей называется “один-к-одному” (One-to-One) - классические табличные отношения. Вообще, это редко используемый тип связи, обычно его делают для безопасности. Это как если на нашем аналоге ютуба, мы разрешили бы создавать только один канал одному пользователю и в таблице с каналами ID создателя не могло повторяться. Такое себе, согласен? В таком случае вообще можно было бы обойтись и одной таблицей. Ну и третий тип связей, это “многие ко многим” (Many-to-many). Это когда у нас появляется промежуточная таблица связей, которая как бы соединяет два отношения “один ко многим”, которые мы обсудили в начале разбора типов связей. Давайте сделаем таблицу с лайками балалайками, где будем хранить ID пользователей и ID видео, к которым они поставили лайк: А вот так они связан: каждый пользователь может поставить лайк каждому видео. Теперь вопрос - а где все это хранить? Не в экселе же. И тут на сцену выходит термин СУБД, она же система управления базами данных - это программа, которая позволяет создавать, редактировать и администрировать реляционную базу. Ну и для управления всей этой петрушкой используется язык структурированных запросов, SQL (Structured Query Language) эскюэль или сиквел, как иногда его называют за рубежом. Он очень простой и понятный, вот смотри - чтобы найти названия всех видео с одного канала, нам нужно выполнить следующий запрос: SELECT name FROM videos WHERE channel_id = 201 То есть мы буквально говорим: выбери (SELECT) имена из (FROM) таблицы видео, где (WHERE) айдишник (ID) канала равен 201. Если вы хотите взять данные из нескольких таблиц и объединить результат, то нужно использовать в запрос параметр JOIN (от английского соединить). Вот такая упрощающая жизнь админам аналогия с разговорным языком. Так, SQL конечно позволяет добавлять, удалять и изменять данные и сами таблицы. Но важно не забывать про схему базы данных (Database schema), которая служит для описания структуры таблицы, ее полей и ограничений. Прикол в том, что если вам потребуется добавить или убрать столбец в таблице, то это изменение коснется вообще всех данных в таблице, таким образом если мы добавляем новый столбец, то он теперь будет присутствовать в каждой строке. Окей, а для чего вообще нужны ограничения? Для целостности твоих данных. Помнишь мы рассказали про первичный и внешний ключ? Так вот, благодаря им мы можем удостовериться, что в таблицу не попадет запись, которая ссылается на несуществующий айдишник. Или различные ограничения полей, которые не дадут записать дублирующие или пустые данные в нашу базу (Not NULL и Unique). И еще: транзакции. Эта штука, которая позволяет как бы склеить несколько SQL запросов в один. Ну вот представь такую задачку: вставить данные в первую таблицу, а во второй указать ID вставленной записи. Если ты делаешь это без использования транзакций, а во время второго этапа у тебя отвалится интернет, то первая запись попадет в базу, а вторая нет. Ага, появляется интернет, и ты с улыбкой на лице идешь снова выполнить эти запросы, только на этот раз получишь ошибку, что такая запись уже есть, ибо первая то уже в базе! А в случае использования транзакций, при получении ошибки, мы откатимся до того момента, который был до начала транзакции. А еще все эти радости помогают реляционным БД (базам данных) соответствовать так называемым требованиям ACID, которые нужны для сохранности данных - это очень важно в банковской отрасли, или любой другой, где целостность и сохранность данных супер важны. Давай разберемся с аббревиатурой: Atomicity — атомарность, или же проще говоря, непрерывность: это как раз про транзакции, которые мы обсудили только что. Либо операция выполняется целиком, либо никак. Consistency — согласованность: данные, записываемые в таблицу должны соответствовать всем выставленным правилам и ограничениям, помнишь, мы говорили про первичный и внешний ключи, а также про уникальность? Isolation — изолированность: если вы гоняете тонну транзакций одновременно, они не должны пересекаться и влиять друг на друга. Это очень важно для высоконагруженных баз Durability — надежность: если мы получили подтверждение, что транзакция выполнена, то значит наши данные в сохранности, даже если после этого произошел сбой. Ну и в качестве примеров таких баз данных назовем: Microsoft SQL Server, Oracle Database, MySQL, MariaDB и PostgreSQL.
img
Год назад компания OpenAI выпустила свой блокбастер — чат-бота ChatGPT. Сотни миллионов людей экспериментировали с этим инструментом, и мы видим, что он уже поменял представление о том, как будет выглядеть и восприниматься интернет для пользователей. Сейчас ChatGPT больше не единственный инструмент для диалогового ИИ. У него есть серьезная конкуренция со стороны нескольких инструментов, например, Claude. Среди его отличий от ChatGPT — поддержка API, то есть бот можно встроить в экосистему бизнеса. Claude AI, разработанный исследователями из Anthropic, представляет собой альтернативу ChatGPT, которая генерирует текстовые ответы на диалог. В этой статье мы рассмотрим некоторые интересные возможности ChatGPT и покажем, какую пользу он может принести вам, вашей работе и бизнесу. Что умеет ChatGPT? Обратите внимание на то, что ИИ не обладает собственными знаниями — его работа основана на анализе большого объема текстовых данных. Бот же старается предоставить информацию и помощь на основе этого обучения, например: ответы на вопросы: вы можете спрашивать его о фактах, концепциях, истории и т.д. Составление текста: он поможет написать статьи, эссе, письма, посты. Обучение: если у вас есть вопросы, связанные с изучением новых тем, он найдет и предоставит вам нужную информацию. Перевод: ИИ поможет с переводом текста с одного языка на другой. Генерация идей: если вам нужны идеи для проекта, исследования или творчества, он предложит варианты. Просто поговорить: вы можете пообщаться с чат-ботом на любые темы. Написание кода: ИИ поможет с вопросами по программированию, предоставит фрагменты кода или объяснения алгоритмов. В целом, AI-боты умеют много чего интересного: от поиска идей для украшений, планирования вечеринок, и до более полезных преимуществ, таких как помощь в программировании. Что может сделать нейросеть действительно хорошим помощником? Вы, а точнее, хорошие промты. Они несколько отличаются от привычных нам запросов для поисковых систем: давайте разберемся, как они выглядят. Как правильно написать промт для чат-бота? Лайфхаки для ChatGPT Промты играют решающую роль в том, какой результат вы получите от языковой модели. Промты — это то, что направляет ИИ в генерации ответа для пользователя. Давайте разберемся пошагово в том, что важно для написания хорошего запроса для языковой модели. 1. Определите контекст разговора Чтобы успешно задействовать чат-бота, ваш запрос должен четко отражать контекст текущей ситуации. Например, почувствуйте разницу между запросами: «Напиши письмо с благодарностью для моего преподавателя» и «Напиши письмо от моего имени на 1000 символов о том, как мне понравилось учиться у моего преподавателя, как я усвоил основы программирования и нашел интересную работу благодаря ему». 2. Будьте максимально конкретны Стремитесь писать свой запрос максимально четко и конкретно. Расплывчатые или двусмысленные обращения могут привести к тому, что бот начнет «изобретать велосипед» или просто выдаст результат, который не соответствует вашим ожиданиям. 3. Пишите запросы по очереди Если вы используете ИИ-бот для выполнения какой-либо задачи, например, написания фрагмента текста или исследования темы, вы можете вписывать свои запросы по очереди. Таким образом, вместо того, чтобы запрашивать все сразу, вы можете создать диалог, основанный на предыдущем ответе бота. Таким образом вы сможете вести разговор до тех пор, пока не достигнете желаемого результата. 4. Используйте персонализацию Пользовательский контекст сделает выдачу бота более актуальной. Вписывайте в свой запрос имена, которые должны фигурировать в ответе, местоположение, время или что-то еще, что имеет отношение к контексту. 5. Приводите примеры Главная фишка любой нейросети — в ее способности к обучению, не зря существует такая должность, как промт-инженер. Добавляйте примеры в начало диалога, чтобы машина строила свои ответы на основе того, что вам нужно — это поможет ей более четко понять ваши ожидания. Создание промтов для чат-бота GPT — это процесс, требующий нескольких итераций. Советуем экспериментировать с различными формулировками, чтобы понять, что лучше всего подходит для ваших целей. Проверяйте свои запросы по ходу дела и наблюдайте, как на них реагирует чат-бот. Затем вы можете проанализировать полученный результат и соответствующим образом уточнить подсказки. Чем чаще вы повторяете этот процесс, тем лучшего результата достигнет ваш чат-бот и тем лучше вы научитесь писать эффективные запросы. Лайфхаки для написания эффективного промта Вы можете потренироваться в написании хороших промтов самостоятельно, а можете изучить зарубежные источники: например, ресурс Great Prompts с исчерпывающей информацией о запросах для ИИ. Вот несколько примеров фраз, которые можно использовать для генерации промта в различных контекстах. Для написания кода: «напиши программу, которая...», «создай код для решения задачи...», «пример кода на [язык программирования] для...». Для получения текстового описания: «расскажи о принципах работы...», «сформулируй ответ на вопрос...», «опиши процесс...». Для конкретизации запроса: «дай подробное объяснение по теме...», «как работает...?», «поясни, что такое...». Для тренировки навыков: «подскажи примеры использования...», «какие существуют методы для...», «помоги мне разобраться в...». Для генерации идей: «предложи варианты для...», «какие идеи есть по теме...», «как можно улучшить/изменить...». Для формирования мнения: «как ты относишься к...», «какие преимущества и недостатки...», «сравни... и ... и дай свой вывод». Чем более конкретный и четкий запрос вы дали, тем вероятнее, что модель предоставит вам нужную информацию. Экспериментируйте с разными формулировками, чтобы найти лучший способ взаимодействия с ботом. Как использовать ИИ в программировании? Если вы хотите повысить эффективность написания кода, ChatGPT может оказаться именно тем инструментом, который вам нужен. Вот почему: скорость и эффективность: ChatGPT может быстро генерировать фрагменты кода, сокращая время и усилия, которые тратятся на ручное программирование. Помощь в сложных задачах: он поможет в решении сложных задач по программированию — а вы можете сосредоточиться на стратегических задачах вашего проекта. Снижение количества багов: ChatGPT дает дополнительный код-ревью, а это значит, он может свести к минимуму ошибки в вашем коде. ChatGPT был обучен на огромном объеме данных, которые включали в себя и код из множества языков программирования. В результате он может помочь в программировании на различных языках: Python, JavaScript, Java, C++, C#, Ruby, Swift , R. Это всего лишь примеры — ChatGPT может обрабатывать запросы, включающие и другие языки программирования. Как языковая модель поможет вам писать код Прежде, чем мы разберемся, как ИИ поможет вам с написанием кода, определитесь, что должна делать ваша программа в конечном результате? Представьте, что вы платите за работу программисту, которого видите впервые. Даете ли вы этому человеку достаточно информации, чтобы он мог работать над вашим заданием? Или же ваши формулировки слишком расплывчаты, и человек, которого вы наняли, с большей вероятностью начнет задавать уточняющие вопросы или выдавать результат, который вас не устраивает? Итак, если вы представили перед собой талантливого программиста, работающего только по четкому ТЗ, переходим к тому, с чем вы можете к нему обратиться: Помощь с синтаксисом: если у вас возникли вопросы по синтаксису определенного языка программирования, вы можете получить полезную информацию. Генерация кода: опишите задачу или конкретную проблему, с которой вы сталкиваетесь. Бот предложит фрагменты кода или примеры, которые могут помогут вам в решении. Объяснение алгоритмов: бот предоставит объяснения и примеры, если у вас есть вопросы по поводу определенного алгоритма или концепции программирования. Тестирование кода: если у вас есть кусок кода, который вы хотели бы протестировать, вы можете поделиться им чат-ботом, и он поможет выявить возможные ошибки или предложить улучшения. С чем ИИ не работает или работает неправильно? Разумеется, любой искусственный интеллект — это не панацея и точно не тот инструмент, который сделает все за вас. Вот несколько слабых сторон ИИ, о которых стоит помнить: Отсутствие понимания контекста. ИИ, в том числе и модели на основе GPT-3.5, не всегда способен понимать контекст в том же смысле, в каком его понимает человек. Модели могут давать ответы, которые кажутся логичными, но они основываются на шаблонах и не всегда отражают объективную реальность. Отсутствие эмоционального интеллекта. Разумеется, ИИ не способен распознавать и понимать эмоции человека так, как это делают люди. В общении с ИИ может отсутствовать эмоциональная составляющая и понимание контекста, связанного именно с эмоциями. Неопределенность и недостаток критического мышления. ИИ может давать ответы даже на те вопросы, на которые нет однозначного ответа. Бот полагается на данные, на которых он обучен. Если эти данные предвзяты, неполны или ошибочны, то и результаты работы ИИ могут быть ложными. Беспристрастность и бездушность. ИИ лишен собственных убеждений и чувств. Это означает, что он может предоставлять информацию или выполнять задачи без учета моральных, этических или социальных аспектов. «С эмпатией все понятно, а могу ли я доверять коду, который пишет ИИ?», — спросите вы первым делом. Скорее нет, чем да. Но вы также не можете быть уверенными в коде, который пишут программисты-люди. Прежде чем брать конечный результат в работу, вам нужно провести серию тестов. Правда ли, что ИИ может заменить человека в работе? Первый вопрос, который задает каждый, кто познакомился с возможностями нейросетей — «заменит ли искусственный интеллект человека?» Боты на основе ИИ не заменят сотрудника с его аналитическими данными, эмпатией и пониманием отдельных деталей его професси. Но нейросеть точно подойдет для продуктивного сотрудничества и улучшения перфоманса! Автоматизация рутинной работы может освободить вам время для творческих и стратегических задач. Поэтому вакансии становятся более технологически ориентированными, требуя от сотрудников навыков в области взаимодействия с ИИ. Растет спрос на специалистов, способных обслуживать, программировать и развивать технологии искусственного интеллекта. Важно осознавать, что ИИ ограничен своим программным кодом и данными, на которых он обучен. Так что в областях, требующих творческого мышления, софт-скиллов и этических решений, человек остается попросту незаменимым.
img
При внедрении культуры DevOps, вне зависимости от инфраструктуры организации, программного инструменты имеют решающее значение. В этой статье расскажем о лучших инструментах управления конфигурацией в DevOps. Но давайте сначала выясним, что такое DevOps. Что такое DevOps, что нужно знать и сколько получают DevOps - специалисты? Что такое DevOps? DevOps происходит из интеграции команд разработчиков (Dev) и специалистов по информационно-техническому обслуживанию(Ops), чтобы обеспечить ценность для клиентов и создать гибкость в разработке программного обеспечения. DevOps сосредоточен на том, как люди работают и сотрудничают, делясь своими мыслительными процессами и приоритетами, чтобы ускорить разработку программного обеспечения. Как культура, основная идея DevOps заключается в оптимизации функций и эффективности задействованных команд независимо от используемых инструментов. Но как началась эта единая разработка? Ранее в жизненном цикле разработки программного обеспечения были разработчики, чья работа заключалась в написании кода, как указано клиентами, без настройки и обслуживания среды для требуемого программного продукта. Команда информационно-технического обслуживания выполняла производственные операции и задачи технического обслуживания, переживая все кошмары, связанные с производственным этапом. Представьте себе управление программным продуктом, в разработке которого вы не участвовали! Тяжело, да? Команда Ops несла бремя реализации ошибок, управления зависимостями инфраструктуры и, скорее, проблем, связанных с производственной средой программного обеспечения. Чтобы устранить этот пробел, был придуман DevOps – тандем людей, задач и всех сквозных процессов, необходимых для предоставления клиентам тщательно разработанного продукта. Почему DevOps так важен? Когда команды в любой среде разработки правильно интегрируют методы DevOps, такие как непрерывная интеграция и управление конфигурацией, компании получают следующие преимущества: Более короткие циклы выпуска приложений DevOps служит для поддержки готовой к развертыванию базы кода, где в любой момент команда DevOps может запускать доступные версии программного обеспечения без сбоев продукта. CI/CD-конвееры, со всей автоматизацией и тестами, обеспечивают последовательную запуск стабильного программного продукта в производство, что позволяет разработчикам добиться более коротких циклов выпуска. Наглядность процессов разработки Выявление дефектов программирования, обнаружение угроз безопасности, инициирование откатов и даже реагирование на инциденты могут быть затруднены, когда среда разработки подобна черному ящику. Более короткие циклы выпуска и непрерывный мониторинг в DevOps приводят к большей видимости всех операций. Что такое управление конфигурацией в DevOps? Управление конфигурацией - это автоматизация значительных и повторяющихся действий в ИТ-среде. Управление конфигурацией решает задачи, которые должны быть выполнены на тысячах машин. Такие задачи могут включать установку, модернизации и обновление программного обеспечения, управление исправлениями, обеспечение безопасности, управление пользователями и т.д. С появлением контейнерных технологий и других усовершенствований инфраструктуры, системные администраторы считают, что настройка ИТ-сред без средств автоматизации является сложной задачей. К счастью, существуют средства управления конфигурацией для создания и оптимизации сред времени выполнения. Инструменты управления конфигурацией в DevOps предоставляют необходимую инфраструктуру через сценарии/Инфраструктуру как код. Рассмотрим следующие широко используемые средства управления конфигурацией. 1. Ansible Решение Ansible автоматизирует настройку инфраструктуры, развертывание приложений и выделение ресурсов облачных сред, используя модель услуг «Инфраструктура как код». Ansible - это полезный инструмент, который инженеры DevOps могут использовать для автоматизации управления инфраструктурой, приложениями, сетями и контейнерной средой. Инженеры широко используют этот инструмент для автоматизации и настройки серверов. Это средство масштабирует повторяющиеся задачи в администрировании инфраструктуры с помощью определенных плэйбуков. В данном случае плэйбук представляет собой простой файл сценария на YAML, детализирующий действия, выполняемые механизмом автоматизации Ansible. С помощью автоматизации Ansible сисамдины могут создавать группы машин для выполнения определенных задач и управлять работой машин в производственных средах. Anible используют такие известные компании, как Udemy, Alibaba Travels, Tokopedia. Особенности Ansible Tower, платформа в рамках Ansible, является панелью управления визуализацией для всей ИТ-среды. С помощью управления доступом на основе ролей (RBAC) область Ansible может создавать пользователей и управлять разрешениями для сред. Технология Ansible поддерживает как локальные конфигурации, так и мультиоблачные инфраструктуры. Подробнее про Ansible 2. Puppet Puppet - это еще одна платформа с открытым исходным кодом, подходящая для обеспечения отказоустойчивой инфраструктуры. Инженеры DevOps могут использовать Puppet для настройки, развертывания, запуска серверов и автоматизации развертывания приложений на настроенных серверах. С помощью Puppet можно устранять операционные риски и риски безопасности в ИТ-среде путем обеспечения постоянного соответствия нормативным требованиям. Она включает автоматизацию инфраструктуры Windows, управление исправлениями и управляемые операции приложений. Тысячи компаний, включая Google, Cisco и Splunk, используют Puppet для управления конфигурацией. Особенности Высокая расширяемость, поддержка нескольких инструментов для разработчиков и API. Puppet включает Bolt, мощный оркестратор задач для автоматизации ручных задач. Puppet хорошо интегрируется с Kubernetes и Docker. Подробнее про Puppet 3. Chef Chef, как средство в DevOps позволяет выполнять задачи управления конфигурацией на серверах и других вычислительных ресурсах. Chef для управления инфраструктурой использует агентов, таких как Chef Infra, для автоматизации конфигурации инфраструктуры. Использование Chef в процессах автоматизации просто. С помощью нескольких щелчков мыши можно включить и запустить несколько узлов. Для управления конфигурацией команды DevOps создают «рецепты». Рецепты содержат описание ресурсов и пакетов программных обеспечений, необходимых для настройки серверов. Chef использует Cookbooks, Chef servers и Nodes в качестве основных компонентов для настройки и автоматизации. Ведущие компании как Facebook, Slack и Spotify, использовали Chef в своих экосистемах. Особенности Chef - платформа автоматизации на базе Агента. Chef обрабатывает инфраструктуру как код. Поддерживает все операционные системы и интегрируется с любой облачной технологией. Chef обладает аналитикой Chef для мониторинга изменений, происходящих на сервере Chef. Подробнее про Chef 4. Saltstack Saltstack или просто соль - это масштабируемый инструмент управления конфигурацией и оркестровки. Команды DevOps используют Saltstack для управления ИТ-средами как центры обработки данных, посредством управляемой событиями оркестровки и удаленного выполнения конфигураций. Структура управления конфигурацией Salt использует состояния и файлы конфигурации, чтобы показать, как выполняется выделение и развертывание ИТ-инфраструктуры. Файлы конфигурации описывают устанавливаемые пакеты инфраструктуры, запускаемые или останавливаемые службы, пользователей и процессы создания пользователей, а также многие другие необходимые задачи по выделению ИТ-среды. Особенности Платформа Salt Cloud для настройки ресурсов в облаке. Поддерживает управление узлами как на основе агентов, так и без агентов. Поддерживает операционные системы * NIX и Windows. 5. CFEngine CFEngine - это высокомасштабируемая платформа для автоматизированного управления ИТ-инфраструктурой. С помощью CFEngine команды могут выполнять физическое и виртуальное назначение ресурсов инфраструктуры, управление исправлениями, управление доступом, управление пользователями и безопасностью системы. Автономные агенты CFEngine постоянно работают для непрерывного мониторинга, устранения неполадок, обновления и восстановления ИТ-инфраструктуры. Непрерывная проверка системы и автоматизированное восстановление в CFEngine гарантирует надежность и согласованность инфраструктуры. Особенности Высокая гибкость из-за схемы конфигурации «написать один раз использовать повторно». Имеет CFEngine Enterprise Mission Portal, центральную панель для мониторинга ИТ-систем в режиме реального времени. Использование облегченных агентов автоматизации в платформе WebScale для настройки нескольких узлов и управления ими. Заключение Лучший способ найти инструменты для ваших потребностей - попробовать их. То, что работает для других, может не сработать для вас, поэтому попробуйте их чтобы увидеть, как работает, как помогает вашей организации обеспечить согласованность и безопасность конфигурации.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59