BLOG

Case study for software architect

Problem Description


We have two separate applications that we would like to integrate together. One is a WYSIWYG application for generating static websites. The other is an admin application for managing an online shopping site. We would like to be able to use the features of the Website Builder to design pages in the Webshop. In addition, we would also like to be able to manage product details (name, price, images, etc.) while updating Webshop pages in the Website Builder.

Website Builder Details

The Website Builder is a single page app written in React. It is mostly served by a monolithic backend with a few services for select features. The app follows a component-driven architecture using Redux for application state management. Each static page in a user’s website is composed of components. Each component is responsible for rendering the view within its container and for supplying the callbacks for displaying its settings panel. The settings panel is unique per component but may share various individual controls for certain
settings (eg: background color, fonts).


When the user is ready to publish their site, the publication service will generate static assets for each page. The Webshop is one component in the Website Builder. When a Webshop is included on a page, a JavaScript snippet is included in the generated HTML.

Webshop Details


The Webshop has 2 parts: the admin portion is a single page app written in KnockoutJS. It is in the process of being rewritten in React. The second portion is the public-facing shop front, also a Knockout application written in KnockoutJS. The admin application lists products, orders, and other management details. The Webshop backend is quite similar to the Website Builder – monolithic aside from a few minor services for certain features.

The documentation is HERE

Cheers


Osama

DevOps Project – Complete auto deployment and IAAC

The following project having these requriment:-

  • I want to have a CI/CD pipeline for my application the pipeline must build and test the application code base.
  • The pipeline must build and push a Docker container ready to use.
  • The pipeline must deploy the application across different environments on the target infrastructure.
  • Separate the backend and the frontend in different pipelines and containers.

Another Things to add to this project which is the follwong :-

  • the infrastructure must be created on the cloud, for the purpose of the assignment any public cloud can be used.
  • The deployment pipeline must use infrastructure as code using Terraform
  • The delivered infrastructure must be monitored and audited.
  • The delivered infrastructure must allow multiple personal accounts.
  • The delivered infrastructure must be able to scale automatically.
  • Modify the application to make use of real database running on the cloud, instead of the in-memory database.

The Link for the Project HERE

Enjoy the automation

Osama

ansible provisioning for instance (Cloud Version) Using Pipelines

Imagine you are having multiple instances and you want to change something, if you will do this manually it will take time from you why not to automte the process ?

I upladed one of the projects to automate the process, this will allow to automate the simplest things for example new employee joined and you need to add his SSH key to your instances (You can even choose which VM you want to him/her to acces) , just add the key in the roles and configure the pipeline on your rep and the code will run Automtically.

I uploaded the project on my github HERE.

Ragards

Enjoy the power of automation.

Osama

Ansible : Invalid/incorrect password: Permission denied, please try again

Trying to work with ansible and got the below error

The inventory having the following line :-

target1 ansible_host=192.168.204.129  ansible_ssh_pass=password

When trying to run a test like the below :-

osama@ansible-controller:~/ansible_test$ ansible target1 -m ping -i /home/osama/ansible_test/inventory.txt

The following error appeared :-

target1 | UNREACHABLE! => {

    "changed": false,

    "msg": "Invalid/incorrect password: Permission denied, please try again.",

    "unreachable": true

}

To solve this error you need to set the right username and password like the following, inside the inventory add the following :-

target1 ansible_host=192.168.204.129  ansible_ssh_user=osboxes aniansible_ssh_pass=password

Run the test again by :-

osama@ansible-controller:~/ansible_test$ ansible target1 -m ping -i /home/osama/ansible_test/inventory.txt  --ask-pass

The output will be

target1 | SUCCESS => {

    "ansible_facts": {

        "discovered_interpreter_python": "/usr/bin/python3"

    },

    "changed": false,

    "ping": "pong"

If you want pre-defined VMware or virtual box you can download from HERE

Enjoy

Osama

Docker Compose example

In this post i choose this topic – Docker compose, i will upload the files gradually till the project will be working and met my requriemnt 100%.

This project will be like the following

  • 2 application, i used php.
  • 1 nginx as load balancer
  • 1 database , i choose mysql version 8.

This project will be fully bulit on Docker compose, i tried to make simple as much as i can so the people will understand the concept.

The Project HERE.

Remember i will keep upload the files for this project will i will make sure it’s 100% meet my reqruiment but for now i uploaded the compose and enviroment variable.

Enjoy

Osama

RMOUG 2021

Happy New Year everyone and wish you all the best during this year.

I got accepted to speak at RMOUG Training Day 2021, the conference will be virtual so you can attend from your own home and learn something new.

I will speaking about the chaging Role of the DBA on Thurs Feb 11, 9:30 10:25 ( Eastern Standard Time) , you can register HERE.

And you can find RMOUG Agenda HERE.

See you soon

Osama