Solution • The Project ◦ Purpose of project ◦ Architecture design ◦ How can it help ? • AWS Cloud (Example) ◦ Credential as prerequisites ◦ Procedure to operate • Q&A
their strategic to move application/workload from on-prem to cloud • COVID-19 is very effective factor to make cloud adoption growth as exponential rate • As capability in public cloud. Business have more agility to launch new application/workload or change within few minute • So IT will facing dramatical change request for create/delete/change workload in every minute for this purpose • Each cloud provider have their strength and weakness point • This make organization provide “multiple cloud strategic” for combine all cloud provider strength and fit with the business Github Action for any cloud env
huge of problem in IT operation • Each cloud provider have their architecture and well-architect for setup environment. So that mean we need to have well knowledge/skill set on that cloud provider • With “multi cloud strategic”. We need many skill set need for handle this • As business need application/workload up and running within minute and may change in everytime that need. • How can we provide resource for support this ? • How can we support 24 x 7 requirement ? Github Action for any cloud env
cannot handle the process by manual • “Automation” is the key solution. We need to design solution for handle this and make it provision all element when need • We select IaC (Infrastructure as Code) for developer the “template” for all element that we need to full-lifecycle with it (create/modify/delete) etc. • On this we can develop all script for support this task on any cloud environment • Next we need some automation flow to receive requirement from user (developer/po/pm/ba/devops etc.) and run IaC to operate • With this combination. We can set up automation flow to support this task and maintain all template when new requirement is come Github Action for any cloud env
for reduce this complicate for each cloud provider and make all contribute to leverage any “element” with simple standard • Project is integrated with “Terraform” framework for operate IaC (infrastructure as code) and make same standard on project • For make it automation part. To make this project help for provision element from scratch automatically. We choose “Github Action” as build-in on repository. So this will effort less for operation • All credential was keep in “GitHub Secret” and run via github action. So we not leak any credential to outside Github Action for any cloud env
(private repository) AWS AliCloud Gcloud Azure etc. Step2: Configure properties and Credential Step3: Commit and Push with specific “Tags/Commit” Cloud Provider Step4: Github Action will run terraform to create Env Step5: Create Env Developer/Applicati on Owner Step6: Access Env and operate Github Action for any cloud env
git clone repository for create their initial project on each cloud provider • With automation concept. Organization is effortless for create element on cloud and never even need to create server/compute to provision element as request. • Contributor also can improved and add more template as “terraform” script for extend capability more and more • As all automation and code had been housed on “Github”. So we can support 24 x 7 days on this. Github Action for any cloud env
this KB AWS • {AWS_SECRET}: Store secret key. Please follow this KB AWS • {AWS_REGION}: Regional for housing AWS environment • {AWS_BUCKETNAME}: AWS bucket name for housing "statefile". This name need very unique in region of AWS. Github Action for any cloud env
for operate with EC2. So we need to create ssh-key and place on folder “1.Environment/02_InitialParameter” to operate (*Remark: In case this ssh-key never create. System will generate by itself. Please copy the private key to your machine and remove from repository as security reason) Github Action for any cloud env
each element group (2.Instance/3.Database/4.Cache/5.Bucket/6.Queue/7.Other) to create new element ◦ Edit properties on file “terraform.tfvars” (Reference on file: variables.tf) ◦ Commit: ▪ < element group >-< folder name >-yyyymmddhhmmss ◦ Tag: ▪ aws-init-element-yyyymmddhhmmss Github Action for any cloud env
“terraform.tfvars” (Reference on file: variables.tf) ◦ Commit: ▪ < element group >-< folder name >-yyyymmddhhmmss ◦ Tag: ▪ aws-modify-element-yyyymmddhhmmss Github Action for any cloud env
you need to “empty” bucket before run this process ◦ Commit: ▪ aws-destroy-env-yyyymmddhhmmss ◦ Tag: ▪ aws-destroy-env-yyyymmddhhmmss Github Action for any cloud env