Skip to content

Commit

Permalink
- Add DevOps Workflow Diagram
Browse files Browse the repository at this point in the history
  • Loading branch information
codexponent committed Jun 2, 2021
1 parent 8d4c9b9 commit 9a490e7
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 0 deletions.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@ Connecting Siri with AWS Lambda to turn on/off the VM's
<p align="center">
<img align="center" alt="Photo" src="./architecture.png" />
</p>
<br />

# Workflow
<p align="center">
<img align="center" alt="Photo" src="./workflow.png" />
</p>
<br />

# Motivation
This project is created to turn on the AWS EC2 Machines from your voice assistance (Siri). For this project I have used AWS Lambda function to invoke the start/stop function for the Instances, triggered by the API Gateway which is called through Siri. I am also using Docker images rather than the script to put in into the serverless architrecture and using DockerHub as the Registry for public and ECR for Lambda to get the docker images directly. I also have implemented AzureDevOps in this project to make it easier to change the function through the code push into the GitHub. The instances are created using Pulumi (Iac).
Expand Down
95 changes: 95 additions & 0 deletions workflow.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<mxfile>
<diagram id="FHhLuV0nsQyy8kjPywxV" name="Page-1">
<mxGraphModel dx="769" dy="532" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="23" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="130" y="150" width="570" height="510" as="geometry"/>
</mxCell>
<mxCell id="2" value="Azure DevOps&lt;br&gt;" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/devops/Azure_DevOps.svg;fontStyle=0" vertex="1" parent="1">
<mxGeometry x="140" y="160" width="64" height="64" as="geometry"/>
</mxCell>
<mxCell id="11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="5" target="10">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="67" y="395"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="17" value="1 - Code Push" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="11">
<mxGeometry x="0.0257" y="-1" relative="1" as="geometry">
<mxPoint y="-1" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="5" value="GitHub&lt;br&gt;" style="dashed=0;outlineConnect=0;html=1;align=center;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.weblogos.github" vertex="1" parent="1">
<mxGeometry x="30" y="430" width="75" height="75" as="geometry"/>
</mxCell>
<mxCell id="7" value="DockerHub Registry&lt;br&gt;" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/mscae/Docker.svg;" vertex="1" parent="1">
<mxGeometry x="530" y="240" width="73.17" height="60" as="geometry"/>
</mxCell>
<mxCell id="21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="8" target="10">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="480" y="410"/>
<mxPoint x="480" y="410"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="22" value="4. Get Image Name" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="21">
<mxGeometry x="0.2185" y="2" relative="1" as="geometry">
<mxPoint x="14" y="-2" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="8" value="Elastic Container Registry&lt;br&gt;" style="points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#F78E04;gradientDirection=north;fillColor=#D05C17;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.ecr;" vertex="1" parent="1">
<mxGeometry x="530" y="352" width="78" height="78" as="geometry"/>
</mxCell>
<mxCell id="12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="255" y="360" as="sourcePoint"/>
<mxPoint x="530" y="260" as="targetPoint"/>
<Array as="points">
<mxPoint x="255" y="260"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="18" value="2 - Build and Push to DockerHub" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="12">
<mxGeometry x="-0.4839" relative="1" as="geometry">
<mxPoint x="145" y="-3" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="10" target="8">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="380" y="389"/>
<mxPoint x="380" y="389"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="19" value="3 - Push to ECR" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="13">
<mxGeometry x="-0.3148" y="-1" relative="1" as="geometry">
<mxPoint x="27" y="-1" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="10" target="14">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="255" y="550"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="20" value="5. Update Lambda Function" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="16">
<mxGeometry x="-0.3673" y="-1" relative="1" as="geometry">
<mxPoint x="151.76" y="-1" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="10" value="Azure Pipelines&lt;br&gt;" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/mscae/Azure_Pipelines.svg;" vertex="1" parent="1">
<mxGeometry x="230" y="380" width="50" height="50" as="geometry"/>
</mxCell>
<mxCell id="14" value="Lambda Function&lt;br&gt;" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.lambda_function;fillColor=#F58534;gradientColor=none;" vertex="1" parent="1">
<mxGeometry x="539" y="514" width="69" height="72" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file added workflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 9a490e7

Please sign in to comment.