Eko programowanie, czyli jak programiści mogą zadbać o środowisko
Wszystko teraz jest “eko”, gdy więc słyszymy o green coding zastanawiamy się, czy to kolejna eko trend-ściema, czy coś więcej. W dzisiejszym odcinku Krzysztof i Marcel eksplorują temat tworzenia kodu zużywającego mniej energii. W poszukiwaniu optymalnych i prostych rozwiązań sprawiających, żeby aplikacja była bardziej eko, odpowiadają m.in. na pytania: który język programowania zużywa najmniej energii? jaka architektura emituje najmniej dwutlenku węgla? jak gromadzenie i przechowywanie danych wpływa na szybkość działania aplikacji? jakie są narzędzia wspierające eko programowanie? jak konteneryzacja wpływa na lekkość aplikacji? Eksperci Capgemini: Krzysztof Pojasek -Senior Software Engineer. W Capgemini pracuje od 8 lat. Obecnie pracuje dla banku, dla którego wraz z Marcelem, migrują dotychczasową infrastrukturę na chmurę. Marcel Rzepka - Konsultant Aplikacji (Programista). W Capgemini od 5 lat. Więcej o pracy w Capgemini: https://www.capgemini.com/pl-pl/kariera/ Linki do materiałów wspomnianych w odcinku: https://collectif.greenit.fr/ecoconception-web/115-bonnes-pratiques-eco-conception_web.html https://hackaday.com/2021/11/18/c-is-the-greenest-programming-language/ https://offset.climateneutralnow.org/footprintcalc https://www.capgemini.com/pl-pl/2022/07/czy-aplikacje-zostawiaja-slad-weglowy/ https://www.youtube.com/watch?v=Bmlit1eHTKU https://www.capgemini.com/wp-content/uploads/2021/05/Sustainable-IT_Report.pdf Jeśli odcinek Ci się spodobał, daj nam o tym znać wystawiając ocenę w Spotify lub Apple Podcasts. Podcast Capgemini Polska Produkcja: Cleverhearted Showrunners https://www.cleverhearted.com/ #ekoprogramowanie #greencoding #ecodesign #co2 #csr #sustainability #employerbranding #eb #capgemini #capgeminipolska #techchatter
Tak, ale to też jest kolejny wybór, który ty musisz podjąć. Jeżeli wybierzesz już tą Javę, to wtedy znowu trzeba wybrać na jakim środowisku właśnie, czy na jakiej wirtualnej maszynie masz tę aplikację dostarczyć. Tak samo, czy sama infrastruktura, czy powinieneś wybrać on-prem, czy może jednak chmurę. To wszystko To są wybory, które my musimy podjąć i mam nadzieję, że dzisiaj poruszymy właśnie te wszystkie w dalszej części aspekty i pomożemy w tych wyborach innym, którzy będą tworzyć te aplikacje. Bo tak naprawdę te wybory są nie tylko na tym poziomie ściśle technicznym, ale też na każdym innym etapie tworzenia aplikacji. Tak jak wspomniałem wcześniej, podczas już tworzenia wymagań czy zbierania wymagań od klienta, możemy jasno postawić jedno z kryterium, że coraz częściej zdarza się, że aplikacje reklamują się jako przyjazne środowisku.
No bo tak naprawdę to wszystko to nie jest tylko rzeczywiście ten jeden poziom. Można o to walczyć też w paru innych wymiarach. Wydaje mi się, że też można to robić na tym niższym poziomie, na tym poziomie takiego zwykłego programisty. Wytknąłeś mi parę razy. Wiesz, tak naprawdę, bo rozmawialiśmy o tym etapie, w którym zbieramy te wymagania od klienta i zakładając, że my już je pozbieramy, że klient już przekonamy klienta, żeby ok, Czy ktoś chce być neutralny, czy tam chce być blisko neutralności, chce mieć reklamy z zielonym listkiem w rogu, róbcie to. To kolejnym takim etapem, który będzie Podczas tworzenia tej aplikacji będzie właśnie wybranie tych kryteriów. I tutaj ten wspomniany język, o którym mówiliśmy, wspomniane gdzieś tam narzędzia, które będziemy używać typu właśnie Chmura czy OnPerm, ale też tak naprawdę w tym miejscu jest wybór bazy danych, wybór architektury, wymyślenie tej architektury całej.
To są kolejne etapy, gdzie możemy tak naprawdę dużo zrobić, żeby tą aplikację naszą Czy masz jakiś pomysł, co moglibyśmy zrobić podczas tworzenia architektury? W jaki sposób zaprojektować aplikacje? Z tego, co kojarzę, to prawdopodobnie chmura jest bardziej ekologiczna od on-prema, bo dzielisz się tymi zasobami w ramach potrzeb. Te same zasoby mogą być używane Zależnie od zapotrzebowania przez użytkownika po jednej stronie globu, gdzie peak jest o jednym czasie i po drugiej stronie globu, gdzie ten peak użytkowników jest przesunięty. Samo to, że nie masz serwerów, które są produkowane ileś razy
To jest jeden z takich przypadków, dlaczego ten on-prem może dawać gorsze rezultaty, dlaczego może wrzeć więcej energii. Powiem Ci, że znalazłem taką statystykę, że gdyby wszystkie obecne aplikacje webowe przeniosły swój backend na chmurę, gdyby wszystkie aplikacje nagle pojawiły się w chmurze, To wtedy emisyjność CO2 w całym sektorze IT, czyli jeżeli wyciągnąć by tylko sektor IT z tych statystyk emisyjności, to emisja CO2 spadłaby o 6%, ale patrząc na całkowite zużycie, wytworzenie właśnie emisji tego dwutlenku węgla przez sektor IT, to te 6% to jest 60 milionów ton rocznie.
Ogromna liczba. Ogromna liczba, ale żeby to sobie zwizualizować, uplastycznić, jak to mówi jeden ze słynnych komentatorów piłkarskich, uplastycznijmy to sobie i wyobraź sobie, że budzisz się i nie ma żadnego auta w Polsce. Znikają wszystkie auta. To jest taki sam spadek emisyjności CO2 w ciągu roku, co W momencie, gdyby wszystkie aplikacje przenieść do chmur. I to zobacz, jak to tak naprawdę robi skalę. Wydaje się, że 6%, ale to jednak dość duży krok do poprawy jakości powietrza. I to tylko dlatego, między innymi dlatego, że chociażby jest ta skalowalność, która właśnie zapobiega Poza tym, te wszystkie serwery chmurowe coraz częściej robią się neutralne pod względem emisji, ponieważ korzystają z odnawialnych źródeł energii.
Słyszałem nawet o serwerowni Microsoftu, która jest gdzieś pod wodą. Podobno jej nawet awaryjność jest zdecydowanie mniejsza niż zwykłe serwerownie. Także wybierając chmurę jako nasz backend powodujemy, że nasza aplikacja zdecydowanie jest bardziej energooszczędna niż takie rozwiązanie on-prem. To jest jeden z aspektów tego wszystkiego, nie? No bo mamy jeszcze, możemy wybrać bazę NoSQL i SQL. Też, na przykład nawet sam fakt przy konstruowaniu nie tylko już, okej, mówisz od strony infrastruktury bazy danych, tak? No to też jest tutaj Ważny wybór, nie? Ale jak myślisz, co więcej prądu zje, gdy myślę select all from person, czy select imię, nazwisko from person?
Jakby go tak zautomatyzować, każdy z deploymentów byłby zautomatyzowany, przeniesiony do chmury, skonteneryzowany, opatrzony w odpowiednią kontrolę jakości, taką jak wspomniany wcześniej Sonar i te konkretne reguły. To mogłoby nam właśnie pomóc nie tylko właśnie zmniejszyć zużycie prądu, bo deploy wykonywałoby się wtedy, kiedy jest to konieczne, tylko wtedy, gdy jest to konieczne. Kontrolowalibyśmy to, czy nie wyłamujemy się z jakichś wcześniej narzuconych reguł, Chmura, tak jak wspomnieliśmy wcześniej, zmniejsze zużycie prądu. Mówisz, jakbyśmy tego nie robili, nie? Kontrolowalibyśmy. Przecież mamy ustawione procesy CI, CD. To wszystko jest robione na współdzielonych node'ach. To też jest fajna uwaga tutaj, że te node'y do budowania bardzo często mogą być współdzielone między wieloma projektami.
Jeżeli to jest sobota, niedziela. Tak, porównaj commit hasha z poprzednim jobem. To nie są trudne rzeczy, tylko czasem z nich zdać sprawę. Tak, dokładnie. Wiadomo, że łatwiej jest stworzyć joba, który po prostu będzie codziennie puszczał, ale może warto trochę usiąść chwilę dłużej, dodać jakiś warunek, sprawić, by to wykonywało się tylko wtedy, gdy jest taka potrzeba. Tak jak z tym światłem, o którym na początku wspominałeś, wychodzisz z pokoju, gasisz światło, masz zbudowaną aplikację, przeszły wszystkie testy, nic nie zmieniałeś, to nie puszczaj jeszcze raz tych testów, przecież nic się nie zmieniło. Używając na przykład chmur, to o stabilności dowiesz się poprzez monitoring całej aplikacji. Nie musisz puszczać co chwilę testów migracyjnych, które ci odpowiedzą, że aplikacja nie działa, bo ta aplikacja jest monitorowana przecież.
Też mi się wydaje, że można przycinać trochę zasoby na przykład na środowiskach deweloperskich, co się często robi, ale to akurat fajnie skonsultować z programistami, na ile można sobie pozwolić. Ale co masz na przykład na myśli? Wypiąć pamięć RAM z twojego komputera? Nie, no wiesz, że ja żyję w świecie chmury, gdzie po prostu zmniejszenie zasobów to jest dla mnie przesunięcie suwaka. No, to prawda. No, okej. Dobrze, czy przychodzą ci do głowy jeszcze jakieś pomysły, gdzie moglibyśmy, obszary, gdzie moglibyśmy pomóc naszym słuchaczom? Wiesz co, chyba nie. Myślę, że powoli można się zbliżać ku podsumowaniu. Ja ci zadam teraz rzucę ci podkręconą piłkę i zapytam cię, czy uważasz, że Eko programowanie to nie jest rebranding optymalizacji.
Pokazano wszystkie 9 dopasowań. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.
Słuchasz drugiego sezonu podcastu TechChatter, audycji Capgemini Polska
Krzyś i Marcel przedstawiają się i przedstawiają temat rozmowy - efekt cieplarniany i jego wpływ na środowisko.
Marcel opowiada o swoich zamiarach ekologicznych i wątpliwościach co do istnienia efektu cieplarnianego.
Marcel wyjaśnia pojęcie śladu węglowego i jego wpływ na klimat, podkreślając, że nawet codzienne czynności mogą spowodować jego wzrost.
Marcel przedstawia sposób zmniejszania śladu węglowego poprzez ekoprogramowanie, w tym poprzez zmniejszenie zużycia energii w aplikacjach.
Marcel i Krzyś omawiają wpływ wyboru języka programowania na zużycie energii, podkreślając, że wybór zależy od wielu czynników.
Marcel i Krzyś omawiają wpływ efektywności kodu i zasobów na zużycie energii, podkreślając, że małe zmiany mogą mieć duży wpływ.
Marcel i Krzyś poruszają temat wyboru między on-prem a chmurą, podkreślając, że chmura może być bardziej ekologiczna.
Marcel i Krzyś omawiają wpływ wyboru bazy danych na zużycie energii, podkreślając, że efektywność jest kluczowa.
Marcel i Krzyś poruszają temat wyboru technologii i architektury, podkreślając, że małe zmiany mogą mieć duży wpływ na efektywność.
Marcel i Krzyś omawiają, jak ekoprogramowanie może poprawić wydajność aplikacji, podkreślając, że to jest win-win.
Marcel i Krzyś poruszają temat projektowania GUI i UX, podkreślając, że te elementy mogą znacznie wpłynąć na zużycie energii.
Marcel i Krzyś omawiają, jak kasowanie i zasoby mogą wpłynąć na zużycie energii, podkreślając, że małe zmiany mogą mieć duży wpływ.
Marcel i Krzyś poruszają temat frameworków i kontenerów, podkreślając, że te technologie mogą znacznie wpłynąć na efektywność aplikacji.
Rozmowa skupiła się na korzyściach automatycznego deploy'u i konteneryzacji, takich jak zautomatyzowane testy, skalowanie zasobów i zapisywanie ich w chmurze, co prowadzi do zwiększonej efektywności i mniejszego zużycia energii.
Wspomniano o możliwości zwiększenia efektywności zasobów na środowiskach deweloperskich, takich jak zmniejszenie pamięci RAM, co prowadzi do mniejszego zużycia energii.
Rozmowa skupiła się na interpretacji eko-programowania jako optymalizacji, która prowadzi do zwiększonej efektywności i mniejszego zużycia energii, nie tylko dla użytkowników, ale także dla środowiska.
Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.
„Słuchasz drugiego sezonu podcastu TechChatter, audycji Capgemini Polska"
Kliknij, aby znaleźć fragmenty, w których pada.