Środowisko przemieszczania bazy danych dla personelu niebędącego pracownikiem IT

10

Jestem w trakcie proponowania mojego środowiska IT dla środowiska pomostowego bazy danych. Chodzi o to, że osoba spoza IT, taka jak ja (analityk danych robót publicznych), miałaby miejsce na przetestowanie rozwiązań, a następnie albo sam je wdrożyłby w środowisku na żywo, albo poprosiła IT o ich wdrożenie w razie potrzeby. Istnieje kilka powodów / scenariuszy, w których środowisko to byłoby korzystne:

  1. Mam kilka podstawowych przywilejów bazy danych w naszym środowisku bazy danych (na żywo create table, create viewitp). Wprowadzam zmiany schematu mniej więcej raz w tygodniu, ale wydaje się, że mi się, że testowanie i wdrażanie tych zmian w środowisku na żywo szalone . Baza danych zawiera niezliczone zależności, więc jeśli coś pójdzie nie tak, może być katastrofalne. Wolałbym przetestować rzeczy wcześniej w osobnym środowisku.
  2. Nie mam niektórych bardziej zaawansowanych uprawnień, takich jak create triggerlubcreate function w bazie danych na żywo. To dobrze, ale mam kilka problemów, które można rozwiązać za pomocą wyzwalaczy i / lub funkcji. Planuję zaproponować, aby uzyskać te uprawnienia w środowisku testowym, abym mógł opracować i przetestować niektóre pomysły, a jeśli zadziałają, zaproponuję, aby IT wdrożyło je w środowisku na żywo.
  3. Ogólnie rzecz biorąc, mój dział IT nie ma czasu ani zasobów, aby opracować dla mnie rozwiązania. To naprawdę takie proste. Więc jeśli mogę samodzielnie wykonać pracę nóg, moje problemy są znacznie bardziej prawdopodobne.

„Środowisko inscenizacyjne dla personelu niezwiązanego z IT” wydaje mi się dość rozsądnym podejściem, ale szczerze mówiąc, właśnie wymyśliłem ten pomysł. Nie mam pojęcia, jak to się zwykle robi w świecie IT / baz danych.

Czy istnieje jakakolwiek ustalona praktyka IT / bazy danych, która pasowałaby do tego scenariusza? (Czy jestem na dobrej drodze, gdy proponuję środowisko pomostowe bazy danych dla personelu niebędącego pracownikiem IT?)

Wilson
źródło
1
Czy w bazie danych są jakieś super wrażliwe dane, do których nie powinieneś mieć dostępu? Wydaje się, że łatwym rozwiązaniem jest wysłanie kopii zapasowej bazy danych do przywrócenia na komputerze osobistym, z którą można grać bez obawy o przerwanie produkcji. Nie będzie to wymagało żadnych dodatkowych zasobów, a wszystko, co musisz zrobić, to wysłać ci kopię zapasową. Jest to jednak w dużym stopniu zależne od potrzeb bezpieczeństwa twojego środowiska.
Shaulinator,
1
Dlatego uważam, że tworzenie kopii zapasowych i przywracanie do użycia we własnym środowisku jest tanim i łatwym rozwiązaniem. Idealnie byłoby jednak, gdybyś miał wiele środowisk o różnych poziomach mocy obliczeniowej, które naśladują się nawzajem, a gdy wprowadzasz zmiany, stopniowo je stopniujesz w różnych środowiskach. Mamy deweloperów do grania i zmiany, promowania w celu przetestowania, gdzie rzeczy są poddawane kontroli jakości, następnie inne środowisko, które jest prawie 1: 1 Prod dla sprzętu, a następnie Prod, gdzie wszystko idzie na żywo. Jest to oczywiście kosztowne. Posiadanie innej podobnej bazy danych na serwerze to kolejny pomysł.
Shaulinator,
1
Wolę jednak, aby środowiska były całkowicie oddzielne, co sprawia, że ​​prawdopodobieństwo wystąpienia problemu jest ograniczone do minimum w przypadku zapytania polegającego na ucieczce.
Shaulinator,
1
Ekspresowa edycja bazy danych Oracle jest prawdopodobnie łatwym wyborem. Zainstaluj go na swoim komputerze, skonfiguruj tabele jak na głównym db. Załaduj reprezentatywne dane i możesz opracowywać / testować tyle, ile chcesz. Gdy będziesz gotowy, możesz wysłać im zmiany w celu przetestowania / oceny.
Raj
1
@Raj, problem z Express Edition polega na tym, że praktycznie nie ma w nim żadnej użytecznej funkcjonalności. Wilson, ponieważ wszelkie rzeczywiste funkcje Oracle są dostępne tylko w wersji Enterprise Edition, licencjonowanie Oracle jest prawdopodobnie jedną z największych przeszkód, o których jeszcze nie wspominałem, choć Shaulinator do pewnego stopnia się z tym wiąże. Oracle nie oferuje tańszej licencji dla środowisk nieprodukcyjnych , o której wiem, więc masz dość kosztowną przeszkodę w samej licencji. Chmura może być dla Ciebie dobrą opcją wyłącznie ze względu na problemy budżetowe.
John Eisbrener

