Microtica—the DevOps automation platform with open-source components
Tags: hacktoberfest, showdev, devops, tools
Published: 2020-09-29 14:55:01

**[Microtica](https://microtica.com)** automates the entire software delivery process, from setting up an infrastructure to delivering apps and services to the cloud using Kubernetes. Our goal is to help companies and developers adapt to the cloud much faster with a single tool built by developers, for developers. 

![Dev](https://microtica.com/wp-content/uploads/2020/09/dev-environment.png)

To find out more about how the product works, read our [documentation](https://microtica.com/docs). *By contributing to this project you help developers around the world to quickly start building their solutions in the cloud.*

This Hacktoberfest, we need contributions for our open-source infrastructure components: 

{% github microtica-components/mic-cloudformation-hub %}

These components are one of the core concepts of our platform. They represent reusable pieces of code that developers can use to set up their infrastructure. They are part of our FOREVER FREE package, allowing developers to use them whenever they want to, as much as they want to, regardless of the number of projects and environments. 

*We have the following open-source components:*

- [Serverless MySql](https://github.com/microtica-components/component-aws-serverless-mysql)
- [AWS EKS](https://github.com/microtica-components/component-aws-eks)
- [AWS Elasticache] (https://github.com/microtica-components/component-aws-elasticache)
- [AWS VPC](https://github.com/microtica-components/component-aws-vpc)
- [AWS DynamoDB](https://github.com/microtica-components/component-aws-dynamodb)
- [AWS S3](https://github.com/microtica-components/component-aws-s3)

Our list of open-source components is constantly growing. They are also available for use in the [Microtica portal](https://portal.microtica.com). 
 
# How to contribute?
You can contribute to this project by committing your CloudFormation templates that represent a reusable cloud infrastructure. Don't limit yourself, commit any type of infrastructure. 

After you submit a pull request, we will review the templates, deploy them on our AWS account, and perform all necessary functions and security tests. 

Finally, when we accept the pull request, we will publish the component in a separate GitHub repository and make you a contributor. Also, we will make it available in the [Microtica portal](https://portal.microtica.com) for free usage.

# Coding guidelines
Your CloudFormation templates should follow [AWS CloudFormation best practices](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html)

*And some more:*
- Make the template as generic as possible. The templates are intended to be used by as many developers as possible. E.g. Kubernetes cluster, PostgreSQL database, SPA hosting infrastructure, etc.
- Give your best to make the templates as parametrized as possible. This will allow developers using the templates to configure them easily without adapting the code
- Define output parameters that would be relevant for other components to use. E.g. if you develop a template that creates a VPC, add vpcId as an output so other components (e.g. RDS MySql infrastructure that needs a VPC ID as input) can use it as a reference

An example template can be found [here](https://github.com/microtica-components/mic-cloudformation-hub/tree/master/component-s3-bucket).

# Git Flow
We use Github Flow, so all code changes happen through pull requests.
Pull requests are the best way to propose changes to the codebase and get them reviewed by maintainers.

- Fork the repo and create your branch from the master branch
- Create a separate folder in the root path for your templates. The name of the folder should start with the component- (e.g. component-mongodb)
- Add tests for each CloudFormation template
- Ensure the test suite passes all the time
- Open a pull request
- Create an issue referencing the pull request. This ensures that we can track the bug being fixed or feature being added easily


**IMPORTANT:** Before contributing, please read our [Code of Conduct](https://github.com/microtica-components/mic-cloudformation-hub/blob/master/CODE_OF_CONDUCT.md).

**ALSO IMPORTANT:** For better communication, we’ve created a [Slack channel](https://join.slack.com/share/zt-hkmlv4rb-EzZ~L6QBqUAkB86vRmOVew) where we can answer questions and discuss anything you find unclear. 

Also, we’re always happy to hear feedback from fellow developers and consider fresh ideas to improve, so feel free to write them on our Slack channel. You can also contact our team members on Twitter: 

- [@radedespo](https://twitter.com/radedespo)
- [@mmarulka](https://twitter.com/mmarulka)
- [@nenadnikoloski5](https://twitter.com/nenadnikoloski5)
- [@aleksandarsavo5](https://twitter.com/AleksandarSavo5)
- [@saragitara1](https://twitter.com/SaraGitara1)

We’re looking forward to your contributions!
# Happy coding ❤︎