@Mazowia z programowania? Aktualnie skupiam się głównie na pracy oraz szkolenia (nowy temat z mikroserwisów, rozwijany na github jako projekt), co do nagrań to ciężko powiedzieć :).
@Wenom01 mix podstawowych ćwiczeń czyli ciągi, wiosłowanie, podciąganie, swego czasu sporo zarzutów i rwania. Czasami jakaś izolacja na maszynie ale bardzo rzadko :).
Część z Was wie, że od dłuższego czasu tworzę konkretne filmy dla programistów - bez zbędnego gadania. Seria o REST API przypadła Wam do gustu. Teraz czas na GraphQL, tworzona przede wszystkim z myślą o tych, którzy jeszcze z niej nie korzystają. Have fun!
Miałem prezentację 2 lata temu o GraphQL na 4Developers (akurat pod kątem .NET Core). Podejście ok ale prawda jest taka, że to tylko ładna nakładka na dostęp do danych, cała magia związana z optymalnym tworzeniem np. kwerend SQL, które mają faktyczną bazę danych o te dane pytać to inna bajka. Jeżeli wystawiamy to jako "endpoint" dla typowych "read-model" / DTO gdzie mamy dostęp do cache w pamięci i optymalizacja zapytań bazodanowych nie
Rok temu, wspólnie z kolegą Darkiem zaczęliśmy tworzyć otwarty projekt DShop dotyczący budowania mikroserwisów w .NET Core. Po kilku miesiącach kodzenia, rozpoczęliśmy nagrywanie kursu Distributed .NET Core - łącznie 15 odcinków i prawie 20 godzin, a wszystko za darmo, wrzucone na YouTube ( ͡°͜ʖ͡°).
Być może komuś z Was przydadzą się omawiane koncepty lub wykorzystacie niektóre części kodu w swoich własnych projektach :).
Piętnasty (a zarazem ostatni i najdłuższy) odcinek kursu o mikroserwisach w .NET Core już dostępny - przedstawiamy możliwe sposoby "orkiestracji" usług, zaczynając od "bare metal VM", przez takie narzędzia jak Portainer, Kubernetes aż po Ranchera.
Czternasty odcinek kursu o mikroserwisach w .NET Core już dostępny - kontynuujemy temat z poprzedniego odcinka dotyczący testowania aplikacji, tym razem jednak wykorzystując podejście "consumer-driven contract testing" oraz framework Pact.
Trzynasty odcinek kursu o mikroserwisach w .NET Core już dostępny - wchodzimy w tematykę testów mikroserwisów (część I) i skupiamy się na testach integracyjnych. Wykorzystując xUnit oraz bibliotekę do testów integracyjnych w ASP.NET Core, zaczynamy od przetestowania Web API (endpoints), przez kontrakty dla danych (deserializacja żądania HTTP z oczekiwaną odpowiedzią, gdzie dane są pobrane z MongoDB), kończąc na testach dla "handlerów" (konsumowanie wiadomości z kolejki) z użyciem RabbitMQ.
Dwunasty odcinek kursu o mikroserwisach w .NET Core już dostępny - omawiamy czym są kontenery używając Dockera, budujemy obrazy bazująć na Dockerfile, uruchamiamy kontenery, dołączamy do sieci, przeglądamy logi oraz publikujemy obraz do repozytorium Docker Hub. Finalnie spinamy proces automatycznego budowania aplikacja rozszerzając build serwer (z poprzedniego odcinka) o automatyczne wgrywanie obrazów do repozytorium oraz pokazujemy do czego przydaje się Docker Compose.
Jedenasty odcinek kursu o mikroserwisach w .NET Core już dostępny - dzisiaj stawiamy pierwsze kroki w kierunku CI & CD, zaczynając od integracji z build service (w naszym przypadku Travis CI), i następnie rozwiązujac problem lokalnych referencji współdzielonego projektu za pomocą użycia własnego feeda NuGet (jak np. MyGet).
Dobiliśmy właśnie do 10 odcinka kursu o mikroserwisach w .NET Core - skupiamy się w nim na szeroko pojętych metrykach (czyli czymś mierzalnym w naszej aplikacji np. CPU, RAM, liczba użytkowników, ilość zapytań do serwera etc.). Do integracji z różnego rodzaju usługami odpowiedzialnymi za przetwarzanie metryk używamy biblioteki AppMetrics i następnie omawiamy InfluxDB, Grafana oraz Prometheus.
ASP.NET Core, a dokładniej serwer HTTP Kestrel w top 3 najszybych serwerów webowwych na świecie, 7 mln żądań/sek :). Oczywiście jest to wynik dla operacji typu "plaintext", co nie zmienia faktu, że jest to niesamowity rezultat, a limitem w tym przypadku była już sama warstwa sieciowa.
Dziewiąty odcinek kursu o mikroserwisach w .NET Core już dostępny - dzisiaj przedstawiamy kilka przydatnych narzędzi, zaczynając od Vault do przechowywania konfiguracji w bezpieczny sposób, przez Seq do logowania danych, kończąc na Jaeger, który umożliwia śledzenie rozproszonych akcji.
@lalalajp2_- może być ciężki, trzeba dość dobrze znać C# oraz mieć pojęcie o tworzeniu Web API, natomiast same koncepty, które się pojawiają są dość agnostyczne względem technologii.
Ósmy odcinek kursu o mikroserwisach w .NET Core już dostępny - wchodzimy w tematykę rozproszonych transakcji. Zaczynając od omówienia 2PC, przez Event Choreography i kończąc na Saga oraz Process Manager, finalnie implementujemy przykładowy proces tworzenia zamówienia, który wymaga udziału kilku mikroserwisów do jego powodzenia.
Siódmy odcinek kursu o mikroserwisach w .NET Core już dostępny - omawiamy czym jest CorrelationId (a dokładniej CorrelationContext), jak radzić sobie z obsłguą asynchronicznych żądań oraz jak w tym celu można wykorzystać SignalR do aktualizacji statusu w czasie rzeczywistym. Pod koniec wspominamy również o Polly - pokazujemy jak w prosty sposób można zaimplementować np. ponawianie nieudanej operacji.
@Masterczulki: dzięki, bardzo miło słyszeć, podziwiam, że całkowicie zmieniłeś stack :D. @bussior: tak, będzie na pewno odcinek (albo i 2) poświęcony otoczce CI, CD, DevOps (build serwer, Docker, k8s itp.).
Szósty odcinek kursu o mikroserwisach w .NET Core już dostępny - wchodzimy w trochę bardziej zaawansowane tematy, i omawiamy mechanizmy Service Discovery oraz Load Balancer z wykorzystaniem narzędzi Consul i Fabio.
Piąty (póki co najdłuższy bo prawie 80 min.) odcinek kursu o mikroserwisach w .NET Core już jest - rozmawiamy o kwerendach (query) i odczycie danych (read side) w CQRS. Implementujemy QueryHandler i DTO, a finalnie wprowadzamy wewnętrzną komunikację HTTP pomiędzy API Gateway i mikroserwisem z wykorzystaniem RestEase.
Czwarty odcinek kursu o mikroserwisach w .NET Core już jest - wykorzystujemy przesyłanie zdarzeń (wiadomości w kolejce) jako mechanizm asynchronicznej integracji pomiędzy mikroserwisami (jednak z technik zmniejszająca tzw. "temporal coupling" i zwiększająca "resiliency").
Trzeci odcinek kursu o mikroserwisach w .NET Core został opublikowany - subskrybujemy się pod RabbitMQ w celu przetworzenia nadchodzącej wiadomości, oraz modyfikujemy API Gateway aby obsłużyć żądanie HTTP.
https://justjoin.it/offers/nethermind-net-core-performance-full-stack
#programowanie #programista15k #pracait #dotnet