Рубрики
Uncategorized

.Net 5 идеально подходит для DevOps

.NET 5 наконец достиг общей стадии доступности на прошлой неделе во время .NET .NET Conf 2020. Но … с меткой Dotnet, DevOps, Codenewbie, программирование.

.NET 5 наконец достиг Общая доступность этап на прошлой неделе во время .NET Conf 2020. Но .NET 5 хорошей структурой для DevOps?

Сегодня я хочу поговорить об этом, но с точки зрения DevOps и CICD. Позвольте мне показать вам, почему я думаю .Net 5 идеально подходит для DevOps Анкет

вступление

Если вы следили за мной, он или на моем Канал YouTube Некоторое время вы, вероятно, заметили, что большинство моих примеров и демонстраций, которые требуют некоторого кода, сделаны в .NET. На самом деле Я был разработчиком .NET в течение многих лет И, хотя я опытный на других языках, таких как Java, Ruby и Node.js, .Net по -прежнему мой любимый язык Анкет Тем не менее, я должен сказать, что в прошлом .NET не был супер-DevOps, особенно в его .NET .NET Каркасный вкус.

Но после некоторое время использования .NET Five и после выхода GA на прошлой неделе я теперь убежден, что он идеально подходит для DevOps и CICD сценариев.

видео

Как обычно, если вы Визуальный ученик , или просто предпочитаю смотреть и слушать вместо чтения, здесь у вас есть видео со всем объяснением и демонстрацией, которые, чтобы быть справедливыми, очень более полное чем этот пост.

( ссылка на видео: https://youtu.be/-2lcsixlw88 )

Если вы предпочитаете читать, хорошо … давайте просто продолжим:)

Что такое .net 5?

Хорошо, давайте перейдем к теме. Позвольте мне начать с Краткое введение из того, что .NET 5. Если вы уже сейчас это, не стесняйтесь перейти к следующему разделу.

Так что же .NET 5?

Это Основной релиз .NET, с широким набором новых функций и убедительных улучшений. На самом деле он уже активно используется командами в Microsoft и других компаниях, в производстве и для тестирования производительности.

Самое главное, .NET 5.0 — первый выпуск в .СЕТЬ Объединение путешествие Анкет .СЕТЬ 5.0 был построен, чтобы позволить гораздо большей группе разработчиков мигрировать .NET .NET Фреймворк -код и приложения для .NET 5.0. Он также включает в себя большую часть ранней работы в 5.0, чтобы разработчики Xamarin могли использовать Unified .net Platform, когда .net 6.0 будет выпущен.

Говоря об этом, каждый год будет значительный релиз, с .NET 6 в ноябре 2021 года и, конечно, с небольшими выпусками, если это необходимо.

Стоит отметить, что .Net 5 не заменяет .net Структура и на самом деле .net Framework 4.x является и все еще будет поддерживаться, и нет никаких планов миграции WebForms, WCF и Foundation Foundation на .NET 5 или выше.

Также .Net 5 не заменяет .net Стандарт , это просто не будет необходимым, потому что в разных ароматах .NET не будет разных API. Разработка новых приложений может указать целевой фреймворк Net5.0 для всех типов проектов, включая библиотеки классов, и, следовательно, код обмена между рабочими нагрузками .NET 5 упрощен. И то же самое будет верно для .NET 6 и выше.

Хорошо, теперь, когда у нас есть обзор .NET 5, дайте понять, почему я думаю, что он идеально подходит для DevOps и CICD.

1.NET Импульс

Прежде всего, .NET в целом это Один из самых используемых каркасов Анкет

Есть более 2 миллионов активных .NET .NET Основные разработчики и более 5 миллионов активных .NET Разработчики, и эти люди смогут очень легко переключиться на .NET 5.

Также .net Ядро, которое .NET 5 — это эволюция, является номером 1 Самая любимая структура Соответственно, с структурой Stackoverflow в течение 2 лет подряд.

Кроме того, C# (который является основным языком, используемым в обоих .NET Framework и .net Ядро) является 5 -м наиболее используемым языком на GitHub.

Наконец, ASP.NET Core — это платформа веб -приложений № 1 от производительности в предстоящих тестах TecheMpower

И это без упоминания более чем 40% разработчиков, новинка для .NET, — это студенты, и все .NET Проект не только полностью открыт, но также является одним из проектов с самой высокой скоростью.

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

