TSM - AWS CodeCatalyst: Simplificarea dezvoltării și creșterea productivității programatorilor

Adelina Burnete - Java Software Developer @ BoatyardX


Cum ar fi să avem la îndemână o soluție rapidă de dezvoltare a unei pagini web statice, a unei single-page application, sau a unei întregi aplicații web formată din microservicii? Dar cum ar fi să putem obține acest lucru în doar câteva minute? Să putem avea la dispoziție întreg procesul de CI/CD (continuous integration /continuous delivery) gata pregătit, iar singurul lucru de care trebuie să ne mai ocupăm este codul. Cei de la Amazon Web Services (AWS) oferă o soluție care promite exact aceste lucruri prin intermediul AWS CodeCatalyst.

AWS CodeCatalyst este un mediu de dezvoltare software (unified software development service) oferit de Amazon Web Services (AWS) care oferă funcționalități pentru a simplifica întreg procesul de dezvoltare a unei aplicații. Scopul principal este de a optimiza productivitatea, rapiditatea și eficiența prin care o aplicație ajunge de pe mașină locală pe un environment specializat. CodeCatalyst propune o suită de tooluri care oferă capabilități de codare, debugging, build, testare, deployment și scalare a aplicațiilor, prin integrarea cu ecosistemul AWS. Astfel, obținem într-o singură platformă, în mod rapid, toate procesele de management și automatizare specifice unui workflow complex de dezvoltare.

Fig.1 Trei pași simpli pentru desfășurarea în câteva minute a unei pagini statice

Mai departe, vom prezenta câteva dintre capabilitățile CodeCatalyst.

Blueprinturi

Blueprinturile sunt o librărie de proiecte well-architected. Pe lângă modelele predefinite care pot fi preluate și utilizate, avem posibilitatea de a crea propriile modele.

Developerii pot automatiza taskuri de dezvoltare folosind capabilitățile AI, astfel încât întreg procesul este accelerat, petrecându-se mai puțin timp pentru setarea pipeline-urilor CI/CD, provisioning și configurări ale environmenturilor. Prin intermediul acestor modele de aplicații (blueprint), se pot implementa cele mai bune practici organizaționale pentru a asigura conformitatea practicilor folosite.

Acestea sunt un punct de pornire pentru realizarea unui nou proiect, iar în câteva minute putem avea proiectul up and running.

Putem vedea bluprinturile ca pe niște GitHub Actions, unde acțiunile CodeCatalyst reprezintă blocuri de construcție. Pe lângă integrarea cu GitHub și GitHub actions, AWS CodeCatalyst oferă acces la un repository propriu. Un alt tool cu care CodeCatalyst se poate integra rapid este Jira, dar în același timp oferă capabilități de issue tracking direct din platformă. Pipeline-urile de CI/CD sunt disponibile imediat, iar preocuparea developerului rămâne codul.

Fig.2 Java API with AWS Fargate Blueprint

După adăugarea logicii de business, pornim deployul, iar aplicația noastră este accesibilă pe environment. Suportă o varietate de limbaje, precum, Java, Python, .Net, Typescript, iar printre frameworkurile suportate găsim SpringBoot, React, Angular, Vue.

Fig.3 Blueprints

Workflow-uri

Fig 4. Workflow-uri

Un workflow automatizează procesul de integrare și dezvoltare continuă. Prin workflow-uri putem defini o serie de pași customizabili pentru build, testare, deployment, iar această automatizare asigură faptul că orice nouă schimbare de cod va fi trecută prin toate etapele de CI/CD - build, test, deploy, reducând nevoia de a adăuga schimbări manuale. Pe lângă pașii gata existenți în modelul de lucru, un developer poate adăuga sau elimina acțiuni, ori adăuga pași care necesită aprobarea unei persoane.

Mai jos, avem două exemple de workflow-uri - unul reprezentativ pentru o aplicație web statică, iar celălalt pentru trei microservicii Java deployate într-un mediu containerizat în AWS ECS Fargate.

Fig 5. Exemple workflow-uri

Deci, prin integrarea de diverse servicii și tooluri, dar și prin oferirea de modele customizabile, se asigură un proces consistent și eficient, care permite echipelor livrarea de produse software de înaltă calitate, care respectă industry best practices într-un mod rapid și de încredere. Indiferent că vorbim despre un proiect de dimensiuni reduse sau o aplicație la scală largă, folosirea CodeCatalyst poate îmbunătăți în mod semnificativ productivitatea procesului de development.

Referințe:

  1. https://docs.aws.amazon.com/codeartifact/latest/ug/getting-started.html

  2. https://codecatalyst.aws/explore/blueprints

  3. https://devfile.io/docs/2.3.0/devfile-ecosystem

  4. https://repost.aws/articles/ARBTATztMgQOeYyMZ9IAmxDw/configuring-codecatalyst-dev-environmentsm