.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»