2. Выступления

Говоря о выступлениях, они действительно улучшились.

Не только .net 5 выше На 30% больше исполненного на сокете на Linux Over .net Core 3.1, какая выступления уже были довольно хорошими, но также показатели сериализации JSON были улучшены примерно на 20%.

И для современной разработки приложений, особенно при разговоре о микросервисах, производительность .NET 5 GRPC настолько улучшилась, что теперь она Превышает один из Go, C ++ и Java Анкет

В то время как RPS (запросы в секунду) важны, они еще не все. Большую часть времени на самом деле производительность приложения и в конечном итоге количество машинных ядер, необходимых для его запуска зависит от задержки Анкет

Команда также сделала невероятную работу в этом и работала на коллекторе мусора .NET 5, и теперь задержка — самая низкая, когда -либо предоставленная .NET .NET Framework и .net Основная версия.

Опять же, это отлично подходит для DevOps, особенно для OPS Part: Лучшая производительность + меньшая задержка означает меньшую вычислительную мощность, необходимую в производстве и надеюсь, меньше головных болей.

3. Время компиляции

И говоря о вычислении, также требуется меньше вычислительных вычислений для CI. Компилятор на самом деле теперь гораздо более оптимизирован и предлагает отличные выступления Анкет

На правой стороне изображения здесь у нас есть небольшой проект, который нацелен на .net Core 3.1 и его построен компилятором, который поставляется с .NET .NET Core SDK версия 3.1.404

Вместо этого на левой стороне у нас есть точно такой же проект, но я ответил его на .NET 5, и он был построен компилятором, который поставляется с версией 5.0.100 .NET 5 SDK.

Как видите, Разница массивная Анкет Сеть Компилятор Core 3.1 в среднем занимает более 2 с половиной секунды, чтобы построить решение, в то время как компилятор .NET 5 постоянно остается ниже 0,9 секунды.

И в более крупных решениях эта разница еще больше.

Не только он строится быстрее, но Ресурсы, потребляемые компилятором с точки зрения процессора и оперативной памяти, ниже Анкет

Я думаю, что мы все можем согласиться с тем, что команда проделала фантастическую работу здесь.

4. Контейнерные изображения

Давайте останемся на территории CICD, и давайте поговорим о контейнерах.

Контейнеры, конечно, являются одной из самых важных облачных тенденций и Команда .NET значительно инвестировала в них. Есть ряд улучшений в более низких уровнях .NET 5, которые делают его Идеально для работы в контейнерах , но, наверное, наиболее заметным является Оптимизация предоставленных контейнерных изображений Анкет

В рамках .NET 5.0 команда имеет RE-изображение SDK на вершине изображения ASP.NET вместо BUILDPACK-DEPS Чтобы резко уменьшает размер совокупных изображений, которые вы тянете в многоступенчатых сценариях сборки.

Как вы можете видеть на изображении, размер изображения SDK был уменьшен где -то между 30 и 65 MB Анкет Но самое большое улучшение — это изображение времени выполнения. Если вы сделаете это как многоэтапную сборку, ваши изображения времени выполнения будут от 4 до 10 КБ! И это возможно, потому что все необходимые вам слои уже находятся на изображении SDK, так что у вас их уже есть, и, следовательно, вы Просто загрузите и храните манифест Анкет

С этим изменением ASP. Чистая тяга (например,) будет неооперацией, потому что вы вытащите ASP. Чистые слои через начальный SDK -тяга.

Это позволит вам Сэкономьте до 40% хранилища пространство для ваших изображений. Вы также увидите значительные победы для Alpine и Nano Server с 5,0, для многоэтапных сборок.

Меньшие изображения означают не только меньше необходимого хранилища, но и Более быстрее тяги и, следовательно, быстрее стартап вашего контейнерного изображения при тяге с нуля.

И если вам нужно запустить ваши контейнеры в Windows, теперь у нас есть изображения Core Windows Server, в дополнение к Nano Server.

5. Мультиплатформа

Что подводит меня к следующему пункту.Сеть Core уже была многофункциональной платформой, но .net 5 еще более многоплатформенована … у него Самая широкая поддержка ОС любой версии .NET до Анкет

