Bob Eisenmann and Justin Ranta: Automated Application Delivery on AWS using Github Actions
awschicago
26 views
14 slides
Jun 24, 2024
Slide 1 of 14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
About This Presentation
AWS Community Day Midwest 2024
Bob Eisenmann and Justin Ranta
|
Automated Application Delivery on AWS using Github Actions
Size: 790.71 KB
Language: en
Added: Jun 24, 2024
Slides: 14 pages
Slide Content
MIDWEST | OHIO
1
Automated Application
Delivery on AWS using
GithubActions
June 13th2024
Justin Ranta, Cloud Platform Engineering Manager, Signet Jewelers
Bob Eisenmann, Cloud Architect, Signet Jewelers
2
1 -As of FY23 ye a r-e nd
2 –Je we l ry ma rk e t re fl e cts the combi na ti on of CY22 US e sti ma te d ma rk e t of $6 5
bi l l i on, Ca nadi a n e sti ma te d ma rk e t of C$5.7 bi ll i on a nd UK esti ma te d ma rk et of
£6 .4 bi l l ion tra nsl a te d at 12/30/22 Fxra te s
3 -Ave ra ge of FY22-FY23 a ctua l s a nd FY24 ba se d on the mi d-poi nt
of FY24 gui da nce provi de d on 8/31/23
Retail
Footprint
1
Support
Centers
•Signet is the leading global diamond
retailer and 3X the size of our nearest
competitor in the US
•Signet (NYSE: SIG) operates ~2,800 stores
across a diversified banner portfolio in North
America and the United Kingdom
•Consumer insight and digital led Company
•More than $7 billion in annual revenue
expected in a jewelry market of ~$77 billion
2
•Nationally recognized as Great Place to
Work
TM
We are Signet
3
Agenda
1.Application delivery automation overview
2.Application delivery automation capability maturity model
3.Applicationdelivery process and pipelines
4.Application delivery automation tools
5.GitHub Actions and AWS application delivery workflow
6.GitHub Actions and AWS application delivery architecture
7.Recommendations
4
Application Delivery Automation Overview
Application Delivery Automation focuses on accelerating the delivery of
applications by automatingthe tasks required to build and deploy
applications.
The tasks to be automated include:
•Continuous integration and verification:incrementally build and
regression test every change
•Continuous delivery and deployment:make every change ‘releasable“
and continuously deploy changes to end users
•On-demandenvironments:manage environments through infrastructure
as code and automate infrastructure change and release
5
Application Delivery Automation Capabilities Maturity Model
6
Continuous Feature Integration
Release1 Release2 Continuous Feature Delivery
User Testing User Testing
Features 1.1 Features 1.2 Features 1.3 Features 2.1 Features 2.2 Features 3.1 Features 3.1
Dev Testing Dev Testing Dev Testing Dev Testing in Dev Testing Dev Testing Dev Testing
A Continuous
Integration Pipeline
builds and deploys code
to the development
environment each time
code in the development
branch is changed
A Continuous Delivery
Pipelinebuilds and
deploys code to the test
environment each time
code in the release branch
is changed
A Continuous Deployment Pipelinemigrates the application
artifacts tested in staging to the production account
Production
Release1
Production
Release2
Continuous Feature Deployment
Application Delivery Automation Process and Pipelines
Release 1 Feature Set Release2 Feature Set Release 3 Feature Set
7
Application Delivery Automation Tooling
GitHub Actions(GHA)
GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that enables the automation
pipelines. GHA executes workflows that can build and test every pull request to yourrepository, ordeploy merged
pull requests toproduction.A workflow is a configurable automated process that will run one or more jobs.
AWS CloudFormation
AWS CloudFormation is a service that models and builds Amazon Web Services resources.It uses templates to
describe the AWS resources that need tobe built and then provisions and configures a stack composed of the
resources described in the template.
AWS Cloud Development Kit(CDK)
The AWS CDK lets you develop automation that builds applications in the cloud using JavaScript, Python, Java,
andC#/.Netprogramming languages.CDK provides high-level development constructs that automatically provide
defaults for your AWSresources.CDK dynamically generatesCloudformationwhich then performs repeatable
and predictable infrastructure deployments.CDK supports the leveraging ofsoftware engineering practices such
as code reviews, unit tests, and source control to make
8
Application Delivery Automation Tooling
To automate application delivery, a GitHub Actions(GHA) workflow is configured to be triggered when an event
occurs in a repository. The workflow containsone or more jobs, each running inside its own virtual machine or
container.
•Workflows:A workflow defines a process that will run one or more jobs.A workflow is defined in aYAML file
checked in to yourrepository and will run when triggered manually by an event in your repository.
•Jobs:A job is a set of steps in a workflow that execute on the same runner. Each step is either a shell script that
will be executed, or an action that willbe run. Steps are executed in order and are dependent on each other. Since
each step is executed on the same runner, you can share data from one stepto another.
•Actions:An action is a custom application for the GitHub Actions platform that performs a complex but frequently
repeated task. Use an action to helpreduce the amount of repetitive code that you write in your workflow files.You
can write your own actions, or you can find actions to use in yourworkflows in the GitHub Marketplace.
•Runners:A runner is a server that runs your workflows when they're triggered. Each runner can run a single job at a
time. GitHub provides Ubuntu Linux,Microsoft Windows, and macOS runners to run your workflows; each workflow
run executes in a fresh, newly-provisioned virtual machine. If you need adifferent operating system or require a
specific hardware configuration, you can host your own runners.
9
Recommendations
People
•Change agents who can help rally the enterprise to elevate and grow
theirskillset with cloud concepts, tools, and technologies
•Centralized vs decentralized automation expertise
oCentralized team of automation expertswho develop the
automation/pipelines that are assigned to each project
oDecentralized whereyou have a centralized cloud/platform engineering
teamthat governs and manages the automation platform but
development teams are responsible for developing their
ownautomation/pipelines
12
Recommendations
Process
•Governance of AWS resources
oFocuses on managing the creation and usage of resources using AWS
Config, Organizations,SCPs, etc...
•Cost optimization/right sizing
oFocuses on ensuring the right AWS resources are used for the right use
cases
•Automated AWS Account provisioning
oFocuses on quickly providing bootstrapped accounts and access
13
Recommendations
Products
•Need to select IaCtooling
oCDK/CF better at providing flexibility in deploying to multiple
environments without the need for multiple stacks
oCDKTF/TF better atproviding a developer platform, owned by a
centralized team, from which developers can provision standard
resources
•Need to develop/enforce the use of enterprise standard common components
oProvides consistent config and reduces time to market
•Need to integrate code scanning, security, and testing toolsinto thepipelines
14