Development, Messaging and deployment Flashcards
What is CI/CD?
It’s a software development best practice.
It’s automating everything like:
- code integration
- building
- testing
- deploying
What are the benefits of CI/CD?
Makes changing easy, this helps delivering new features quickly.
So it’s:
- fast repeatable and automated
Example workflow of a CI/CD pipeline:
- merge: to master repository
- prepare: code is built, tested and packaged
- Deploy: automatically deployed
What does Continous Integration (CI) mean?
Integrating or merging small code changes frequently, at least once a day
What does continuous deployment (CD) mean?
Automating the build, test and deployment functions - bugs are caught early, make it easier to fix them.
What are the AWS Development Tools to implement CI/CD?
- AWS codeCommit
- AWS CodeBuild
-Code depoly - CodePipeline
What is AWS CodeCommit?
A private Git repository
What is CodeBuild?
Fully managed build and test service
like packages or docker image
What is CodeDeploy?
It’s an automated Deployment Service that deploys to EC2, on premise or Lamda’s
What is CodePipeline?
Automated CI/CD pipeline. It manages the pipeline for example executing codeCommit, codeBuild, CodeDeploy
What is AWS CodeArtifact?
It’s an artifact Repo where you can safely store packages like Maven, NPM, Python
this artifact repo make is easy for developers to find the software packages they need.
What are Artifacts?
Documentation
Compiled applications
Deployable Packages
Libraries
Makes it easier that everyone uses approved packages (instead of searching a package yourself on the internet)
What is Tight Coupling?
Coupling is the dependency between components.
A Monolitic Application is tight coupled.
downsides:
- systems gets easier over loaded
- one failed component brings whole system down
What is Loose Coupling?
An example of loose coupling is building app with Micro service application.
Benefits:
- a component doesn’t need to wait till another component completed his task
- Data and messages are moved between components of the application
- a slow or failed component doesn’t affect the whole system
What are things to achieve the Application Integration Approach ?
- Queues (SQS - Simple Queue Service)
- Notifications (SNS - Simple Notification Service)
- Events (EventBride)
aws offers all service to achieve Application Integration Approach
What is SNS (Simple Notification Service)?
a service that:
- Set ups, operates and sends Notifications
- sms / email
- Messages can be send to subscribers or other applications
SNS uses a Pub-sub model. What does this mean?
Applications publish or push messages to a topic.
- topic = an access point
What is Simple Queue Service (SQS)?
A service that creates a queue of things (like orders needed to be handled in a restaurant). It’s a distributed message queueing system that helps decoupling.
- SQS is pull based (user pulls next message when they are ready to process it
- Multiple components can add and consume messages
- Messages are processes asynchronously
What is a short polling?
A response is returned immediately even if no messages in the que. You also pay for an empty response
What is long polling?
a user periodically polls the que and only returns a message when there is something the queue.
What is Simple Email Service (SES)?
Email service to send HTML formatted mails (eg. order confirmation)
you can track open rates etc.
What is EventBridge?
EventBridge is all about Event Driven Architecture.
Events trigger actions
What are StepFunctions?
StepFunctions gives a visualization of all small functions/lamda’s that happen in an application. For example a checkout process.
it :
- visualizes all steps
- Automates triggering an tracking all steps that need to happen
- Logg all step functions
What is Infrastructure as Code (IaC)?
IaC helps to make sure that a production, development and testing environment are identical.
CloudFormation is the tool that create an Infrastructure as Code
What is AWS Cloud Formation?
It Manages, configures and provisions your AWS Infrastructure as code.
- Resourced defined in a CloudFormation Yaml / JSON file
- Cloud formation interprets the template
- makes the right API calls to created the defined rersources
What does AWS Elastic BeanStalk do?
helps developer focus on their code and not to worry about the infrastructure needed.
it:
- Deploys and scales your web applications
- provides the AWS resourced for ypu (like EC2, RDS, S3 etc)