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