ProjectName:Awsdevopsinfrastructureautomationwithterraform
Tenure:June2019toSep 2020
Objective:automatetheprovisioninganddeploymentofawebapplicationinfrastructureonawsusingterraform.
Outcome:successfullyprovisionanawsvpc,ec2instances,anapplicationloadbalancer,andanrdsdatabaseinstance using terraform. Deploy a sample web application on the infrastructure.
ProjectStructure:
- main.tf:definestheawsproviderandresourcestobeprovisioned.
- Variables.tf:containstheinputvariablesusedintheterraformconfiguration.
- Terraform.tfvars:storesthevaluesforinputvariables.
- Output.tf:definestheoutputvariablestobedisplayedafterprovisioning.
- Ec2-instance.tf:configurestheec2instanceresource.
- Alb.tf:configurestheapplicationloadbalancerresource.
- Rds.tf:configurestherdsdatabaseinstanceresource.
- Userdata.sh:userdatascriptforec2instanceconfiguration.
ProjectSteps:
- Definetherequiredawsproviderinmain.tf.
- Configurethevpc,subnets,securitygroups,andothernetworkingresources.
- Definetheec2instanceresourceinec2-instance.tf,includinginstancetype,ami,keypair,securitygroups,anduser data script.
- Configuretheapplicationloadbalancer(alb)resourceinalb.tf,includinglistener,targetgroup,andsecurity groups.
- Definetherdsdatabaseinstanceresourceinrds.tf,includingengine,instancetype,storage,username,and password.
- Configureoutputvariablesinoutput.tftodisplayrelevantinformationafterprovisioning.
- Createvariables.tftodefineinputvariablesfortheproject.
- Createaterraform.tfvarsfiletoprovidevaluesfortheinputvariables.
- Runterraforminittoinitializetheterraformproject.
- Runterraformplantoreviewtheexecutionplanandverifyresourcecreation.
- Runterraformapplytoprovisiontheinfrastructure.
- Oncetheinfrastructureisprovisioned,deploythesamplewebapplicationontheec2instances.Verifythe application's accessibility via the alb endpoint.
- Runterraformdestroytoteardowntheinfrastructurewhenitisnolongerneeded.
ProjectName:deploykubernetesapplicationusingawsterraform
Tenure:Nov2020toOct2022
ProjectDescription:theprojectaimstoautomatethedeploymentofkubernetesapplicationsonawsusingterraform.It will provision the necessary infrastructure, set up a kubernetes cluster, and deploy a sample application.
ProjectSteps:
- provisioninfrastructure:useterraformtoprovisionawsresourcessuchasvpc,subnets,securitygroups,andec2 instances.Configurenetworkingandsecuritysettingstoensurecommunicationbetweentheclusterandotherawsservices.
- Setupkubernetescluster:useterraformtodeployakubernetesclusterusingtoolslikeamazonelastickubernetes service (eks) or self-managed kubernetes. Configure the necessary components like the control plane, worker nodes, and networking.
- Deployapplication:containerizeyourapplicationusingdocker.Createkubernetesmanifests(yamlfiles)todefine the deployment, services, and other resources needed for your application. Use terraform to deploy the application manifests to the kubernetes cluster.
- Implementci/cd:setupaci/cdpipelineusingtoolslikeawscodepipelineorjenkins.Configurethepipelineto automatically build, test, and deploy the application whenever changes are made to the source code.
- Monitoringandlogging:configuremonitoringandloggingsolutionslikeawscloudwatch,prometheus,orelkstack tomonitortheclusterandapplicationperformance.Implementalertsanddashboardstotrackthehealthandmetrics of the kubernetes cluster and application.
ProjectName:Awsdevopsdockerproject
Tenure:Nov2022totill(ongoing)
ProjectDescription:inthisproject,idesignedandimplementedanend-to-enddevopsworkflowusingawsservicesand docker. The goal was to showcase my skills in containerization, infrastructure automation, and continuous deployment
usingindustrybestpractices.Theprojectinvolvedsettingupascalableandautomateddeploymentpipelineforasample application using docker containers.