Odpowiedzi:

2

Zgadzam się z odpowiedzią @Marcin Gminiski, że idealnie chcesz mieć środowisko naśladujące funkcjonalność dostępne w środowisku produkcyjnym. Chociaż wszystkie moje 2 centy w tej sprawie sprowadzają się do: „Na co cię stać?” Ograniczenia budżetowe często zabijają dobry proces, więc naprawdę to, na co możesz sobie pozwolić, determinuje złożoność / elegancję ostatecznego rozwiązania.

Ponieważ wspominasz, że w dziale IT brakuje czasu i personelu, aby przygotować dla ciebie środowisko, czy jesteś w stanie (a raczej swoim wydziałem / kierownikiem) wnieść jakieś środki na stół? Pozyskanie niewielkiej kwoty rocznego finansowania otworzyłoby możliwość spojrzenia na chmurę. Dostawcy usług w chmurze oferują wszystko, czego potrzebujesz, a niektóre rozwiązania zawierają nawet odpowiednie licencje, co często stanowi największy koszt w stosunku do Oracle. Jeśli nie wrzucasz wrażliwych danych do tego środowiska, chmura staje się jeszcze bardziej atrakcyjna.

Istnieje wiele dostępnych opcji chmurowych, ale skieruję cię do instancji Oracle RDS na AWS tylko dlatego, że oferują one licencję w zestawie opcję , a możesz ją wyłączyć, gdy nie używasz jej w celu dalszego zminimalizowania kosztów. Odpowiednik może istnieć u innych dostawców usług w chmurze, ale wielu znanych mi dostawców usług w chmurze wymaga dostarczenia własnej licencji (BYOL) dla rozwiązań opartych na Oracle zamiast oferowania licencji obejmującej.

Ostatnia uwaga: instancja AWS RDS jest TYLKO bazą danych, więc każda infrastruktura serwera aplikacji, której potrzebujesz, również musiałaby zostać uwzględniona. Chmura jest świetną opcją, jeśli potrzebujesz szybkiego środowiska do testowania funkcjonalności, a jednocześnie jest to opłacalne podejście; po prostu upewnij się, że masz wszystko na uwadze i wyłączasz rzeczy, aby nie płacić za bezczynne serwery.

John Eisbrener
źródło
3

Zwykle przyzwoite środowisko składa się przynajmniej z DEV -> TEST -> PRE-PROD -> PROD. Rozwój zwykle miałby dostęp do opracowania w DEV, testów akceptacyjnych w TESTIE i IT do wydania w PRE i PROD. Jeśli użyjesz kontroli źródła, unikniesz problemów związanych z edycją tego samego kodu przez różnych programistów w tym samym czasie.

Technicznie potrzebujesz tylko schematu, który jest taki sam jak w prod i nie potrzebujesz danych produkcyjnych poniżej wersji przedprodukcyjnej, ale jeśli nie masz nic przeciwko posiadaniu danych prod poza środowiskiem prod, możesz mieć automatyczne przywracanie do tworzenia / testowania. Zrobiłem podobną pracę z Visual Cron i działa to cuda.

Prawdopodobnie w celu zachowania zgodności personel IT będzie musiał wprowadzić zmiany w wersjach pre i prod, aby uczynić to łatwiejszym i bardziej odpornym, możesz pójść drogą automatycznych wdrożeń.

Marcin Gminski
źródło
2

Oto moje doświadczenie:

Początkowo mieliśmy centralne środowisko programistyczne o nazwie simserver. Programiści testowali rzeczy jednocześnie i robił się bałagan .

Teraz każdy programista ma lokalny simserver, do którego wdraża się w celu przetestowania. Gdy powiedzą, że jest gotowy, zostaje zepchnięty do quality assurance (QA) environment. Mamyjira przypadki testowe na wszystko, co należy sprawdzić, a także ponownie testujemy nowe dodatki (mamy oddanych pracowników ds. Kontroli jakości, którzy nie zajmują się programowaniem; tylko kontrola jakości).

Następnie zostaje wprowadzony na żywo.

Tworzenie lokalnych simserverjest logiczne i łatwe. Po VMprzygotowaniu szablonów programiści po prostu wdrażają je na swoim komputerze osobistym (bez dostępu do reszty sieci - tylko na komputerze lokalnym).

FreeSoftwareServers
źródło
1
Wydaje mi się, że dla simservera oznacza lokalnie hostowane środowisko SQL, które ma pewien poziom dublowania (proste przywracanie kopii zapasowej?) Środowiska prod ... Wykonujesz zadania programistyczne w tym lokalnym środowisku. Jira to platforma do zarządzania projektami i śledzenia problemów, która umożliwia programistom i kontroli jakości śledzenie zmian. Myślę, że twierdzi on, że proponowana zmiana, która zostanie wykonana w lokalnej instancji, jest wysyłana do jira dla dev. przejrzeć. VM jest maszyną wirtualną.
Wes