На самом деле он работает на:

  • Windows 7 SP1, 8.1 и 10, на архитектурах x86 и x64, и впервые в когда -либо на ARM64
  • Windows Server и Windows Server Core 2012 R2 и выше, как на x86, так и на X64, а также Nano Server 1809 и выше на x64
  • Linux: Все основные распределения, включая альпийские, Centos, Debian, Redhat, Suse, Ubuntu и другие, в основном на архитектуре X64, но В некоторых случаях поддержка также ARM32 и ARM64
  • MacOS, с версии 10.13 и далее, на архитектуре x64

Это переводится на возможность создания приложения .NET 5 на Практически любой агент CI , будь то размещение или самостоятельно, физический или виртуальный, Windows или Linux. И, конечно, это также означает, что вы сможете развернуть свое приложение на любую из вышеупомянутых платформ , для полной гибкости.

С точки зрения DevOps это также означает Вы можете выбрать платформу Вы и ваша команда больше знакомы, и это дает вам больше выступлений и надежности.

Кроме того, .NET 5 уже доступен как в Azure Tipelines, так и в действиях GitHub, поэтому вы можете построить его без проблем.

6. Одно файловые приложения

Наконец, и все еще говорил о CICD, одной из моих любимых функций: Одно файловые приложения Анкет

Одно файловые приложения опубликованы и развернуты как один файл Анкет Приложение и все его зависимости включены в этот файл.

Даже одно файловые приложения уже были думать в .net Ядро, их Поведение совершенно другое Анкет В .net Core 3.1, на самом деле, он упаковывает двоичные файлы в один файл для развертывания, а затем распаковывает эти файлы во временный каталог для загрузки и выполнения их. С .NET 5 вместо этого, когда приложение запускается T_ он загружается непосредственно из этого файла в память _ (без штрафа за производительность). Большое улучшение.

Вы можете создать одно файловое приложение, используя либо командную строку, либо инструменты, такие как Visual Studio. Вы также можете настроить отдельную публикацию непосредственно в файле проекта.

Помните, что в .NET 5.0 одно файловые приложения могут быть либо В зависимости от фреймворта или автономный Анкет Зависимые от фреймворта отдельные приложения могут быть очень небольшими, полагаясь на глобально установленное время выполнения .NET. Автономные приложения с одним файлом больше (из-за перевозки времени выполнения), но не требуют установки времени выполнения .NET в качестве предварительного шага установки и в результате будут работать.

Почему одно файловые приложения отлично подходят для DevOps? Что ж, ваш компакт -диск вам поблагодарит. Необходимость передавать и публиковать один файл намного быстрее и имеет гораздо меньше задержки чем сделать это с несколькими файлами. И если вы думаете: «Я могу сделать то же самое с zip -файлом», помните, что в одно файловых приложениях .NET 5 не нужно расслабляться … Итак, снова быстрее и более оптимизировано Анкет

Резкий

Итак, чтобы резюме … Почему .NET 5 отлично подходит для DevOps?

импульс Фреймворков .NET и экосистемы — это великий и команда много работала над улучшение производительности .NET 5 — самый исполнительный .NET.

Это также отлично подходит для CICD, из -за Одно файловые приложения , Меньшие контейнерные изображения и супер Быстрая сборка время.

Наконец, это действительно мультиплатформа , способность работать в Windows, Linux и MacOS, на x86, x64, ARM32 и ARM64 архитектуры.

Не забудьте Посмотрите видео для полнометражного объяснения Анкет

Вывод

Хорошо, это все на сегодня. Конечно .NET 5 имеет много других улучшений и удивительных функций, но те, которые мы видели сегодня, являются для меня самыми важными, когда речь заходит о DevOps и CICD.

Что вы думаете? Дайте мне знать в разделе комментариев ниже, каковы ваши любимые функции, и если вы согласны со мной в том, что .NET 5 идеально подходит для DevOps.

Мол, поделиться и следуй за мной 🚀 Для большего содержания:

📽 YouTubeКупить мне кофе 💖 Patreon 🌐 CoderDave.io Веб -сайт 👕 Мерч 👦🏻 Страница Facebook 🐱‍💻 GitHub 👲🏻 Twitter 👴🏻 LinkedIn 🔉 Подкаст

Оригинал: «https://dev.to/n3wt0n/net-5-is-perfect-for-devops-4afd»